สำหรับบทความแรกเรามาทำความรู้จักกับ XNA Game Studio Express (XNA GSE) กันก่อน XNA GSE นี้เป็นเครื่องมือใหม่ที่ทางไมโครซอฟต์ออกมาเพื่อเอาไว้สำหรับทำเกมโดยเฉพาะ โดยสามารถทำเกมที่รันบน Windows และ Xbox 360 โดยต้องการให้นักเรียน นักศึกษา หรือนักพัฒนาเกมอิสระได้ทำเกมง่ายๆ หรืออาจจะทำเป็นงานอดิเรกก็ได้ ซึ่งล่าสุดเป็นเวอร์ชัน XNA Game Studio Express 1.0 Refresh ซึ่งในขณะนี้เราสามารถดาวน์โหลดมาใช้ได้ฟรี แต่ก่อนที่สามารถลงโปรแกรม XNA GSE ได้นั้นจะต้องเตรียมเครื่องคอมพิวเตอร์ของเราดังนี้ครับ
• ระบบปฏิบัติ : รองรับ Microsoft Windows XP SP2 ทุก Edition และ Microsoft Windows Vista ทุก Edition เช่นกันครับ
• ฮาร์ดแวร์ : ต้องการการ์ดจอที่รองรับ DirectX 9.0c และ Shader Model 1.1 ขึ้นไป (แต่ถ้าจะให้ดีควรรองรับ Shader Model 2.0) และถ้าหากใครที่จะพัฒนาเกมบนเครื่อง Xbox 360 ก็แน่นอนครับควรมีเครื่อง Xbox 360 ซักเครื่อง
• ซอฟต์แวร์ : โปรแกรมที่จำเป็นสำหรับ XNA GSE นั้นมีดังนี้
- Microsoft .Net Framework 2.0 จริงแล้วตัวนี้จำเป็นสำหรับ Microsoft Visual C# 2005
- Microsoft Visual C# 2005 Express Edition Service Pack 1 (ย้ำว่าต้องเป็น Service Pack 1 นะครับ)
- Microsoft DirectX Runtime 9.0c ขึ้นไป
• อื่นๆ : ในกรณีที่ต้องการพัฒนาเกมลงบนเครื่อง Xbox 360 จะต้องสมัครเป็นสมาชิก XNA Creator Club กับทางไมโครซอฟต์ผ่านทางเครื่อง Xbox 360
หลังจากที่รู้กันแล้วว่าความต้องการของระบบมีอะไรบ้าง ทีนี้เรามาดูขั้นตอนการลงโปรแกรมบนเครื่องของเรากันเลยดีกว่า
ขั้นตอนที่ 1: ลงโปรแกรม Microsoft Visual C# 2005 Express Edition Service Pack 1
โปรแกรมนี้สามารถดาวนโหลดได้จากเว็บไซต์ของไมโครซอฟต์ ซึ่งเป็นจะมีคุณสมบัติคล้ายกับ Microsoft Visual Studio 2005 แต่จะใช้ได้เฉพาะภาษา C# เท่านั้น ซึ่งก็แน่นอนครับ XNA GSE จะใช้ภาษา C# ในการเขียนโปรแกรม สามารถดาวน์โหลดได้จาก http://msdn.microsoft.com/vstudio/express/downloads/default.aspx ดังรูปที่ 1

รูปที่ 1 หน้าเว็บสำหรับดาวน์โหลดโปรแกรม Microsoft Visual C# 2005 Express Edition
เมื่อดาวน์โหลดมาเสร็จแล้วก็ลงโปรแกรมได้เลยคงจะไม่ยากเพราะว่าคลิ๊ก Next อย่างเดียวเลย แต่อย่าลืมนะครับว่าจะต้องมี Microsoft .Net Framework 2.0 ซึ่งคิดว่าทุกคนน่าจะมีอยู่แล้ว แต่ถ้าไม่มีก็สามารถหาดาวน์โหลดจากเว็บไมโครซอฟต์ได้ หลังจากนั้นเมื่อลง Microsoft Visual C# เสร็จแล้วเราก็จะต้องลง Service Pack 1 เพิ่มเติมโดยหาได้จาก URL เดียวกันกับข้างต้นแต่เลื่อนหน้าเว็บลงมาอีกนิดก็จะเห็นดังรูปที่ 2 แล้วก็สามารถดาวน์โหลดแล้วก็ลงโปรแกรม

