1 คะแนน โดย GN⁺ 2023-07-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ผู้สร้างได้นำเกม "Another World" มาสร้างใหม่เป็นฮาร์ดแวร์โดยใช้ FPGA รุ่น UP5K
  • เกมทำงานบนเครื่องเสมือน (VM) ที่เรียกใช้ blitter และ rasterizer เพื่อสร้างกราฟิก
  • ผู้สร้างได้พัฒนาอิมพลีเมนต์ฮาร์ดแวร์ของ VM, blitter และ rasterizer บน FPGA
  • การออกแบบนี้อยู่ภายในข้อจำกัดด้านทรัพยากรของ FPGA และใช้หน่วยความจำ SPRAM ขนาด 128KB
  • ผู้สร้างเริ่มต้นจากการทำความเข้าใจการไหลของข้อมูลผ่านข้อมูลเกมและโค้ด
  • การออกแบบมี SoC ที่เชื่อมทุกอย่างเข้าด้วยกันและเพิ่มการรีเฟรชหน้าจอ
  • framebuffer ใช้บล็อก SPRAM และ framebuffer แต่ละตัวแมปเข้ากับบล็อก SPRAM ได้อย่างพอดี
  • คอนโทรลเลอร์แสดงผลสตรีมพิกเซลที่ 25 MHz และใช้ double buffering เพื่อป้องกันการกะพริบ
  • blitter สามารถคัดลอกเนื้อหาจาก framebuffer หนึ่งไปยังอีก framebuffer หรือเติม framebuffer ด้วยสีเดียว
  • ผู้สร้างประสบความสำเร็จในการสร้างเกมขึ้นใหม่บนฮาร์ดแวร์ที่รันได้บนบอร์ด FPGA หลายรุ่น
  • บทความนี้พูดถึงการอิมพลีเมนต์ blitter และ rasterizer ภายในเอนจินเกม
  • ยูนิต blitter จะคัดลอกพิกเซลในช่วง vblank ส่วนยูนิต rasterizer จะวาดรูปหลายเหลี่ยมลงบน framebuffer
  • blitter จะตรวจสอบ start pulse และเติมสีหากมีการระบุไว้
  • rasterizer อ่านจุดยอดของรูปหลายเหลี่ยมจาก dual-port BRAM เพื่อวาดรูปหลายเหลี่ยมเว้า
  • rasterizer ใช้เทคนิค palette trick เพื่อรองรับความโปร่งใส และสามารถคัดลอกพิกเซลจาก source framebuffer อื่นได้
  • เอนจินเกมมีเอนจินวาดฟอนต์รวมอยู่ด้วย และรองรับฉากหลังที่เรนเดอร์ไว้ล่วงหน้า
  • กระบวนการบิลด์รวมถึงการคัดลอกไฟล์ข้อมูลเกม และรันการจำลองหรือเล่นเกมบนฮาร์ดแวร์แพลตฟอร์มอื่น
  • บทความนี้กล่าวถึงการพัฒนาฮาร์ดแวร์ดีไซน์ที่ทำงานบน FPGA สำหรับเกม Another World
  • ผู้สร้างยังระบุว่ายังมีงานอีกหลายอย่างที่ต้องทำให้เสร็จ เช่น ทดสอบเกม ปรับแต่งไทมิง แก้ปัญหาการเรนเดอร์ และเพิ่มดนตรี
  • ผู้สร้างยังกล่าวถึงการเชื่อมส่วนอื่น ๆ ของเกมและความเป็นไปได้ในการบันทึกสถานะเกม
  • การนำฮาร์ดแวร์ชุดนี้ไปใช้สร้างเกมหรือเดโมอื่นก็ถูกกล่าวถึงว่าเป็นโปรเจกต์ในอนาคตที่น่าสนใจ
  • บทความนี้ให้ลิงก์ไปยังแหล่งข้อมูลที่เกี่ยวข้องกับชุดบล็อกซีรีส์ พอร์ต และเครื่องมือต่าง ๆ
  • ดีไซน์ Silice ที่ใช้ในโปรเจกต์นี้อยู่ภายใต้สัญญาอนุญาต MIT ส่วน C++ พอร์ตที่ดัดแปลงแล้วยังคงใช้สัญญาอนุญาต GPL เดิม
  • บทความนี้ยังอธิบายคำสำคัญอย่าง framebuffer, rasterizer, blitter และเครื่องเสมือน (VM) สำหรับผู้อ่านที่ไม่คุ้นเคยกับวงการนี้

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

 
GN⁺ 2023-07-16
ความเห็นจาก Hacker News
  • Another World: วิดีโอเกมคลาสสิกที่เป็นที่รู้จักจากกราฟิกอันน่าประทับใจและสไตล์ศิลปะที่โดดเด่น
  • เกมมีความยาวสั้น และปริศนาต่าง ๆ อาศัยการลองผิดลองถูก แต่ในเชิงศิลปะก็ยังคงได้รับความนิยม
  • แฟน ๆ ของ Another World อาจชื่นชอบ Flashback: The Quest for Identity ด้วยเช่นกัน
  • มีการพอร์ต Another World ไปยังหลายแพลตฟอร์ม รวมถึง Amstrad CPC, Nintendo 64 และ PlayStation 1
  • ผู้เขียนบทความนี้ใช้ภาษา HDL แบบกำหนดเองชื่อ Silice สำหรับการพอร์ตไปยัง FPGA
  • กราฟิกแบบ planar ที่ใช้บน Amiga มีข้อดี เช่น เอฟเฟกต์ความโปร่งใสและเอฟเฟกต์มัวเร
  • การใช้ virtual machine (VM) กับเกมอาจทำให้เกิดประสิทธิภาพที่ลดลงบนพีซีในยุค 90
  • เกมนี้มีฉากเปิดที่น่าจดจำ และเกมเพลย์ที่ท้าทาย เช่น การหลบหนีจากสิงโต
  • ผู้พัฒนาดั้งเดิมของเกมได้บรรยายย้อนหลังในงาน GDC เกี่ยวกับเครื่องมือพัฒนาและกระบวนการทำแอนิเมชัน
  • การดูวิดีโอ playthrough บน YouTube อาจช่วยผู้เล่นที่พบว่าเกมนี้ยากได้