13 คะแนน โดย seokmin 2021-11-02 | 3 ความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ ปกติผมเป็นแค่ผู้อ่าน GeekNews มาตลอด แต่ช่วงนี้ได้เข้าร่วมโปรเจ็กต์ใน Cloudflare Developer Challenge (https://challenge.developers.cloudflare.com/) เลยอยากมาแชร์ครับ :)

วิธีเล่นคือกดปุ่ม Create Room บนหน้าหลัก แล้วแชร์ลิงก์ที่แสดงในหน้าถัดไป เพียงเท่านี้ก็จะสร้างเซสชันระหว่างเบราว์เซอร์สองตัวที่เข้าผ่านลิงก์นั้นเพื่อเล่นเกมแบบมัลติเพลเยอร์ และทุกขั้นตอนเหล่านี้เกิดขึ้นบน Cloudflare Workers ทั้งหมด ส่วนรีโพซิทอรี่อยู่ที่นี่ครับ

https://github.com/SeokminHong/edge-yacht


Cloudflare Developer Challenge เป็นโปรแกรมที่ให้สร้างผลงานสนุก ๆ แล้วส่งเข้าประกวด โดยต้องใช้ผลิตภัณฑ์ของ Cloudflare อย่างน้อย 2 ตัวจาก Cloudflare Workers, Cloudflare Pages, Workers KV, Durable Objects ซึ่งเหตุผลที่ผมได้รู้จักโปรดักต์เหล่านี้และได้มาลงแข่งก็เพราะ GeekNews เลยยิ่งอยากนำมาแชร์ครับ!

Cloudflare Workers ช่วยให้สามารถดีพลอยโค้ดแบบเซิร์ฟเวอร์เลสไปยัง global edge ได้ และรองรับการประสานงานผ่าน WebSocket และ Durable Objects ด้วย จริง ๆ แล้ว Cloudflare เคยสาธิตเดโมที่นำสิ่งเหล่านี้ไปใช้รัน Doom แบบมัลติเพลเยอร์ออนไลน์มาแล้ว (https://blog.cloudflare.com/doom-multiplayer-workers/) ผมจึงได้แรงบันดาลใจจากตรงนั้น และตั้งใจลองสร้างเกมมัลติเพลเยอร์สำหรับ 2 คนขึ้นมาตั้งแต่ต้นภายในเวลาพัฒนาราวหนึ่งเดือน

ดีไซน์และกติกาของเกมอ้างอิงจาก Yacht ในชุดมินิเกม 51 Worldwide Games ของ Nintendo Switch เพื่อไม่ให้ฝั่งไคลเอนต์ดัดแปลงสถานะของเกมได้ การเปลี่ยนแปลงสถานะทั้งหมดจึงถูกดำเนินการบน Workers ส่วนไคลเอนต์ใช้ไลบรารี JavaScript 3D อย่าง three.js เพื่อจำลองสถานะ ด้วยเวลาพัฒนาที่ค่อนข้างสั้นจึงมีหลายจุดที่ต้องประนีประนอม ทั้งเรื่องเสียง เอฟเฟกต์ และดีไซน์ แต่เพราะสุดท้ายก็ทำเกมที่เล่นได้จริงเสร็จหนึ่งเกม เลยเอามาโพสต์ไว้ที่นี่ครับ ฮ่าๆ

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

 
shaha 2022-04-04

ว้าว!

 
xguru 2021-11-02

ว้าว!! นี่คือ Yacht เลยนะครับ เป็นเกมที่ผมก็ชอบเหมือนกันเพราะแค่มีลูกเต๋าก็เล่นได้แล้ว ขอแสดงความยินดีที่ทำเสร็จสมบูรณ์ครับ

ลองทดสอบโดยเชื่อมต่อผ่านเบราว์เซอร์สองตัวดูแล้ว พบว่าทำงานได้ดีมากแบบเรียบร้อยสุด ๆ เลยครับ

ผมคิดว่าเกมมัลติเพลเยอร์ที่ทำงานบนเอดจ์นั้นมีความหมายและมีคุณค่ามากพอแน่นอนครับ

 
seokmin 2021-11-02

ขอบคุณครับ! ต้องขอบคุณ GeekNews ที่ทำให้ได้ติดตามข่าวเกี่ยวกับโปรดักต์แบบนี้ด้วยครับ ฮ่าๆ