/ ทำเกมดิ

เลือก Game Framework กันดีกว่า

ปกติแล้วเราสามารถสร้างเกมด้วยภาษาโปรแกรม หรือเครื่องมือใดๆ ก็ได้ ที่สามารถแสดง output และรับ input ได้ แต่มันจะง่ายขึ้นมากถ้าเราใช้ Framework หรือ Engine ที่ออกแบบมาสำหรับด้านนี้โดยเฉพาะ

Engine / Framework

เจอ Engine / Framework ที่น่าสนใจหลายตัวเหมือนกัน ตัดไปตัดมาเหลือ 3 ตัวนี้

Unity

Unity Logo

Engine แรกๆ ที่นักทำเกมมือใหม่นึกถึง คงหนีไม่พ้น Unity ที่ทั้งฟรี และดี มี community ที่แข็งแกร่ง และมี Asset/Library ต่างๆ ให้โหลดมากมาย

PixiJS

PixiJS Logo

อันนี้เขาบอกว่าเป็น Super fast HTML 5 2D rendering engine ที่ใช้ WebGL แล้วก็มี fallback ไปเป็น Canvas ด้วย ถือว่าน่าสนใจมาก ตัวอย่างก็ดูดีเวอร์ Library ก็มีค่อนข้างเยอะ การรับค่า input จะเป็น event base เหมือนๆ กับที่ใช้กันในหน้าเว็บปกติเลย

MonoGame

MonoGame Logo

ร่างอวตารของ XNA จริงๆ มีอีกตัวที่คล้ายๆ กันคือ FNA แต่ MonoGame ส่วนใหญ่เหมือนจะ Active กว่า tutorial ส่วนใหญ่จะเป็นของเก่าสมัย XNA เลย แต่ส่วนใหญ่ก็ยังใช้ได้ ลักษณะการเขียนด้วย Framework ตัวนี้จะเป็น update loop และ draw loop ซื่งเป็นพื้นฐานของการทำเกม

ตัดสินใจ

เงื่อนไขของเกมที่จะทำคือต้องเป็น MMORPG จึงต้องพิจารณาประเด็นเหล่านี้

Network

ประเด็กแรกคือต้องการระบบ Network ที่ตอบสนองได้เร็ว ส่ง request ได้ถี่ๆ ฝั่งเว็บก็มี Web Socket และ WebRTC ที่ใข้ได้นะ ส่วนใน C# นั้นสามารถ implement ได้หลากหลาย ทั้งสามารถใช้ socket และส่ง packet แบบ UDP ได้ด้วย

Backend

ประเด็นที่สอง เรื่อง Server Side ที่ต้องรองรับ Connection เยอะๆ และแบ่งภาคกระประมวลผลแยกส่วนได้ อย่างเช่น Map Server ก็ต้องมี Task ที่รันเป็น interval เพื่อ update environment กับ Task ที่จัดการ interaction ของ user อะไรประมาณนั้น ประเด็นนี้อาจจะไม่เกี่ยวกับ Game Framework มากนัก แต่การพัฒนา Server Side และ Client Side โดยใช้ภาษาเดียวกันน่าจะทำได้เร็วกว่า และสามารถแชร์โค้ดบางส่วนได้ด้วย

สรุปเราเลือก MonoGame เพราะให้นึกถึงวันเก่าๆ แค่นั้นเลย ไม่มีเหตุอื่นผลอะไรทั้งนั้น 5555+

เอาเป็นว่าตอนนี้เลือก MonoGame ไปแล้ว ดังนั้นหลังจากนี้ทุกอย่างที่ต้องเลือกหลังจากนี้จะต้องใช้ได้กับ .NET Standard เพราะ .NET ตัวเต็มรันไม่ได้บนบาง Platform

จบ...