เอมูเลเตอร์ Game Boy ที่พัฒนาด้วย Rust ได้รับความสนใจจากความสามารถในการเล่นบนเว็บ

BigGo Editorial Team
เอมูเลเตอร์ Game Boy ที่พัฒนาด้วย Rust ได้รับความสนใจจากความสามารถในการเล่นบนเว็บ

ชุมชนเกมเรโทรกำลังตื่นเต้นกับเอมูเลเตอร์ Game Boy ใหม่ที่ชื่อว่า retroboy ซึ่งเขียนด้วยภาษา Rust และสามารถทำงานได้โดยตรงบนเว็บเบราว์เซอร์ โปรเจกต์นี้แสดงให้เห็นว่าภาษาโปรแกรมมิ่งสมัยใหม่และ WebAssembly กำลังช่วยให้นักพัฒนาสามารถนำประสบการณ์การเล่นเกมคลาสสิกมาสู่เว็บได้อย่างแม่นยำน่าประทับใจ

ความท้าทายและความก้าวหน้าของการจำลองเกมบนเว็บ

เอมูเลเตอร์นี้ได้รับความสนใจอย่างมากจากคุณสมบัติที่ครอบคลุม ซึ่งรวมถึงการจำลอง CPU อย่างแม่นยำ การรองรับระบบเสียง และความเข้ากันได้กับ Memory Bank Controllers (MBCs) หลากหลายรูปแบบ อย่างไรก็ตาม การสนทนาในชุมชนเผยให้เห็นว่าการจำลองเสียงยังคงเป็นหนึ่งในความท้าทายที่ยากที่สุดของเอมูเลเตอร์บนเบราว์เซอร์ ผู้ใช้หลายคนรายงานว่าได้ยินเสียงคลิกและเสียงแปลกปลอมอื่นๆ ที่ไม่ควรมีในเกมต้นฉบับ ซึ่งดูเหมือนจะเป็นปัญหาทั่วไปกับ WebAssembly และระบบเสียงในเบราว์เซอร์

เกือบทุกอย่างที่เป็น WASM+Audio ดูเหมือนจะมีปัญหานี้ในเบราว์เซอร์ปัจจุบัน เว้นแต่คุณจะระมัดระวังอย่างมากเกี่ยวกับสิ่งที่คุณกำลังทำและใช้ประโยชน์จากหลายเธรด ผมคิดว่าปัญหาส่วนใหญ่อยู่ที่บริบทแบบเธรดเดียว ซึ่งต้องสลับระหว่างการเล่นเสียงและการทำงานอื่นๆ

นักพัฒนาในความคิดเห็นอธิบายว่าข้อจำกัดด้านประสิทธิภาพของ WebAudio มักต้องการบัฟเฟอร์เสียงที่ใหญ่กว่ามาก (อย่างน้อย 100 มิลลิวินาที) เมื่อเทียบกับแอปพลิเคชันแบบเนทีฟ (20 มิลลิวินาที) และการดรอปเฟรมหรือปัญหาด้านประสิทธิภาพใดๆ สามารถทำให้เกิดปัญหาเสียง บางคนแนะนำให้ใช้เธรดแยกสำหรับการประมวลผลเสียงเป็นทางแก้ไขที่เป็นไปได้ แม้ว่าวิธีนี้จะเพิ่มความซับซ้อนให้กับการพัฒนาอย่างมากก็ตาม

คุณสมบัติหลักของอีมูเลเตอร์ retroboy:

  • CPU ที่มีความแม่นยำในระดับไซเคิลซึ่งผ่านการทดสอบ JSON CPU ทั้งหมด
  • การจำลองเสียงที่แม่นยำ (มีข้อจำกัดบางประการในเบราว์เซอร์)
  • การจำลองกราฟิกโดยใช้ตัวเรนเดอร์แบบสแกนไลน์
  • รองรับ MBC1, MBC3, MBC5 และ HuC1
  • รองรับ RTC สำหรับตลับเกม MBC3
  • การเก็บรักษาข้อมูล RAM ของตลับเกมผ่านการจัดเก็บในเบราว์เซอร์แบบโลคอล
  • รองรับการโกงเกมแบบ GameShark หรือ GameGenie
  • ส่วนติดต่อผู้ใช้บนเว็บพร้อมโหมดเต็มจอ, หยุดชั่วคราว/เล่นต่อ และการปรับแต่งการควบคุมได้

ระบบนิเวศของเอมูเลเตอร์ Rust ที่กำลังเติบโต