รูปที่ 2 หน้าเว็บสำหรับดาวน์โหลด Service Pack 1 ของ Visual C#
ขั้นตอนที่ 2: ลงโปรแกรม Microsoft DirectX Runtime 9.0c
ก่อนอื่นต้องทำความเข้าใจก่อนว่า ก่อนที่จะลง XNA GSE ได้นั้นจะต้องลง DirectX Runtime ก่อน จึงจะสามารถรันได้ หรือบางคนต้องการลง DirectX SDK ซึ่งเป็นชุดคำสั่งสำหรับการพัฒนาก็ได้เพราะบางครั้งคุณอาจจะต้องใช้สำหรับสร้างหรือดูไฟล์ DirectX โดยเว็บที่สามารถดาวน์โหลดตัว Install DirectX Runtime คือ
http://www.microsoft.com/downloads/details.aspx?familyid=0A9B6820-BFBB-4799-9908-D418CDEAC197&displaylang=en

รูปที่ 3 หน้าเว็บสำหรับดาวน์โหลด DirectX Runtime
แต่ถ้าใครที่ต้องการลง DirectX SDK ก็สามารถดาวน์โหลดได้จากเว็บ
http://msdn2.microsoft.com/en-us/xna/aa937788.aspx
ซึ่งปัจจุบันได้มีการแก้ไขเมื่อเดือนเมษายนนี้เอง ส่วนวิธีการลงผมเชื่อว่าทุกคนสามารถลงได้สบายอยู่แล้ว
ขั้นตอนที่ 3: ลงโปรแกรม Microsoft XNA Game Studio Express 1.0 Refresh
และแล้วก็มาถึงขั้นตอนการลงโปรแกรมสำคัญของเรา นั่นก็คือโปรแกรม XNA GSE นั่นเอง โดยผู้อ่านสามารถดาวน์โหลดได้จาก
http://www.microsoft.com/downloads/details.aspx?FamilyId=12ADCD12-7A7B-4413-A0AF-FF87242A78DE&displaylang=en

รูปที่ 4 หน้าเว็บสำหรับดาวน์โหลด Microsoft XNA Game Studio Express 1.0 Refresh
ซึ่งเวอร์ชันล่าสุดเป็นเวอร์ชัน 1.0 Refresh ก็ไม่ค่อยเข้าใจเหมือนกันนะครับว่าทำไมใช้คำว่า Refresh เดาว่าพัฒนาจากเวอร์ชัน 1.0 ไม่มากนัก แต่ที่เห็นได้ชัดก็คือสามารถรองรับ Windows Vista และรองรับระบบเสียงสามมิติ
หลังจากที่ทำตามขั้นตอนการลงโปรแกรมทั้งสามขั้นตอนครบแล้ว ถ้าไม่มีอะไรผิดพลาดแล้วละก็ลองเข้าไปที่ Start>All Programs>Microsoft XNA Game Studio Express>XNA Game Studio Express ก็จะได้ดังรูปที่ 5

รูปที่ 5 หน้าตาโปรแกรม XNA Game Studio Express
ในเมื่อลงโปรแกรมเสร็จสมบูรณ์แล้ว ทีนี้มาลองสร้างโปรเจค Hello World กันดีกว่า โดยเข้าไปที่ File>New Project ซึ่งจะได้ดังรูปที่ 6

รูปที่ 6 สร้างโปรเจค HelloWorld
เมื่อกดโอเคแล้วจะได้โค้ดเริ่มต้นที่โปรแกรมสร้างมาให้ ซึ่งสำหรับคนที่เคยใช้ Microsoft Visual Studio มาก่อนอาจจะตกใจเล็กน้อยเพราะว่ามันไม่มีเครื่องมือช่วยตรงส่วนของ Toolbox เลย แต่ก็อย่าเพิ่งตกใจไปครับถ้าอ่านไปเรื่อยๆ จะรู้สึกว่าโปรแกรมนี้ง่ายต่อการทำเกมมากครับ

