หลายๆคนอาจจะงงๆว่าตกลงมันคืออะไรกันแน่ ยิ่งคนที่ไม่มีพื้นฐานเลยเนี่ย อาจเกิดอาการงงเป็นไก่ตาแตกเลยว่า อะไรคือ framework??? อะไรคือ pipeline ถ้าถามผม คำถามเหล่านี้ ผมก็ตอบไมได้เหมือนกัน (เอ๊ะ ยังไง) จะขออธิบายเปนแบบที่ประมวลผลแล้วแล้วกันนะครับ สำหรับผู้ที่ เป็น "ผู้เริ่มต้นจริงๆ"
การสร้างเกมคอมพิวเตอเค้าทำกันยังไง
ก่อนจะมาทำความเข้าใจว่าXNAมันคืออะไร เราไปทำความเข้าใจกับการเขียนเกมบนวินโดว์กันก่อน
เกมที่หลายๆคนเล่นกันนั้น ไม่ว่าจะเป็นแบบ 2 มิติ หรือ 3 มิติ เช่น Prince of persia , Comand conquer , Dota , Ragnarok เกมต่างๆเหล่านี้ ถูกสร้างด้วยมาตราฐานตัวนึงของไมโครซอฟ นั่นก็คือ Directx sdk นั่นเอง อ๊ะๆ อย่าสับสนกับ Directx เฉยๆนะครับ เพราะมันมี Sdk ต่อท้าย เหมือนเพื่อนผมคนนึงทื่มันอยากจะสร้างเกม แล้วดันดาวโหลด directx 9.0 c มาเฉย สำหรับคนที่จะเริ่มต้น ระวังข้อผิดพลาดตรงนี้ด้วยนะครับ แล้ว Directx sdk คืออะไรล่ะ มันก็คือกลุ่มคำสั่งที่ใช้เขียนควบคุมฮาดแวให้แสดงผล หรือรับค่าต่างๆจากผู้ใช้ให้ง่ายขึ้นนั่นเอง อทิบายง่ายๆคือ หากเราไม่ใช้ Directx เราก็ต้องสั่งงานฮาดแวให้แสดงผลโดยตรง ซึ่งเป็นการยุ่งยากมาก หลายๆคนอาจจะเคยเห็นหนังสือเช่น "การเขียนเกมด้วย Delphi" หรือการเขียนเกมด้วยโปรแกรมอื่นๆ นั่นเป้นการสั่งงานฮาดแวโดยตรงเลย แต่มาตราฐานของDirectx ที่ถูกลงไว้ในวินโดว์เกือบทุกเครื่อง ทำให้ทั้งผู้เล่น และผู้ผลิต ไม่ยุ่งยากในการแยกมาตราฐานนั่นเองครับ สำหรับคนที่สนใจ Directx สามารถหาE-bookได้ตาม internet (text book) หรือในไทยเองก็เห็นในท้องตลาดอยู่ 2- 3 เล่ม (แต่ผมไม่ค่อยแนะนำเท่าไหร่นะครับ เพราะว่ามีเฉพาะเรื่องของสองมิติ แล้วก็ยังเขียนแบบเอาไปประยุกต์เองไมได้เต็มที่ พูดง่ายๆคืออ่านแล้วงงนั่นเอง) อ้อ ส่วนพวกหนังสือที่เขียนประมาณว่า สร้างเกมด้วย gamemaker หรือ Rpg maker ก็เป็นการสร้างเกมได้นะครับ แต่ก็เป็นเกมง่ายๆ และไม่มีความหลากหลาย คือเกมมันก็จะมีระบบและหน้าตาเหมือนๆกันหมด แตกต่างกันที่กหราฟฟิค แนะนำให้อ่านเพื่อดูแนวคิดเท่านั้นนะครับ แต่หากต้องการจะพัฒนาในสิ่งที่เป็นของคุณ จริงๆ มาศึกษาDirectx และ XNA กันดีกว่าครับ ถึงไหนแล้วเนี่ย อ้อ เมื่อเราสามารถใช้ชุดคำสั่งสั่งงานให้แสดงผลได้ง่ายขึ้นแล้ว ก็จริง แต่ก็มีหลายๆคนที่คิดว่ามันยังยากเกินไปอยู่ จึงมีส่วนที่สองตามมา นั่นก็คือ Game engine นั่นเอง
อะไรคือGame engine
พูดให้ง่ายๆเลย เกมเอนจิ้นก็คือกลุ่มคำสั่งที่เขียนครอบDirectx อีกที เพื่อให้การสั่งงานDirectx ง่ายยิ่งขึ้น โดยที่เกมเอนจิ้นมีทั้งฟรี คอมเมอเชียล หรือต้องเปิดเผยสิ่งที่คุณทำเสร็จเมื่อผลงานออกมา(open source) ซึ่งประสิทธิภาพก็ขึ้นอยู่กับราคานั่นเองครับ ยกตัวอย่างเช่น Ogre engine (
www.ogre3d.org) ที่เป็น Engine ที่ไม่คืดเงิน หรือแม้กระทั่ง Unreal3 ที่ราคาเป็นหลัก 10 ล้าน (ใช้ทำเกม lineage2) ก้หามาดูตามกำลังทรัพย์นะครับ ส่วนผม ขอใช้ของฟรีก่อนดีกว่า อิอิ
แล้วไอ้Directx sdk หรือ Game engine เนี่ย มันใช้งานยังไง
ตัวไดเรคเอ็กเองเนี่ย อ้างอิงภาษา c++ (สมัยเด็กๆผมอยากเขียนเกม ก็ไปยืมหนังสือเชขียนโปรแกรมด้วย Visual basic มาอ่าน ด้วยความที่ไม่รู้ว่ามันไม่เหมือนกัน -_-")ซึ่งในไทย คอมไพเลอที่นิยมใช้กันก็คือ visual studio จะเป็น 2003 หรือ 2005 ก็ได้ แต่ว่าเกมเอนจิ้นเนี่ย ขึ้นอยู่กับทางผู้ผลิตว่า จะใช้ภาษาอะไรในการเขียน อาจจะเป็น ภาษา c# ภาษา python หรือแม้กระทั่ง java ก็มีเอนจิ้นที่รองรับ ใครถนัดภาษาไหนก็ลองหาเอนจิ้นสำหรับภาษานั้นๆมาลองดูนะครับ
แล้ว Xna คืออะไร
เกริ่นมาซะยืดยาว แล้ว XNA คืออะไร
เอาตามคววามคิดง่ายๆเลยก็คือ มันก็คือ Directx สำหรับ XBox360 นั่นเอง เพียงแต่ว่า จะต้องควบคุมด้วยภาษา C# นั่นเอง (อนาคต c# ดูจะสดใสนะครับ ดว้ยความที่มันง่ายกว่า c++ แล้วดูเหมือนจะกลายมาเป็นมตราฐานใหม่สำหรับการพัฒนาเกมในยุคปัจุบันแล้ว) อ้อ และ คอมไพเลอที่แนะนำก็คือ โปรแกรม microsoft visual c# express edition ซึ่งสามารถโหลดมาใช้วงานได้ฟรีๆเลยนะครับ โดยที่ Xna สามารถที่จะทำงานได้ทั้งการพัฒนาเกมบน Xbox360 และ วินโดสด้วย (แต่ผมว่า ห่ากอยากพัฒนาเกมสำหรับเครื่องพีซีเนี่ย ไปใช้เอนจิ้นเฉพาะของpcน่าจะง่ายกว่านะครับ อันนี้ความเห็นส่วนตัว) อนาคตของ Xbox360 ตอนนี้ดูจะสดใสมาก หลังจากความล้มเหลวของ ps 3 และเกมแม่เหล็กที่ข้ามแพลตฟอมมาลงXbox360 กันหลายเกมมาก ทำให้ตอนนี้ XNA กำลังเติมโตและขยายตัวอย่างรวดเร็ว เพราะฉะนั้น เรามาเริ่มศึกษาXNA กันดีกว่าครับด้วยสโลแกนที่ว่า
ว่า...... ว่า.....ลืมครับ ประมาว่า คุนฝันมัน ร้างมัน และคนเป็นล้านก็จะเล่นมันในอนาคต (วอนคนรู้มาตอบทีนะครับ) เอาล่ะสำหรับวันนี้เราทำความรู้จักกันเท่านี้ก่อน หากใครมีข้อสงสัย pm มาได้นะครับ
ป.ล.
ถ้าหากอยากจะเริ่มศักษาXNA ต้องมีเครื่องมืออะไรบ้าง
1. microsoft visual c# 2005 express edition
2. directx sdk ตัวล่าสุด(หาโหลดได้ที่เว็บไมโครซอฟนะครับย)
3. Xna game studio express (ซึ่งตอนนี้เป็นเวอชั่น 1.0อยู่นะครับ)
มี 3 ตัวนี้ คุณก็เริ่พัฒนาเกมบน Xbox 360 ได้แล้วครับ ^_^
ส่วน Xna starter kit นั้น จะมีหรือไม่มีก็ได้ครับย เพราะเป้นเกมตัวอย่างสำเร็จที่ทำให้ดูเท่านั้นเอง
มีข้แอผิดพลาดยังไงขออภัยมา ณ ที่นี้ด้วยครับ ^^