1 คะแนน โดย GN⁺ 2023-10-23 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Ruffle คืออีมูเลเตอร์ Flash Player แบบโอเพนซอร์สที่เขียนด้วย Rust ช่วยให้คอนเทนต์ Flash ที่ไม่รองรับโดยค่าเริ่มต้นอีกต่อไปกลับมาทำงานได้บนระบบปฏิบัติการและเบราว์เซอร์สมัยใหม่
  • รองรับทั้งเดสก์ท็อปและเว็บ โดยในสภาพแวดล้อมเว็บจะใช้ WebAssembly
  • มีเป้าหมายเพื่อหลีกเลี่ยง ความเสี่ยงด้านความปลอดภัย ที่เคยเป็นปัญหาของ Flash โดยใช้การรับประกันความปลอดภัยจาก Rust และ WASM
  • ออกแบบให้ทั้งผู้ใช้ทั่วไปและเจ้าของเว็บไซต์ติดตั้งและเริ่มใช้งานได้อย่างรวดเร็ว
  • เป็นโปรเจกต์โอเพนซอร์สฟรีที่ให้ใช้งานได้อย่างเสรีภายใต้ไลเซนส์ MIT/Apache 2.0

รันคอนเทนต์ Flash บนสภาพแวดล้อมสมัยใหม่

  • Ruffle คืออีมูเลเตอร์ Flash Player สำหรับรันคอนเทนต์ Flash บนสภาพแวดล้อมสมัยใหม่
  • สร้างขึ้นให้ทำงานแบบเนทีฟบนระบบปฏิบัติการและเบราว์เซอร์สมัยใหม่ โดยมุ่งเน้นการปลุกคอนเทนต์ Flash ให้กลับมาใช้งานได้โดยไม่ยุ่งยาก
  • ภาษาที่ใช้พัฒนาคือ Rust และรองรับทั้งเดสก์ท็อปและเว็บ
  • เป้าหมายการรันบนเว็บใช้ WebAssembly

แนวทางด้านความปลอดภัยและเงื่อนไขการเผยแพร่

  • พยายามหลีกเลี่ยงกับดักด้านความปลอดภัยที่ Flash เคยมี โดยใช้การรับประกันจาก Rust และ WASM
  • ออกแบบมาให้ทั้งผู้ใช้และเจ้าของเว็บไซต์ติดตั้งและเริ่มใช้งานได้อย่างรวดเร็ว
  • เป็นโปรเจกต์โอเพนซอร์สฟรีที่เผยแพร่ภายใต้ไลเซนส์ MIT/Apache 2.0