รูปที่ 7 โค้ดโปรเจค HelloWorld
ทีนี้มาทำความเข้าใจโครงสร้างของโปรแกรมที่มีมาให้กันก่อน โดยโค้ดที่มีมาให้จะมีไฟล์สองไฟล์ที่มีนามสกุล .cs ซึ่งก็เป็นนามสกุลของภาษา C# ทั่วไป ไฟล์แรกชื่อ Program.cs ซึ่งไฟล์นี้จะมี Class ชื่อ Program (โดยส่วนมากการเขียนโปรแกรมแบบ OOP จะเป็นหนึ่งไฟล์หนึ่งคลาส) ซึ่งคลาสนี้จะเป็นตัวสร้างออบเจคของคลาส Game1 ที่อยู่ในไฟล์ Game1.cs นั่นเอง นั่นก็หมายความว่าเมื่อเรารันโปรแกรมไฟล์แรกที่ถูกเรียกคือ Program.cs สำหรับโค้ดหลักของเกมจะอยู่ที่ Game1.cs ซึ่งประกอบไปด้วย 10 ส่วนสำคัญ ซึ่งจะต้องรู้ไว้ว่าควรจะเขียนอะไรตรงส่วนไหน มีดังนี้
1. Using Statements ส่วนนี้จะเป็นการเรียกใช้ Class Library ที่จำเป็นโดยแรกเริ่มโปรแกรมจะมีมาให้หมดแต่ถ้าเราไม่ใช้ก็สามารถลบออกไปได้ ส่วนรายละเอียดจะกล่าวในตอนต่อไป
2. Namespace ส่วนนี้จะเอาไว้เขียนชื่อของ namespace ซึ่งจะเป็นเสมือนกับชื่อของสภาวะแวดล้อมของโปรเจค โดยการควบคุมจะอยู่ภายใต้ namespace นี้ แต่ถ้าต้องการนำ Component ของคนอื่นมาใช้เราก็จะเรียกใช้โดยการใส่ using <ชื่อ namespace> ตรงส่วนที่หนึ่ง
3. Class ส่วนนี้จะเป็นการประกาศชื่อคลาสโดยส่วนมากในหนึ่งไฟล์ก็จะมีหนึ่งคลาส (แต่ไม่จำเป็น อาจมีหลายคลาสในหนึ่งไฟล์ได้) พร้อมทั้งมีส่วนของการให้สิทธิ์ในการเข้าถึงคลาสด้วยนั่นคือ public, protected, internal, protected internal, หรือ private
4. Declaration ส่วนนี้จะเอาไว้ประกาศตัวแปร Global variable(s) ซึ่งเป็นตัวแปรที่ทุกเมทอดสามารถเรียกใช้ได้
5. Constructor ส่วนนี้จะเป็นการประกาศ Constructor ซึ่งจะเป็นชื่อเดียวกับคลาส ซึ่งคำสั่งที่อยู่ในส่วนนี้จะถูกทำงานทันทีที่มีการสร้างออบเจค โดยสามารถสร้างตัวรับพารามิเตอร์ได้ในตรงนี้
6. Initialize คำสั่งที่อยู่ในส่วนนี้จะถูกทำงานเมื่อออบเจคของคลาสถูกเรียกใช้งาน พูดง่ายๆก็คือเมื่อรันโปรแกรม คำสั่งที่อยู่ตรงส่วนนี้จะถูกเรียกใช้งานทันที
7. LoadGraphicsContent ส่วนนี้ก็จะถูกเรียกใช้งานทันทีโดยไม่ต้องเรียกเช่นกัน โดยคำสั่งที่อยู่ตรงส่วนนี้ก็จะเป็นพวกโหลดกราฟิกต่างๆ เช่น รูป โมเดล ไฟล์ต่างๆ
8. UnloadGraphicsContent ส่วนนี้ก็จะเอาไว้ลบกราฟิกที่โหลดมาจากส่วนที่ 7 เมื่อไม่ต้องการใช้หรือเมื่อจบโปรแกรมโดยมีทั้งลบอัตโนมัติและถ้าต้องการลบเองก็สามารถเพิ่มโค้ดเข้าไปได้
9. Update ส่วนนี้จะถูกเรียกใช้ตลอดเวลาทุกๆ มิลลิวินาที จะมีประโยชน์มากตรงส่วนนี้ นั่นก็คือเมื่อมีต้องการให้โปรแกรมหรือเกมที่เราสร้างขึ้นอัพเดทตลอดก็จะใส่โค้ดไว้ตรงส่วนนี้ ยกตัวอย่างเช่น เราต้องการสร้างภาพให้เคลื่อนไหวเราจะต้องอัพเดทตำแหน่งของภาพ หรือมีการจับเวลา หรือตรวจเช็คอินพุทจากคีย์บอร์ดหรือจอยของ Xbox 360 เป็นต้น
10. Draw ส่วนสุดท้ายสำคัญมากเป็นส่วนที่ใช้สำหรับวาดรูปโดยจะทำงานทุกๆ มิลลิวินาทีเช่นกัน เมื่อมีการอัพเดทตำแหน่งจากส่วนที่ 9 แล้วเราก็จะภาพมาวาดในตำแหน่งนั้นๆ กล่าวง่ายๆ คือส่วนนี้เอาไว้วาดรูปทุกอย่างเลย
จากข้างต้นที่กล่าวมาทั้ง 10 ส่วน จะเห็นได้ว่าตั้งแต่ส่วนที่ 4 ถึง 10 จะอยู่ภายใต้คลาสเดียวกัน นอกจาก 10 ส่วนนี้แล้วเราสามารถสร้าง Method(s) เพื่อทำงานพิเศษอื่นๆ เพิ่มเติมได้ตามความต้องการ
เมื่อเราได้ทราบถึงโครงสร้างหลักๆ ของโปรแกรม เราก็กลับมาที่โปรเจค Hello World! โปรเจคแรกของเรากันก่อน โดยให้แก้ไขโค้ดในส่วน Constructor ดังนี้
public Game1()
{
graphics = new GraphicsDeviceManager(this);
content = new ContentManager(Services);
graphics.PreferredBackBufferWidth = 800;
graphics.PreferredBackBufferHeight = 600;
Window.Title = "Hello World!";
Console.WriteLine("Hello World!");
}
นั่นคือเราได้เพิ่มคำสั่งสำหรับเปลี่ยนขนาดของโปรแกรม เปลี่ยน Title ของโปรแกรม และพิมพ์ข้อความ “Hello World!” ออกมาทาง Output จากนั้นก็ลองรันโปรแกรมดูครับ โดยกดที่เมนู Debug>Start Debugging หรือจะกด F5 ก็ได้นะครับเพื่อความรวดเร็ว เราก็จะได้หน้าจอโปรเจคแรกของเราดังรูปที่ 8

