2. วรรณกรรมที่เกี่ยวข้อง
สืบเนื่องจากบทนำ Game Engine สำหรับ C# ที่เรานำมาศึกษานั้น ณ ปัจจุบันนี้ เริ่มมีการศึกษากันบ้างแล้ว โดยที่เป็น open-source และ commercial ทางด้าน open-source นั้น มีทางเลือกให้เราศึกษาหลากหลายไม่ว่าจะเป็น Axiom, LightFire#, Purple#, RealmForge GDK, ExoEngine และ Ovorp ส่วนทางด้าน Commercial นั้นมีเพียง Truevision3D ตัวเดียวที่สนับสนุนการเขียนด้วย C# นอกนั้นยังคงสนับสนุนภาษา C++ เป็นส่วนใหญ่ ในส่วนที่เราสนใจศึกษา เราจะข้ามส่วนที่เป็น commercial ถึงแม้ว่าจะมีประสิทธิภาพในตัวพัฒนาสูงก็ตาม แต่ยังคงติดเงื่อนไขในการพัฒนาเนื่องจากต้องเสียค่าใช้จ่ายให้สามารถใช้งาน ได้อย่างมีประสิทธิภาโดยสมบูรณ์ เราจึงเน้นศึกษาในด้านที่เป็น open-source มากกว่า เพราะสามารถทำการศึกษาได้อย่างเต็มที่ไม่ว่าจะเป็น ฟังก์ชันการทำงานต่างๆ และ source code ในการสร้างตัว Engine
Game Engine คือ สิ่งที่ช่วยคุณสร้างเกม เปรียบเสมือนเครื่องมือช่วยเหลือให้การทำงานของคุณ มีความสะดวกและรวดเร็วมากขึ้น ตัวอย่างเช่น Engineที่ถูกสร้างขึ้นเพื่อใช้เป็นรูปแบบเกมของคุณ หรือEngineที่ถูกสร้างขึ้นเพื่อช่วยในการ Render เกมของคุณให้มีความสวยงามมากขึ้น หรือจัดการด้านกราฟิก(graphic) ด้านอุปกรณ์ต่อพ่วง (input) และด้านเสียง (sound) หรืออาจมีส่วนประกอบเพิ่มขึ้นมาเพื่อการจัดการด้านกายภาพ (physics) การสร้างพื้นฉาก (terrain) การตรวจจับการชน (collision detection) และอื่น ๆ เป็นต้น
.Net Framework เป็นแพลตฟอร์มใหม่ และเปลี่ยนแปลงจากเดิมอย่างสิ้นเชิง สร้างขึ้นโดย บริษัท Microsoft เพื่อใช้สำหรับพัฒนา Application .Net Framework ซึ่งออกแบบมาให้สามารถใช้ภาษาใดๆ ก็ได้ รวมถึงภาษา C# , C++, Visual Basic, JScript, Delphi และอื่นๆ ที่เป็นไปได้ จึงเกิดภาษาเหล่านี้ ขึ้นมาในรูปของ Version โดยเฉพาะ สำหรับ .Net อีกด้วย ได้แก่ ภาษา Managed C++, Visual Basic.Net, Jscript .Net และ Borland C#
C# Language คือ หนึ่งในภาษาที่นำมาใช้สร้างแอปพลิเคชั่น โดยรันอยู่ใน .NET CLR (Common Language Infrastructure) ได้ ที่เป็นวิวัฒนาการของ ภาษา C และ C++ และถูกสร้างขึ้นโดยบริษัท Microsoft โดยเฉพาะ เจาะจงให้ทำงานกับแพลตฟอร์ม .Net ในฐานะที่เป็นการพัฒนาล่าสุด ภาษา C# จึงถูกออกแบบมาอย่างมีเบื้องหลัง (C และ C++) ทำให้รับเอาฟีเจอร์ที่ดีที่สุดจากภาษาอื่นๆ ในขณะที่ลบล้าง
3. วัตถุประสงค์และเป้าหมาย
3.1 เพื่อศึกษาคุณลักษณะและการทำงานของ Game Engine รวมถึงเทคนิคที่ใช้ในการจัดการกับปัญหาที่เกิดขึ้น
3.2 เพื่อเปรียบเทียบภาษาที่ใช้ในการเขียนเกมระหว่างภาษา C# กับ C++
4. วิธีการศึกษา
4.1. ข้อมูลและอุปกรณ์ที่ใช้ในการศึกษา
4.1.1 อุปกรณ์ที่ใช้ในการศึกษา
- ซีพียู AMD Athlon 2000+
- หน่วยความจำ DDR RAM 512 Mbyte
- การ์ดแสดงผล Radeon 9500 pro
- ระบบปฏิบัติการ WindowXP
- Microcoft Visual Studio.NET 2003
4.1.2 ข้อมูลที่ใช้ในการศึกษา
- ReamlForge GDK Engine
- Axiom 3D Rendering Engine
4.2. ขั้นตอนการศึกษา
แนวทางการศึกษา มีขั้นตอนดังนี้
1. สำรวจ Game Engine ที่พัฒนาด้วย C# ที่มีในปัจจุบัน
2. ตัดสินใจเลือกศึกษา RealmForge GDK Engine
3. ศึกษาคุณลักษณะและการทำงานของ RealmForge GDK Engine
4.2.1 เหตุผลในการเลือกศึกษา RealmForge GDK Engine
- มีความสมบูรณ์ของเอกสารพอสมควรที่จะศึกษาได้
- มี help สำหรับช่วยเหลือในการพัฒนาได้ (RealmForgeGDK-v0.6.2) ทั้ง Axiom rendering และ RealmForge GDK
- สนับสนุน .NET Framework และ ใช้ C# ในการพัฒนาเป็นหลัก
- มีความยืดหยุ่นสูง เนื่องด้วยความสามารถของ .NET ( เช่น ทำการหยุดเกม แล้วสามารถแก้ไข ตัวต่างๆภายในเกมได้ทันที)
- เป็นโครงงาน open-source ที่สร้างเพื่อให้นักเรียน และผู้มีเวลาว่าง มีทางเลือกที่สามารถพัฒนา ไปสูตัวเกมที่มีความสวยงามได้
- สนับสนุนทุกรูปแบบของประเภทตัวเกมได้ ไม่ว่าจะเป็น 3D game เพื่อการศึกษาสำหรับเด็ก, MMORPGs , FPS (First Person Shooters ), และ บอร์ดเกม ได้ด้วย
- มีการจัดเตรียมชุดของเกมไว้เป็นหมวดหมู่สำหรับนักพัฒนา ตามหมวดหมู่ เช่น script, plug-in, สื่อด้าน media เพื่อให้เกิดความรวดเร็วในการพัฒนามากขึ้น
4.2.2 Game Engine คืออะไร
Game Engine เปรียบเสมือนสะพานเชื่อมระหว่างคุณและไลบรารี่ของ กราฟิก อุปกรณ์ต่อพ่วง และเสียง เกมEngine คือ ส่วนที่สามารถนำกลับมาใช้ใหม่ได้ ซึ่งคุณไม่ต้องเขียนใหม่ทุกครั้งเมื่อจะทำสิ่งเดียวกันกับสิ่งที่เคยทำไป แล้ว มีหลายฟังก์ชันและหลายคลาส ซึ่งจะทำให้คุณสร้างเกมได้ง่ายขึ้น
Game Engine ไม่ใช่ตัวเกมทั้งหมด เราอาจเปรียบEngineเสมือนเครื่องยนต์ของรถยนต์ ซึ่งคุณสามารถยกเอาเครื่องยนต์ออกจากตัวรถ แล้วนำไปสร้างส่วนต่าง ๆ มาครอบตัวเครื่องยนต์เพื่อให้รถยนต์วิ่งใหม่ได้
Game Engine ไม่มีเอกลักษณ์เฉพาะตัว ถูกสร้างขึ้นเพื่อจัดการสิ่งต่าง ๆ ที่เกมสมควรมี และขึ้นอยู่กับผู้สร้างด้วยว่าต้องการให้จัดการส่วนใด แต่สิ่งสำคัญที่ต้องมีการจัดการ คือ กราฟิก (graphic) และเสียง (sound) ส่วนประกอบเพิ่มเติมที่ Game Engine อาจเพิ่มขึ้นมาได้ คือ การจัดการทางด้านกายภาพ (physics) การสร้างพื้นฉาก (terrain) การตรวจจับการชน (collision detection) อุปกรณ์ต่อพ่วง (input) ระบบเครือข่าย (network) และอื่น ๆ เป็นต้น
โปรแกรมที่จะขอยกตัวอย่างต่อไปนี้มี 2 โปรแกรม คือ
ที่มา: http://devmaster.net/devdb/engines/realmforge
<<<< คลิ้กที่รูปภาพเพื่อศึกษาต่อที่มา: http://www.udk.com/features.html
สามารถแบ่งปันผลงานและแชร์ความรู้เกี่ยวกับ UDK ได้ที่ http://udk.unbbz.com/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น