1 ความคิดเห็น

 
GN⁺ 2023-10-23
ความคิดเห็นจาก Hacker News
  • ผมแวะมาดูโปรเจกต์นี้ประมาณปีละครั้ง และดีใจที่เห็นว่า การรองรับ AS3 ใกล้เสร็จสมบูรณ์แล้ว
    สมัยเรียนผมเสียเวลาไปกับเกม Flash มากเกินไปเหมือนคนอีกมากมาย และรู้สึกเสียดายที่ส่วนหนึ่งของประวัติศาสตร์เกมกำลังหายไป
    ถึงอย่างนั้น Ruffle ก็อาจช่วยชุบชีวิตกลับมาได้บ้าง แต่ก็ทำให้นึกขึ้นได้ว่ายังไม่มีวิธีเล่น Wolfenstein RPG บน iOS อยู่ดี ผมมี iPod ที่ซื้อมาเมื่อปี 2010 แทบจะเพื่อเล่นเกมนั้นโดยเฉพาะ แต่แบตเตอรี่คงไม่อยู่ได้ตลอดไป ตอนนี้คงไปเล่น Adrenaline Challenge ก่อนแล้วกัน
    • ราว 18 เดือนก่อน Ruffle แทบไม่มี การรองรับ AS3 เลย ซึ่งเป็นอุปสรรคสำคัญสำหรับผม
      ผมนึกว่าจะต้องใช้เวลาอีกหลายปี ระหว่างนั้นก็เลยติดตั้ง Flash เวอร์ชันสุดท้ายที่ไม่มีระเบิดเวลาไว้ใช้ ดีใจที่ผมคิดผิด :)
    • ครั้งสุดท้ายที่ดู เหมือนเพิ่งเริ่มทำ AS3 เอง น่าทึ่งที่มาได้เร็วขนาดนี้
    • เรื่องที่เล่น Wolfenstein RPG บน iOS ไม่ได้อาจกำลังจะเปลี่ยนไปเร็ว ๆ นี้ :)
      https://github.com/hikari-no-yume/touchHLE/pull/139
    • ผมเองก็ยังหาวิธีเล่น Inishie Dungeon อีกครั้งอยู่เหมือนกัน
    • ถ้า PR เก่า ๆ ใน Ruffle ได้ merge เข้ามาจริง ๆ ก็คงดี
  • พอพูดถึงการจำลอง Flash ก็มักไหลไปเป็นเรื่องเกม Flash เสมอ แต่ข้อดีสำคัญอีกอย่างคือการอนุรักษ์ เว็บไซต์เชิงข้อมูล ที่ยังพึ่งพา Flash อยู่
    หน้า The Merchant's House ในนิทรรศการ Slavery in New York ของ New York Historical Society แสดงสิ่งของทีละชิ้นและอธิบายว่า “ทุกสิ่งล้วนเชื่อมโยงกับระบบทาส” ในนิทรรศการออนไลน์มีชิ้นส่วนข้อมูลจำนวนมากที่พึ่งพา Flash และหน้านี้เป็นหน้าที่ผมชอบที่สุดเป็นการส่วนตัว
    โปรเจกต์อย่าง Ruffle ช่วยให้ผลงานแบบนี้คงอยู่ได้ ตอนนี้เมื่อนิทรรศการหายไปแล้ว นี่คือวิธีเดียวที่จะอ่านเนื้อหานี้ได้ และช่วยให้ผลลัพธ์จากการวิจัยทางประวัติศาสตร์ขนาดใหญ่ยังถูกนำมาใช้ต่อได้
    อย่างไรก็ตาม video galleries ในไซต์นิทรรศการเดียวกันกลับไม่สำเร็จ มันควรเป็นคลิปวิดีโอที่ผู้เข้าชมนิทรรศการฝากไว้ในบูธเฉพาะ และจากที่อ่านบทความที่เกี่ยวข้องมามาก ดูเหมือนจะเป็นแหล่งข้อมูลที่ดีที่แสดงให้เห็นว่าชาวนิวยอร์กในเวลานั้นมองระบบทาสอย่างไร มีข้อความจาก New York Times ด้วยว่า “มีความเก้ ๆ กัง ๆ แบบโฮมวิดีโอสมัครเล่น เสียงรบกวนพื้นหลัง ความเงียบที่ยาวนาน และสายตาที่หลบกล้อง”
    น่าจะเป็นบางส่วนจากวิดีโอราว 400 รายการ แต่ในหน้านี้ Ruffle ทำงานไม่ถูกต้อง เคยมีเสียงจากแท็บดังขึ้นมาสั้น ๆ ตอนพยายามเปิดดู จึงเหมือนมีอะไรเกิดขึ้นอยู่ แต่ไม่เคยเห็นวิดีโอเลย ถ้ามีคนที่รู้เรื่องนี้มากกว่าช่วยบอกได้ว่าเกิดอะไรขึ้นก็คงดี และน่าเสียดายถ้าข้อมูลเหล่านี้หายไป
    • ไฟล์วิดีโอยังอยู่ ตัวอย่างเช่น https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl... และในตัวตรวจสอบเครือข่ายของเบราว์เซอร์ก็เห็น URL ที่ถูกเรียกได้
      สามารถเล่นแบบออฟไลน์ด้วยเครื่องมืออย่าง VLC หรือ ffplay ได้ และยังแปลงเป็นรูปแบบการเล่นที่ทันสมัยกว่านี้ได้ด้วย
    • ผมส่งเรื่องนี้ให้ ทีม Ruffle แล้ว พวกเขากำลังทำงานเพื่อปรับปรุงการรองรับวิดีโอภายนอกที่เพิ่งเพิ่มเข้ามาเมื่อไม่กี่เดือนก่อน
  • ผมเขียน AS3 และ mxml สำหรับ Adobe Flex มาหลายปี
    AS3 ในหลายแง่ก็คือ ECMAScript 4 และผมมองว่ามันล้ำยุคพอสมควร หลายสิ่งที่ทุกวันนี้เราคาดหวังกัน ในระบบนิเวศของ Flash Player เคยรู้สึกเหมือนเป็นฟีเจอร์ที่ใช้กันเป็นเรื่องปกติอยู่แล้ว
    แน่นอนว่าก็มีช่วงเวลาฝันร้ายเหมือนกัน แต่ในยุคที่แม้แต่ JavaScript ข้ามเบราว์เซอร์ยังทำได้ยาก เราก็สามารถปล่อยของที่ยอดเยี่ยมได้ไม่น้อย
    • ผมก็ทำงานนั้นมาหลายปีเหมือนกัน
      ไม่ใช่ว่า AS3 ล้ำยุคเท่าไร แต่พอเราทิ้ง Flash เพราะ Steve Jobs กับ CEO ของ Adobe ตอนนั้น มันรู้สึกเหมือนเราถอยกลับไปสู่อดีตมากกว่า
      AS3 ดีจริง ๆ เรียนรู้ง่าย และปลอดภัยสำหรับการให้หลาย ๆ นักพัฒนาช่วยกันขยาย Flash เองช่วงท้าย ๆ ก็เร็วขึ้นมากแล้ว แต่สุดท้ายทุกอย่างก็ถูกกดทิ้งลงชักโครกไป
    • เห็นด้วยอย่างยิ่ง ผมเคยสร้าง เอนจินเรนเดอร์ 3D ด้วย Flash และ AS3 และมันเป็นหนึ่งในแพลตฟอร์มพัฒนาที่ผมชอบที่สุดเท่าที่เคยใช้มา
      AS3 เป็นภาษาที่ยอดเยี่ยม Brendan Eich เคยกล่าวถึงสั้น ๆ ในบทสัมภาษณ์กับ Lex Fridman ซึ่งน่าสนใจตรงที่มันใกล้เคียงกับผู้สืบทอดที่เป็นไปได้ของ JavaScript ที่ไม่ได้เข้าไปอยู่ในเบราว์เซอร์ น่าเสียดายที่มันไม่กลายเป็นมาตรฐานใหม่
  • Adobe Flash ตายไปแล้วหรือยัง? ถ้า Adobe ไม่ขายเป็นผลิตภัณฑ์อีกต่อไป ผมสงสัยว่าทำไมถึงไม่เปิดซอร์สส่วน Flash Player
    ถ้ามีกฎหมายบอกว่าเมื่อไม่ขายซอฟต์แวร์อีกแล้วต้องปล่อยให้อยู่ใน public domain ก็คงดี
    • ผมเคยถามคำถามเดียวกันในเธรดเก่า และได้รับคำตอบว่า Flash Player มี โค้ดของบุคคลที่สามที่ติดไลเซนส์ มากเกินไป จนการเอาออกหรือขอไลเซนส์ใหม่เพื่อเปิดซอร์สอาจยากมากหรือเป็นไปไม่ได้
      ถึงอย่างนั้น Adobe ก็เปิดเผยสเปกที่เกี่ยวข้องให้ใช้ฟรีอยู่
      การลดระยะเวลาลิขสิทธิ์ให้สมเหตุสมผลอย่าง 5 ปีก็คงดี หรือจะไปไกลกว่านั้น ให้ถ้าต้องการรักษาลิขสิทธิ์ไว้ก็ต้องจ่ายภาษีรายปีที่เพิ่มขึ้นแบบทวีคูณอาจดีกว่า
    • เหตุผลที่บริษัทต่าง ๆ มักไม่ทำแบบนั้นคือ ความเสี่ยงทางกฎหมาย ไลบรารีบางตัวที่ใช้ไปอาจอยู่ภายใต้ไลเซนส์ที่ไม่อนุญาตให้เปิดซอร์ส
      การเปลี่ยนกฎหมายอาจแก้ได้ เช่น ออกกฎหมายอนุรักษ์ซอฟต์แวร์โบราณ ให้สามารถเปิดซอร์สซอฟต์แวร์ใด ๆ ก็ได้ และป้องกันคดีความที่เกี่ยวข้องกับการดำเนินการตามกฎหมายนั้น
      อาจเพิ่มแรงจูงใจเพิ่มเติมได้ด้วย เช่น กำหนดให้ซอฟต์แวร์ทุกตัวที่เคยขายเชิงพาณิชย์ต้องถูกเก็บถาวรอย่างถาวรหรือเปิดซอร์ส การเก็บถาวรอย่างถาวรในทางกฎหมายมีค่าใช้จ่ายสูง ดังนั้นหลายแห่งอาจเลือกเปิดซอร์ส
    • เหตุผลที่ไม่เปิดซอร์ส Flash Player อาจเป็นเพราะ คุณภาพโค้ด น่าอับอายมากก็ได้ น่าจะยังมีช่องโหว่ที่ยังไม่ถูกค้นพบอีกมาก
    • ส่วนใหญ่ก็เปิดเผยไปแล้ว[1] แน่นอนว่าอาจมองว่ายังไม่พอก็ได้
  1. https://github.com/adobe/avmplus
  • ปัญหาคือผลิตภัณฑ์พวกนี้มักใช้ คอมโพเนนต์กรรมสิทธิ์ของบุคคลที่สาม
    ดังนั้นหลายครั้งจึงไม่สามารถเปิดซอร์สได้โดยไม่ตัดโค้ดเบสส่วนใหญ่ออก และงานนั้นมีค่าใช้จ่ายสูง แถมยังทำให้โค้ดที่เผยแพร่ออกมามีประโยชน์ลดลงอย่างมาก
  • สงสัยว่าหลังจากตัวนี้ออกมาแล้ว การสร้างผลงานใหม่ ๆ ยังเป็นไปได้ไหม
    หรือเครื่องมือต่าง ๆ เสื่อมสภาพไปถึงขั้นฟื้นคืนได้ยากแล้ว จนสุดท้ายใช้ได้แค่กู้แคตตาล็อกเก่า ๆ เป็นหลัก?
    แน่นอนว่าแคตตาล็อกเก่านั้นมหาศาลมาก แต่เคยได้ยินว่านักพัฒนาหลายคนชอบทำเกม Flash ถ้ามีใครดื้อพอจะพยายามปลุก ซีนเกม Flash ให้กลับมา ก็น่าจะน่าสนใจ
    ตอนนี้มันอาจไม่จำเป็นนัก และก็มีเว็บสแตนดาร์ดที่มีอนาคตซึ่งพัฒนาขึ้นทุกวัน แต่ของพวกนั้นไม่เคยหยุดคนที่มุ่งมั่นได้ ยังมีคนที่หาวิธีทำเกมใหม่สำหรับฮาร์ดแวร์ Nintendo รุ่นเก่าอยู่เลย
    • Adobe ยังมี Animate ให้เป็นส่วนหนึ่งของ Creative Cloud และใช้มันสร้างภาพยนตร์ AS3 ได้
      ถ้าต้องการ AS2 อย่างน้อยต้องย้อนกลับไปถึง CS6 และผมคิดว่า CS5.5 ดีกว่าเพราะรองรับ FLA ได้กว้างกว่ามาก อย่าถามว่าทำไมพวกเขาถึงเอาสิ่งนั้นออกใน CS6
      ถ้าไม่อยากจ่ายเงินให้ Adobe ก็ใช้ Apache Flex ซึ่งเป็นเวอร์ชันเสรีและโอเพนซอร์สของ toolchain จาก Adobe ได้ แน่นอนว่ามันเป็นเครื่องมือคอมไพเลอร์แบบ command line และคอมไพล์ได้เฉพาะไฟล์ AS3 ดังนั้นกราฟิกต้องสร้างแยกแล้วค่อยเชื่อมเข้ามา
      ถ้าเป็นเวกเตอร์อาร์ต ก็มีโอกาสสูงที่ต้องหาวิธีแปลง SVG เป็น SWF, รวมมันเข้าไปใน SWF หลักด้วยเวทมนตร์การประกาศคลาสแปลก ๆ ใน Flex และรับมือกับปัญหา masking อันละเอียดอ่อนที่ตามมา
    • Flash ไม่ควรถูกทำให้ตายไป
      มันเป็น เครื่องมือสร้างสรรค์ที่เข้าถึงง่าย สำหรับทำแอนิเมชันไฟล์เดียว ข้ามแพลตฟอร์ม ปรับขนาดได้ และทำงานได้แม้บนแบนด์วิดท์ต่ำ
      เรายังชดเชยการสูญเสียนั้นไม่ได้เลย JavaScript + canvas + เว็บสแต็กนี่เละเทะ ถ้า runtime ของ Ruffle เริ่มทำงานได้เร็ว ผมคงเริ่มทำ Flash ใหม่ ๆ
    • บน Windows ยังรัน Flash เวอร์ชันเก่า ๆ ได้ไม่มีปัญหา
      บน macOS จะซับซ้อนกว่า เพราะเวอร์ชันเหล่านั้นทั้งหมดเป็น 32 บิต บน M1 Mac น่าจะดีกว่าถ้าตั้งค่า Windows VM แล้วรัน Flash ในนั้น ส่วนบน Intel Mac สามารถติดตั้ง macOS Mojave ซึ่งเป็นเวอร์ชันสุดท้ายที่รองรับ 32 บิต ไว้ในพาร์ทิชันแยกได้
    • ที่บริษัทของเรา ยังเขียน โค้ด AS3 ใหม่อยู่ IDE และเครื่องมือทั้งหมดทำงานได้ดีบน W10/W11
    • Newgrounds มีอีเวนต์ flashforward ประมาณปีละครั้ง
  • มีเครื่องมือเชิงพาณิชย์ที่แปลง Flash เป็น WebAssembly ด้วย
    จริง ๆ แล้วมันรัน Linux ทั้งชุดใน VM ภายใน WebAssembly แล้วรัน Adobe Flash Player ที่มีไลเซนส์อย่างเป็นทางการในนั้น และดูเหมือนว่าไลเซนส์ Flash นั้นต้องขอแยกจาก Harman ตอนนี้ดูเหมือนฝั่งนั้นจะถือทรัพย์สินทางปัญญาของ Flash อยู่
    https://labs.leaningtech.com/cheerpx/for-flash
    ไม่ได้เกี่ยวข้องอะไรกับพวกเขา แค่เคยไปค้นดูเพราะน่าสนใจ
    • เป็นนักพัฒนาครับ CheerpX for Flash รัน Flash เวอร์ชัน Pepper API และเรื่องไลเซนส์นั้นถูกต้อง
      แต่ไม่ได้อีมูเลต Linux ทั้งชุดเพื่อรัน Flash มันอีมูเลต PPAPI และรัน Flash Player บน CheerpX ซึ่งเป็น x86 JIT
      Yuri อธิบายสถาปัตยกรรม CXFF ไว้ที่นี่:
      https://youtu.be/7JUs4c99-mo?t=1045
      ถ้าต้องการอีมูเลชันระบบ Linux แบบเต็ม ก็มีเช่นกัน: https://webvm.io
  • เจ๋งดี เมื่อก่อนไม่เคยเห็นมาก่อน
    ยังรู้สึกอยู่ว่าอินเทอร์เน็ตและ โปรแกรมเมอร์มือใหม่ วัยเยาว์สูญเสียเครื่องมือที่มีคุณค่าจริง ๆ ไปพร้อมกับ Flash น่าเสียดายที่ทำให้โมเดลความปลอดภัยทำงานได้ไม่ดีพอ แอปเพล็ต Flash มีฟีเจอร์มาก และมีอุปสรรคในการเริ่มต้นต่ำอย่างหาได้ยาก
  • ผมเกลียดมากที่ Adobe ฆ่า Flash แบบนั้น
    มันมีปัญหาจริง แต่ซอฟต์แวร์ส่วนใหญ่ก็เป็นแบบนั้น และ Flash ล้ำหน้ากว่ายุคของมันจริง ๆ ราว 20 ปี หลังจาก Flash ตาย เว็บก็จืดชืดลงอย่างไร้เหตุผล
    ทฤษฎีสมคบคิดของผมคือ Apple กับ Google จ่ายเงินให้ Adobe เพื่อฆ่า Flash จะได้บังคับให้รองรับมือถือ
    • ไม่ต้องมีสมคบคิดหรอก แค่ผลิตภัณฑ์สร้าง ประสบการณ์ผู้ใช้ที่แย่มาก ได้ขนาดนั้นก็พอแล้ว
      ผมไม่เคยเขียน Flash สักบรรทัด และก็ไม่อยากเขียน แต่ยังจำได้ไม่ดีว่าเว็บ Flash พังเละแค่ไหน
      วิดเจ็ตทำงานไม่เหมือน native จนเห็นชัด, ใน Firefox ก็มีปัญหา keyboard focus ไม่หยุดหย่อน, การเร่งวิดีโอก็ดูเหมือนทำงานไม่ถูกต้องจนกินแบตเตอรี่ มีฝันร้ายด้านความเป็นส่วนตัวอย่าง persistent cookie ที่ต้องเปิดแอป Flash ของ Adobe เพื่อลบ และการจัดการสิทธิ์ก็เมินทั้งระบบโฮสต์และเบราว์เซอร์
      ปัญหาด้านความปลอดภัยและเสถียรภาพที่แทบเกิดตลอดเวลาก็ลืมยาก โดยส่วนตัวแล้วดีใจที่ Flash ตายไป
      Flash แย่อยู่แล้วบนเดสก์ท็อป แต่ในช่วงที่มือถือเริ่มสำคัญ มันแย่กว่านั้นมากบนมือถือ จึงตายไป
    • Flash ไม่ดีนัก มันแย่ต่อ accessibility, ปิด, ช้า และเป็นช่องทางบังคับแสดงโฆษณา
      มันทำแอนิเมชันได้ แต่ตอนนั้นนั่นไม่ใช่สิ่งที่พวกเราส่วนใหญ่ต้องการหรือคาดหวัง
      กลุ่มที่ชอบ Flash มีแค่ฝ่ายการตลาด และคนที่อยากเป็นนักพัฒนาเกมกับวัยรุ่นที่เล่นเกมเหล่านั้น
    • ถ้า Flash ยังไม่สิ้นสุดการรองรับ โปรเจกต์อย่าง Ruffle คงต้องทำงานยากในการไล่ตาม runtime กรรมสิทธิ์ ที่ยังใช้กันแพร่หลายอยู่ตลอด
    • Adobe ยอมแพ้ก็จริง แต่คนที่ฆ่ามันจริง ๆ คือ Apple ที่ไม่รองรับบน iOS
    • จำได้ว่าตอนมันตายก็ฉลองนะ แต่พอมองย้อนกลับไป มันก็ไม่ได้แย่ขนาดนั้น
      อย่างน้อยจากมุมมองนักพัฒนา การทำงานกับ SDK แบบ batteries included จากผู้ขายรายเดียว ยังดีกว่าก้อนมะเร็ง node_modules นี่มาก
  • นอกเรื่องหน่อย แต่ถ้ามีพนักงาน Adobe ที่เข้าถึง บัญชี Adobe Fastly นี้ได้ น่าจะควรตรวจสอบการตั้งค่า Fastly ดู

เมื่อไปดูโพสต์เก่าใน blogs.adobe.com ตอนนี้จะเห็นข้อผิดพลาดแบบสดดังนี้:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
ข้อผิดพลาดข้างต้นมาจาก URL นี้: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...

  • จำได้ว่าตอนยังเป็นนักเรียน เคยติดตาม GNU Gnash ที่พยายามจะ รองรับ AS2 และ AS3
    ใช้เวลาหลายปี แต่สุดท้ายก็ทำงานได้เพียงบางส่วนเท่านั้น ตอนนั้น Flash ยังครองตลาดบนเบราว์เซอร์อยู่ แต่ก็ไม่มีใครพอร์ต Gnash ได้อย่างจริงจังก่อนที่มันจะตายไป
    เลยสงสัยว่า Ruffle ทำให้มันใช้งานได้เร็วขนาดนี้ได้อย่างไร
    • เป็นไปได้สูงว่าไม่ได้เคร่งครัดเรื่องไลเซนส์มากเกินไปเหมือน GNU