ผมลองทำเว็บไซต์ที่ให้เล่นเกม MAME คลาสสิกบนเว็บได้ ดูเหมือนจะมีเว็บไซต์จำนวนมากที่ให้เล่นผ่านเว็บได้แบบง่าย ๆ แต่ดูเหมือนยังไม่มีเว็บที่รองรับการเล่นผ่านเครือข่ายบนเว็บได้อย่างราบรื่น จึงลองทำโดยเน้นไปที่การเล่นผ่านเครือข่ายครับ
ขั้นแรก เมื่อผู้ใช้อัปโหลด MAME ROM ผู้ดูแลระบบจะตรวจสอบว่า ROM นั้นมีปัญหาหรือไม่ และเมื่ออนุมัติแล้วจึงจะแสดงให้ผู้ใช้เห็น ถ้าเป็นเกมที่รองรับ 1P, 2P ผมลองทำให้สามารถเล่นผ่านเครือข่ายได้โดยไม่ขึ้นกับประเภทของเกม
Backend : FastAPI, Radis, postgresql, wss, likvekit Frontend : react + vite, tailwindCss
ตอนแรก ในการเล่นผ่านเครือข่าย ผมดำเนินงานด้วยวิธีเปิดอีมูเลเตอร์แยกกันบนเว็บของแต่ละคน แล้วส่งต่อเฉพาะอินพุตปุ่มกดของผู้ใช้ แต่เกิดปัญหาร้ายแรงในส่วนการซิงก์ ส่งกันได้แค่ปุ่มกด แต่เรื่องอย่างการตั้งค่าตัวละคร หรือความต่างของเวลาโหลดอีมูเลเตอร์ ทำให้ซิงก์กันจนเล่นเกมต่อไม่ได้เลยครับ ดังนั้นผมจึงคิดวิธีว่า เมื่อเริ่มเกมแบบเครือข่าย ก็ส่งทั้งหน้าจอไปยังเบราว์เซอร์ของผู้เข้าร่วมทั้งหมดเลย ผมนึกถึง LiveKit และในสถานะนี้ก็ให้ส่งอินพุตปุ่มกดไปมาหากันผ่าน WebSocket เท่านั้น
หลังจากนั้น ปัญหาการซิงก์กันก็แก้ได้อย่างสมบูรณ์ ทำให้เล่นเกมผ่านเครือข่ายได้โดยไม่มีปัญหา ไม่ว่าจะเป็นเกมยิงหรือเกมต่อสู้ แต่ปัญหาก็คือทราฟฟิกเครือข่ายนั่นแหละครับ
ผมทำให้ไม่มีฟีเจอร์อื่นนอกเหนือจากการเล่นเกม เพื่อให้ลองเล่นได้แบบเบา ๆ รบกวนลองเข้าไปดู และถ้ามีจุดที่ควรปรับปรุงก็ช่วยบอกด้วยนะครับ
ยังไม่มีความคิดเห็น