ZicmA Planet
http://zicma.rc-part.com/neobbs/

Defend Master Game Framework
http://zicma.rc-part.com/neobbs/viewtopic.php?f=4&t=34
Page 1 of 1

Author:  ZicmA [ Sat Feb 19, 2011 6:57 pm ]
Post subject:  Defend Master Game Framework

เรามาดูเรื่อง ต่อไปกันดีกว่า

เรื่อง Game Framework นะครับ
Framework ชื่อมันก็บอกอยู่แล้วว่าเป็นกรอบของการทำงาน แต่การแปลภาษาอังกฤษบางครั้งก็ไม่ควรแปล
เพราะความหมายของคำคัพท์ก็คือคำศัพท์ที่เป็นตัวของมันเอง ยิ่งพูดก็ยิ่งงง ฮ่าๆ
เอาเป็นว่า Game Framework ที่ผมจะพูดถึง คือการกำหนดว่า ตัวเกมส์ของเราจะประกอบไปด้วย
ระบบหรือเครื่องมือทางด้านการเขียนโปรแกรม ( ที่ไม่ใช่ประเภท Application โดยตรง) ที่ใช้ในการสร้างเกมส์นั้นควรจะมีอะไรบ้าง 

เอาตามจริงแรกๆก็ยังคงเขียนไม่ได้ ถ้าไม่ได้ทำงานในบริษัทที่มีเทคโนโลยี่ให้เลือก หรือกำหนดมาให้
เพราะเวลาเราไปเลือกใช้ library ตัวนู้นตัวนี้ มักจะมีปัญหาตามมาเสมอๆ กว่าจะปรับจูนให้เข้ากับโปรแกรมที่เราเขียนได้ก็ไม่ง่าย
แต่ให้ร่างแบบคร่าวๆเอาไว้ก่อนว่า ควรจะมีระบบใหญ่ๆอะไรบาง ที่ไม่เกี่ยวกับ
การลงลึกไปถึงเรื่องของเนื้อหาของเกมส์ หรือเป็นประเภท Non-Functional Requirement

ตัวอย่างการออกแบบ Game Framework อย่างง่าย
Image

จากรูป มันจะมีตัว Module ที่เรากำหนดขึ้นมาเอง
ผมจึงแยกแต่ละ Module ไปเขียนเป็น library แยกกัน เผื่อเอาไว้ใช้กับ Project อื่นๆได้ง่าย
อย่าง ZPSOUND ไม่มีความเกี่ยวข้องกับ Truevision 3D ดังนั้นจึงสามารถเอาไปใช้กับโปรเจคอื่นๆได้ง่าย
ส่วนตัว ZPGUI มีการนำ Function ภายใน Truevision 3D มาใช้ในเรื่องของการวาดรูป 2D เท่านั้น
ถ้ามีการแก้ไข ก็สามารถเปลี่ยนเอาฟังก์ชั่นการวาดรูป 2D ของ Game Engine อื่นๆ มาเปลี่ยนได้ง่ายๆ
ส่วนตัว ZPGAME มีคามเกี่ยวเนื่องกับ TV3D Engine อย่างมาก ดังนั้นก็จึงไม่สามารถเปลี่ยนไปใช้ Engine อื่นได้ง่ายๆ
การออกแบบที่ดีควรไม่ยึดติดกับตัว Game Engine มากเกินไป เพราะจะมีปัญหาเรื่องของการ Reuse Source Code
แต่ถ้าไม่ใช่มืออาชีพก็ไม่ต้องไปซีเรียสมาก จากทั้งหมดที่ออกแบบมานี้ เราจะใช้มันเป็น Framework หลักในการ
เขียนโปรแกรม :)

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

เรื่องต่อไป
จะว่าถึงเรื่อง System Model  ที่จะมีรายละเอียดในส่วนของเนื้อหาของเกมส์ ( แต่ไม่เกี่ยวกับเนื้อเรื่องนะ )
และอาจจะต่อด้วย Story Board

ขออภัยที่ไม่ได้เน้นเรื่องการเขียนโปรแกรม ^^"  ผมอยากให้เข้าใจ Concept ทั้งหมด เกี่ยวกับการสร้างเกมส์
ส่วนเรื่องการ Programming ก็แล้วแต่ความถนัด

Page 1 of 1 All times are UTC + 7 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/