รูปที่ 8 หน้าจอโปรเจค HelloWorld
เป็นอันว่าเราได้โปรเจคแรกที่สามารถรันบน Windows ได้เรียบร้อยแล้ว หลายคนเริ่มมีคำถามว่าแล้วจะเอาไปรันบนเครื่อง Xbox 360 ได้อย่างไร
การที่เราจะสามารถรันเกมที่เราสร้างขึ้นจาก XNA GSE นี้บนเครื่อง Xbox 360 ได้นั้น เราจะต้องสมัครเป็นสมาชิก XNA Creator Club ก่อน โดยค่าสมัครอยู่ที่ 49 เหรียญสหรัฐต่อ 4 เดือน หรือใครที่ต้องการสมัครรายปีก็ปีละ 99 เหรียญ
สำหรับขั้นตอนการสร้างโปรเจคเป็น Xbox 360 สามารถสร้างได้โดยเลือก File>New Project แล้วเลือกรูปแบบเป็น Xbox 360 Game ตั้งชื่อโปรเจคเป็น HelloWorldXbox360 และเลือก Solution เป็น Add to Solution ดังรูปที่ 9

รูปที่ 9 สร้างโปรเจคสำหรับรันบน Xbox 360
เมื่อได้โปรเจค HelloworldXbox360 มาแล้วเราจะได้ไฟล์เริ่มต้นเหมือนกับโปรเจคที่รันบน Windows เราสามารถคัดลอกโค้ดจากโปรเจคของ Widdows มาได้เลย พูดง่ายๆ ก็คือโค้ดโปรแกรมเหมือนกันทุกอย่างต่างกันแค่ตอนเลือกชนิดของโปรเจค ดังรูปที่ 10 แล้วเราก็คลิ๊กขวาที่โปรเจค Xbox360 แล้วเลือก “Set as Startup Project” แล้วก็รันโดยกด F5 หน้าจอก็จะไปขึ้นที่ทีวีของเราที่ต่อเครื่อง Xbox 360 อยู่

รูปที่ 10 โปรเจคที่ให้สำหรับรันบนเครื่อง Xbox 360
เป็นอันว่าเราได้โปรแกรม Hello world ที่รันได้ทั้งบน Windows และ Xbox 360 ได้แล้วนะครับ
แหล่งข้อมูลอ้างอิง
- http://creators.xna.com/
- http://www.microsoft.com/xna
| < ย้อนกลับ | Next > |
|---|


Comments