โดย นาย ณัฐพงษ์ ทุมมาลา นาย ทินกร เหมหงษ์ COE2007-12 การพัฒนาเกม 3 มิติ ด้วยชุดพัฒนาเกม ไมโครซอฟท์ เอ็กซ์เอ็นเอ เกมส์ สตูดิโอ Developing 3D Games with Microsoft XNA Game Studio โดย นาย ณัฐพงษ์ ทุมมาลา นาย ทินกร เหมหงษ์
สารบัญ ที่มาของโครงการ วัตถุประสงค์ของโครงการ วัตถุประสงค์ของ XNA งานที่ทำในปัจจุบัน แผนการดำเนินงาน ปัญหาและแนวทางการแก้ไข งานที่ทำในอนาคต
ที่มาของโครงการ ปัจจุบันอุตสาหกรรมเกมมีการแข่งขันทางการตลาดสูง เครื่องมือที่ใช้พัฒนาเกม (Engine) ในปัจจุบันมีราคาแพง ชุดพัฒนาเกม XNA Game Studio Express ใช้งานได้ฟรี ทำให้การจ้างงานในสายอาชีพนี้เริ่มมีมากตามไปด้วย อีกทั้งประเทศไทยในตอนนี้มีการเปิดโอกาสให้แสดงผลงานได้อย่างอิสระ กลุ่มของกระผมจึงมีความสนใจที่จะพัฒนาเกี่ยวกับโครงการนี้ การที่เราจะเข้าถึงการพัฒนาเกมสามารถทำได้ยากเนื่องมาจาก... Game engine มีราคาแพงทำให้การพัฒนาเกมสำหรับผู้ที่สนใจแต่ขาดกำลังทัรพย์จะศึกษาและพัฒนาเกมเป็นไปได้ยากแต่ก็เป็นโอกาศอันดีเมื่อขุดพัฒนาเกม XNA Game Studio Express ให้ใช้งานได้ฟรี จึงทำให้กลุ่มของข้าพเจ้าสนใจที่จะศึกษาและพัฒนาโครงการดังกล่าว ๙งแต่เดิมตัวข้าพเจ้าก็มีความสนใจทางด้านนี้เป็นพิเศษอยู่แล้ว
วัตถุประสงค์ของโครงการ ศึกษาและพัฒนาเกม 3 มิติ บนระบบปฏิบัติการ Window XP ศึกษาและพัฒนาเกมด้วย Microsoft XNA Game Studio เผยแพร่วิธีการใช้งาน Microsoft XNA Game Studio
วัตถุประสงค์ของ XNA เกมที่พัฒนาสามารถเล่นได้บนเครื่องเล่นเกมที่หลากหลายชนิด พัฒนาเกมได้ง่ายและเร็ว Cross-platform Game Development Tools - เกมที่สร้างขึ้นจะสามารถเล่นได้ทั้งใน Windows และ Xbox ไมโครซอฟต์ต้องการให้นักพัฒนาสามารถสร้างเกมใน Windows ได้อย่างสะดวกและรวดเร็ว (รวมทั้งต้นทุนต่ำด้วย) แล้วสามารถสร้างเวอร์ชั่นสำหรับ Xbox ได้อย่างง่ายดาย เป้าหมายคือ code จะมีความเหมือนกันประมาณ 95% ส่วนที่ต่างกันก็คือการใช้ features ที่เฉพาะเจาะจงสำหรับ platform นั้นๆ ซึ่งหมายความว่าเกมส่วนใหญ่จะไม่มี code ที่แตกต่างกันเลย Simplify Game Development – คือ โปรแกรมเมอร์ไม่ต้องสนใจเรื่องการจัดการ Windows, Graphics Card, Graphics Mode, Inputที่ต้องสนใจมีอย่างเดียวคือการเขียน code เกม ซึ่งมันจะลดภาระต่างๆลงไปได้มาก การจัดการด้าน resource ก็ทำได้ง่าย โดยมีเครื่องมือที่ชื่อ "Content Pipeline" ที่ทำให้การส่ง content เข้าไปในเกมทำได้ง่ายทั้งการ import, compiling, และ loading ในเกม มี "Starter Kits" ให้ คือใน Microsoft XNA Game Studio จะมีตัวเกมที่สมบูรณ์ทั้ง resource และ code ที่ใช้เป็น project template ได้เลย นักพัฒนาเกมสามารถเริ่มสร้างเกมโดยการปรับแต่ง template ดังกล่าวที่มีมาให้ได้ทันที
XNA คืออะไร (1/2) XNA ย่อมาจาก Xbox/DirectX New generation Architecture เป็นชุดคำสั่งที่ใช้พัฒนาเกมจากบริษัท Microsoft ซึ่งประกอบไปด้วย 2 ส่วนหลัก ดังนี้ XNA Game Studio Express XNA Framework XNA Game Studio Express IDE (Integrated Development Environment) ที่พัฒนามาจาก Microsoft Visual Studio ด้วย เครื่องมือเหล่านี้ทำให้การพัฒนาเกมสะดวกขึ้นมาก และเครื่องมือที่ใช้ในการพัฒนาเกมทั้งหมด สภาพแวดล้อมการทำงานในการพัฒนาโปรแกรม อุปกรณ์เครื่องมือต่างๆ แบบเพียบพร้อมจัดเตรียมมาให้ใช้ในการพัฒนาโปรแกรม มี ซอร์สโค้ด editor, complier หรือ interpreter, และ debugger ในโปรแกรมเดียวกัน XNA Framework หมายถึง library ที่ใช้ในการพัฒนาเกม ซึ่งเป็น dll ที่เขียนด้วยภาษา C# ทำให้การทำงานของ XNA ต้องทำงานภายใต้C# dynamic link library เป็นกลุ่มของโปรแกรมขนาดเล็ก ซึ่งแต่ละโปรแกรมสามารถเรียกไปใช้ โดยโปรแกรมที่ใหญ่กว่า มีข้อได้เปรียบเพราะไม่ต้องโหลดไปสู่หน่วยความจำชั่วคราว (RAM) พร้อมกับโปรแกรมหลัก จึงเป็นการประหยัดหน่วยความจำ เมื่อต้องการไฟล์ DLL จึงมีการโหลดและใช้งาน
XNA คืออะไร (2/2) XNA Framework Platform - ส่วนนี้ทำหน้าที่ติดต่อกับฮาร์ดแวร์หรือตัวกลาง เช่น เช่น Direct3D, XACT, XInput และ XContent Core Framework - เป็นส่วนที่ทำหน้าที่หลักในการจัดการ DirectX ส่วนนี้แบ่งการทำงานเป็นกลุ่ม คือ Graphics, Audio, Input, Math และ Storage Extended Framework – เป็นส่วนที่ช่วยอำนวยความสะดวกสำหรับการพัฒนาเกม Application Model เป็นส่วนที่ทำให้นักพัฒนาไม่ต้องกังวลถึง platform ที่กำลังเล่นอยู่ ส่วนนี้จะทำหน้าที่จัดการเรื่อง window, message pump, timer or clock, รวมทั้งการจัดการ GraphicsComponent และ Graphics Device นักพัฒนาจึงไม่ต้องสนใจความแตกต่างของ PC และ XBos Content Pipeline มีหน้าที่ในการ import, compile และ load game asset ซึ่งได้แก่ textures, 3D models, shaders และ sounds Game - คือตัวเกมเอง ประกอบด้วย code และ content รวมทั้ง starter kits และ game component game Component เข้าไปในเกมได้ Game Component นี้คือ class ที่จะถูกเรียก Update และ Draw method จาก Game Class
งานที่ทำในปัจจุบัน ศึกษาและรวบรวมข้อมูลจากแหล่งต่างที่เกี่ยวข้องกับการทำโครงการ ศึกษาการใช้งาน Microsoft XNA Game Studio ศึกษาการใช้งานการใช้โปรแกรม 3DsMax เขียนโปรแกรมแสดงภาพ 2 มิติ และวัตถุ 3 มิติ
แผนการดำเนินงาน การดำเนินงาน มิ.ย. 50 ก.ค. 50 ส.ค. 50 ก.ย. 50 ต.ค. 50 พ.ย. 50 ธ.ค. 50 ม.ค. 51 ก.พ. 51 ศึกษาข้อมูลต่างๆที่เกี่ยวข้องกับการทำโครงการ ศึกษาเครื่องมือที่ใช้ในการพัฒนาเกม C# 3DsMax วางแผนและออกแบบการพัฒนาเกม พัฒนาเกม ทดสอบและแก้ไขข้อผิดพลาดตัวเกม จัดทำรายงาน ส่วนที่ดำเนินการเสร็จ ส่วนที่ยังไม่ได้ดำเนินการ
ปัญหาและแนวทางการแก้ไข ปัญหาที่พบ XNA เป็นเรื่องที่ใหม่ทำให้การหาข้อมูลที่เกี่ยวข้องทำได้ไม่มากนัก ขาดทักษะในการออกแบบงานทางด้านสถาปัตยกรรมและโมเดล 3 มิติ แนวทางการแก้ไขปัญหา หา code และ Tutorial ต่างๆตามเว็บไซต์ที่เกี่ยวข้องกับ XNA มาศึกษา หาโมเดลสำเร็จรูปที่มีให้ตามเว็บไซต์มาศึกษาและนำมาประยุกต์ใช้
งานจะทำในอนาคต เขียนโปรแกรมติดต่อกับคีย์บอร์ด วางแผนและออกแบบการพัฒนาเกม ศึกษาและออกแบบการทำ Low Polygon
Q&A