มีเพื่อนๆและน้องๆนักพัฒนาเริ่มต้นที่เข้ามาอ่านบทความในเว็บไซต์นี้และ ได้ทำการ Add Contact MSN หรือ Instant Message คุยกับผมหลายคนประเด็นแรกๆเลยที่ผมมักจะเจอคือคำถาม คำถามที่ถามผมว่า “จะเริ่มสร้างเกมได้ยังไงครับ?” และทุกครั้งผมก็ต้องพูดตอบติดตลกไปว่า “ก็เขียนโปรแกรมสิครับ” ประเด็นที่สองที่เจอคือ ทุกคนที่ Add เข้ามานั้นแทบไม่มีพื้นฐานของโปรแกรมมิ่ง หรือ Structure การวาด Flow Chart หรือ การทำ Flow Diagram เลยไม่มีแม้แต่พื้นฐานสถิติ เบื้องต้น และแน่นอนต้องไม่มีใครเขียน Physics Engine ได้แน่ๆหากมีคำถาม “จะเริ่มสร้างเกมได้ยังไง?” ขึ้นมา สิ่งแรกที่เขียนบทความนี้คงไม่สามารถบอกวิธีการเริ่มต้นในการเขียนได้ 100% แต่สามารถบอกหลักการที่จะทำให้คุณเข้าใจและพร้อมที่จะเริ่มและ เลือก…ได้ 80% ครับ
คนที่คุยกับผมทาง Instant Message นั้นส่วนใหญ่ก้มักจะบอกกับผมว่าอยากสร้างเกม เหมือน WarCraft DotA, DiaBlo, Resident Evil ซึ่งถ้าถามผมแล้วส่วนตัวผมอยากจะบอกว่า ไกลเกินอื้อมสำหรับระดับ นักพัฒนาคนเดียว แต่ไม่ไกลเกินไปสำหรับนักพัฒนาเป็ยกลุ่ม หรือ ทีมนักพัฒนาครัย ดังนั้นผมจึงเลือกที่จะอธิบาย Engine ที่แคบลงมาแต่กว้างเพียงพอที่จะต่อยอดเพื่อให้ ทุกคนเข้าใจถึงหลักการทำงานของเกม โดยเน้นไปที่พื้นฐานด้าน 2D ก่อน และ แนะนำให้เป็นแนว Platform Scrolling (แอ็คชั่น ฉากเลื่อน) หรือ Puzzle (ใช้สมอง) จะดีกว่าเพราะพื้นฐานหลักๆนั้นมาจากเกมประเภทนี้ทั้งนั้นครับก่อนจะไปเข้าไปในเรื่องของ Shader และ Physic engine ต่างๆใน 3D ในอนาคตที่ถึงเวลานั้นเหล่าผู้ที่สนใจคงศึกษาและหา Engine ที่เหมาะมือมาพัฒนาได้เอง
แต่ทั้งนี้ทั้งนั้นอยู่ที่ ความตั้งใจ และ ประสบการณ์ การเขียนโปรแกรมของคุณครับ
สำหรับผู้ที่ไม่มีพื้นฐานการเขียนโปรแกรมเลย ผมขอแนะแนวทางให้ 3 ทางนะครับ
- ให้ไปศึกษาภาษาโปรแกรมมิ่ง C/C++ เบื้องต้นก่อน (หรืออาจจะ Visual Basic, C#, Flash Action Script ก็ได้)
- หากคุณไม่เปิดใจที่จะยอมรับภาษาโปรแกรม และ คิดว่าขอตายดีกว่าที่ะเขียนผมแนะนำให้ไปหา Tool เครื่องมือการสร้างเกมสำเร็จรูปตามเว็บต่างๆเช่น RPG Maker, Torque Game Builder, Game Factory อะไรก็ได้มากมายแล้วสร้างมันตามสไตล์ของคุณครับ ศึกษาให้ชำนาญแล้วจะเข้าใจว่าทำไมต้องเขียนภาษาโปรแกรมแล้วคุณจะมีแรงผลักดันที่จะเขียน และ เรียนรู้ C/C++ ต่อทันที
- ถ้าคุณคิดว่าไม่เหมาะไม่อยากเรียนรู้ ทั้งภาษาและไม่อยากศึกษา Tool ใดๆ ก็ไปขาย Amway หรือไปทำอย่างอื่นเถอะครับ…
Tetris เป็นเกม Puzle มินิเกมแรกที่จะตอบโจทย์เรื่องการควบคุม Keyboard (การควบคุม), Interval (การหน่วงเวลา), Score(คะแนน), ClearScreen(ล้างหน้าจอ คืนค่าทรพยากร) และ Colision detect (การชนกันของวัตถุ) Tetris เป็นจุดเริ่มต้นของกรเป็นนักพัฒนาเกมได้ดีหากว่าคุณสามารถที่จะเขียนและพัฒนามันออกมาได้ องค์ประกอบทังหมดของเกมนี้จะพัมนาทักษะทุกอย่าง และ ค่าใช้จ่ายในการลงทุนพัฒนาเกมนี้ไม่สูง และ พัฒนาได้ด้วยบุคคลเพียงคนเดียว และ Tetris นั้นด้วย Algorithm(หลักการทำงาน) ของมันก็เป็นเกมที่เล่นได้สนุกและมีคุณภาพในเชิงการค้าได้ทุกสมัย
ดังนั้น หลังจากอ่านบทความนี้แล้วสิ่งแรกที่คุณจะต้องทำคือ
- ตอบโจทย์ความคิดตัวเองว่า คุณพร้อมจะศึกษาด้วยใจหรือยัง
- ซื้อคู่มือ การเขียนโปรแกรม ภาษา C/C++ มาศึกษา
- เมื่อช่ำชองแล้ว ให้ไปค้นคว้า Overview ของการพัฒนาเกม Tetris
Link ที่แนะนำ :
http://cslibrary.stanford.edu/112/Tetris-Architecture.html
บทความนี้คงชี้แนะแนวทางของคนที่ต้งอการเป็นนักพัฒนาเกมได้นะครับ ไว้บทความต่อไปจะเริ่มต้นการใช้ Engine ต่างๆ แล้ว