โปรเจกต์นี้เข้าร่วมกับระบบนิเวศที่กำลังเติบโตของเอมูเลเตอร์ที่ใช้ Rust โดยมีผู้แสดงความคิดเห็นหลายคนแชร์ลิงก์ไปยังโปรเจกต์ที่คล้ายกันของพวกเขา ภาษาโปรแกรมมิ่ง Rust ดูเหมือนจะได้รับความนิยมมากขึ้นสำหรับโปรเจกต์เอมูเลชันเนื่องจากคุณลักษณะด้านประสิทธิภาพและความปลอดภัยของหน่วยความจำ เมื่อคอมไพล์เป็น WebAssembly เอมูเลเตอร์เหล่านี้สามารถทำงานได้อย่างมีประสิทธิภาพในเบราว์เซอร์โดยไม่ต้องมีปลั๊กอินหรือการดาวน์โหลด

การจัดระเบียบโค้ดที่สะอาดได้รับคำชมเฉพาะจากนักพัฒนาหลายคนที่ต้องการเรียนรู้จากโปรเจกต์นี้ บางคนกล่าวว่าพวกเขาลังเลที่จะเริ่มโปรเจกต์เอมูเลชันของตัวเองเนื่องจากความไม่แน่ใจเกี่ยวกับเฟรมเวิร์กและเครื่องมือ แต่พบว่าแนวทางของโปรเจกต์นี้ที่ใช้ wasm-bindgen และ HTML Canvas นั้นตรงไปตรงมาและน่าสนใจ

เกม Game Boy ที่ได้รับการแนะนำมากที่สุด (จากความคิดเห็น):

  • Pokémon Red/Blue และ Gold/Silver
  • The Legend of Zelda: Link's Awakening
  • Tetris
  • Super Mario Land 1 และ 2
  • Kirby's Dream Land
  • Wario Land II และ III
  • Donkey Kong (1994)

ความนิยมที่ไม่เสื่อมคลายของเกมเรโทร

นอกเหนือจากการสนทนาทางเทคนิค ความคิดเห็นยังเผยให้เห็นถึงความนิยมที่ยังคงมีอยู่ของเกมและฮาร์ดแวร์ Game Boy ผู้ใช้แชร์เกมโปรดของพวกเขาอย่างกระตือรือร้น โดยมีเกม Pokémon, Zelda: Link's Awakening และ Tetris ถูกกล่าวถึงบ่อยครั้งว่าเป็นประสบการณ์ที่สำคัญ การสนทนายังเน้นย้ำถึงฉากโฮมบรูที่กำลังเฟื่องฟูซึ่งสร้างเกมใหม่สำหรับฮาร์ดแวร์คลาสสิก รวมถึงซีเควนเซอร์ดนตรีอย่าง LSDj และการพัฒนา Tetris รูปแบบใหม่

ผู้แสดงความคิดเห็นหลายคนสังเกตว่าพวกเขาได้ซื้อเครื่องเล่นเกมพกพาเรโทรจากผู้ผลิตเช่น Anbernic และ Miyoo ในราคาเริ่มต้นประมาณ 50 ปอนด์ (ประมาณ 65 ดอลลาร์สหรัฐ) ซึ่งสามารถจำลองไม่เพียงแค่ Game Boy แต่รวมถึงระบบไปจนถึง PlayStation 1 สิ่งนี้บ่งชี้ถึงตลาดที่แข็งแกร่งสำหรับประสบการณ์การเล่นเกมเรโทรแบบพกพานอกเหนือจากการจำลองเกมด้วยซอฟต์แวร์เพียงอย่างเดียว

ผู้สร้างโปรเจกต์ซึ่งรู้สึกประหลาดใจกับความสนใจที่โปรเจกต์งานอดิเรกเล็กๆ ของพวกเขาได้รับ กล่าวว่าพวกเขาพบว่า wasm-bindgen ค่อนข้างง่ายต่อการใช้งาน การเข้าถึงนี้ชี้ให้เห็นว่าเทคโนโลยีเว็บสมัยใหม่กำลังลดอุปสรรคในการเข้าถึงโปรเจกต์เอมูเลชันที่ซับซ้อน ช่วยให้นักพัฒนาเข้ามามีส่วนร่วมในการอนุรักษ์ประวัติศาสตร์เกมได้มากขึ้น ในขณะที่ทำให้เข้าถึงได้ผ่านแพลตฟอร์มเว็บเบราว์เซอร์ที่แพร่หลาย

อ้างอิง: retroboy