อยากเขียนเกมส์ เริ่มต้นอย่างไรดี? ฉบับเริ่มต้น
ทุกวันนี้คงจะปฎิเสธไม่ได้ว่ามือถือสมาร์ทโฟนเข้ามามีบทบาทกับชีวิตประจำวันของเราเป็นอย่างมาก เนื่องจากทุกคนแทบจะมี Smartphone ใช้กันทั้งนั้น ทำให้อุตสาหกรรมเกมส์หรือค่ายเกมส์ต่างๆหันมาพัฒนาเกมส์ลงบนมือถือมากมาย รวมถึงนักพัฒนาอิสระ หรือที่เรียกกันว่าพวก Indie Game Developer นั้นพากันสร้างเกมส์เป็นจำนวนมาก ปัจจุบันเกมส์บนมือถือมีมายมาย เป็นแสนเกมส์ รายได้จากเกมส์มือถือก็มหาศาล
เมื่อพูดถึงเกมส์ ก็มีทั้งเกมส์ที่ยิ่งใหญ่อลังการ ทุนสร้างมหาศาล แต่ก็ไม่ได้รายได้ตามที่คาด ขาดทุนย่อยยับ ก็มี หรือแม้แต่เกมส์ที่ไม่ได้ใช้ทุนอะไรเท่าไหร่เลย แต่กลับดังเปรี้ยงปร้างเกินคาด มาดูตัวอย่างเกมส์ต่างๆกันก่อนดีกว่า ผมจะไม่พูดถึงเกมส์บน PC, Play หรือ XBOX นะครับ จะเน้นเฉพาะเกมส์บนมือถือเท่านั้น
- Angry Bird มีรายได้กว่า 100 ล้านดอลล่าต่อปี ภายหลังขายได้ทั้งเกมส์ ทั้งลิขสิทธิ์ตัวละครต่างๆ ปัจจุบันมีแทบทุก Platform
- Zynga บริษัทเกมส์ที่ทำเกมส์บน Platform Facebook โดยเน้นสโลแกน ก็อปปี้คนอื่นนั่นเอง ปัจจุบันก็ลงมาเล่นมือถือเหมือนกัน แต่รู้สึกรายได้จะติดลบ มาหลายปีแล้ว
- Candy Crush มีให้เล่นทั้งมือถือและ Facebook ถ้าจำไม่ผิดรู้สึกว่าจะมีผู้เล่น มากกว่า 600ล้านคนต่อวัน และปัจจุบัน ก็เข้าตลาดหุ้นแล้วด้วย ด้วยมูลค่ากว่า 7000 ล้านดอลลาร์ หรือกว่า สองแสนล้านบาท
- Cookie Run เกมส์จาก LINE นั่นเอง ที่ปัจจุบันฮิตกันทั่วบ้านทั่วเมือง วิ่งกันได้ทุกวัน ผมก็เป็นคนนึงที่กำลังติด ตัวเกมส์ผมไม่ทราบเรื่องรายได้เท่าไหร่ แต่ดูแนวโน้ม และกระแสแล้ว น่าจะทำกำไรได้ดีทีเดียว
- Clash of Clan & HayDay สองเกมจากบริษัท Supercell แว่วๆได้ข่าวหลุดออกมา ถ้าจำไม่ผิดรู้สึกว่าบริษัทนี้ มีกำไรหรือรายได้หว่า ลืม อยู่ที่ประมาณวันละ 9แสนเหรียญ หรือประมาณเกือบ 30 ล้านบาท
- Flappy Bird เกมจากหนุ่ม Indie ชาวเวียดนาม ซึ่งตัวเกมไม่มีอะไรเลย เบสิคมาก แต่กลับเป็นกระแส และสร้างรายได้ให้นักพัฒนามากถึงวันละ 45000 เหรียญ
- Thapster เกมดนตรีฝีมือคนไทย ยอดโหลดกว่า 1 ล้านครั้ง ต้องบอกเลยว่าคนไทย ไม่แพ้ชาติใดในโลก
- CandyMelon เกมคนไทยอีกเกมส์หนึ่ง ที่มีข่าวดังเมื่อประมาณปี 2013 ยอดโหลด 6แสนครั้ง ภายในเวลาแค่ 5 วัน จนเป็นกระแสและเป็นแรงบันดาลใจให้หลายๆคนเริ่มหันมาสนใจสร้างเกมส์กันมากขึ้น
จากตัวอย่างข้างบนที่ผมยกมา เห็นรายได้ เห็นยอดโหลด หรือเห็นตัวเกมส์แล้ว รู้สึกอิจฉาตาร้อน อยากมีแบบนั้นบ้าง อยากลองทำดูบ้าง เป็นมั้ยครับ? หากคุณตอบว่า ไม่ ก็ไม่ต้องอ่านแล้วครับ ปิดเว็บนี้ทิ้งได้เลย แต่หากใครตอบว่าอิจฉาซิ อยากมีรายได้ อยากมีเกมส์แบบนี้บ้าง โอเค คุณได้ไปต่อ
หากคุณคิดอยากจะเขียนเกมส์ อันนี้มองในภาพรวมของการเป็นนักพัฒนานะครับ ไม่ได้มองว่าจะสร้างเกมส์แนวไหน สร้างให้ใครเล่น เป้าหมายหรือกลุ่มผู้เล่นเป็นอย่างไร เป้าหมายของบทความนี้คือ ทำอย่างไร และเริ่มต้นอย่างไร ถึงจะเป็นนักพัฒนาที่สามารถสร้างและเขียนเกมส์ได้
Passion สิ่งที่นักพัฒนาเกมส์ต้องมี
คุณอยากจะทำเกมส์ซักเกมหนึ่ง สิ่งแรกที่คุณมีนั่นก็คือ Passion หรือเรียกมันว่า กิเลส มันนิยามได้รวมๆว่า กิเลสอยากทำเกมส์แบบนี้ อยากมีรายได้ อยากสนุก หรืออีกนัยนึงมันก็คือความชอบล้วนๆ หรือความฝันนั่นเอง
Idea จินตนาการอันล้ำเลิศ
จินตนาการสำคัญกว่าความรู้ ประโยคเด็ดของ อัลเบริ์ต ไอน์สไตน์ เลย หากคุณคิดทำเกมส์ซักเกมส์หนึ่ง จำเป็นต้องมีไอเดีย มีความคิดสร้างสรรค์ แต่ไม่จำเป็นต้องมีความคิดอันดีเลิศหรอก เริ่มต้นก็ศึกษาจากเกมดังๆ อาจจะมีลอกหรือเลียนแบบมาบ้าง แต่สิ่งที่จะมีประโยชน์สุดในการหาไอเดียการทำเกมส์คือ เพื่อนร่วมทีม
Knowledge ความรู้คู่ปัญญา
หากคุณมีจินตนาการแต่ขาดความรู้ คุณก็ไม่สามารถทำเกมส์ออกมาตามเป้าหมายได้อีกเช่นกัน ฉะนั้นมันก็จำเป็นต้องมีทั้งจินตนาการและความรู้ ส่วนตัวผมว่ามันก็สำคัญพอๆกัน ฉะนั้นก็พยายามศึกษาความรู้ในการเขียนเกม เริ่มจากภาษาโปรแกรมมิ่งซักภาษาหนึ่งก่อน C, C++, Java หรือ Javascript ก็ได้ หลักจากนั้นก็ศึกษาพวก Game Loop, Game Concept แล้วถึงไปเรื่อง Framework Library, AI, Networking ต่างๆ
เริ่มแรกตัวผมนั้นเริ่มเขียนเกมส์จากภาษา C, C++ ตอนทำงานที่แรก แล้วทางพี่ในบริษัทให้ฝึกเขียนเกมส์ก่อน โดยเป็นเกมแนว Turn Base โดยใช้เพียงแค่ Console ปริ้นออกมาเป็นข้อความเท่านั้น ประสบการณ์เขียนเกมส์อันนี้เป็นเกมส์แรกที่เขียนเลยก็ว่าได้
Doing ลงมือทำซะ
สิ่งที่คิด ไอเดียอันบรรเจิศ ความรู้ที่อุตส่าร่ำเรียนมา มันจะสูญเปล่าทันที ถ้าหากว่า ไม่ได้ลงมือทำมันซะ ไม่ใช่ว่าเดี่ยวจะเริ่มทำตอนช่วงปิดเทอม เดี๋ยวผมจะเริ่มทำช่วงวันหยุดยาวแล้วกัน เดี๋ยวจะลองศึกษาดูเดือนหน้า หยุดเดี๋ยวซะตอนนี้เถอะครับ แล้วเริ่มลงมือทำมันเลย แต่หลังจากอ่านบทความผมจบก่อนแล้วนะครับ :)
ไม่อยากเขียนโปรแกรม
หากคุณไม่อยากเขียนโปรแกรม อาจเป็นเพราะว่า อยากเขียนเพื่อความสนุก แค่อยากทำเกมส์ของตัวเอง ไม่ได้สนใจรู้ลึกอะไรมากมาย หรือเป็นน้องๆมัธยม ที่อยากจะลองหาอะไรสนุกๆทำตอนปิดเทอม ก็ขอแนะนำพวก Game Engine เลยครับ ตัวเกมส์ Engine ส่วนมากจะมีสิ่งอำนวยความสะดวกให้เรามากมาย ไม่ต้องรู้โปรแกรมมิ่งก็สามารถสร้างเกมส์ของตัวเองได้เหมือนกัน เช่น GameMaker, BlitzBasic หรือแม้แต่ Unity แต่ถ้าหากคุณอยากจะลองรู้ลึกรู้จริง อยากเขียนโปรแกรมเป็น อยากพัฒนาเกมส์ก็ลองหัดเขียนโปรแกรม แล้วก็มองหา Framework หรือ Engine ที่เฉพาะเจาะจง ไปในทางภาษาใดภาษาหนึ่งไปเลยครับ
ภาพรวม Game Framework & Engine
มาเข้าเรื่องของการเป็นนักพัฒนาเกมส์กันเลยดีกว่า หากใครได้ลองเขียนเกมส์ในทุกวันนี้ ต้องบอกเลยว่ามันทำได้ง่ายมาก เนื่องจากมี Library มี Framework ให้ใช้กันมากมาย รวมถึง Video, หนังสือ, เว็บไซต์ข้อมูลต่างๆ ก็มีมากมาย แต่ก็เกิดมีคำถามอีกนั้นแหละ ว่า เขียนเกมส์ภาษาอะไรดีน๊า? เขียนเกมส์บนไอโฟนหรือแอนดรอยส์ดี? Framework อะไรดีสุด? เลือก Framework อะไรดีน่ะ? อยากถามว่าภาษาอะไรเขียนเกมส์ได้บ้าง ก็ตอบว่าได้เกือบทุกภาษาแหละครับ อยู่ที่ว่าเกมอะไร และมีข้อจำกัดอะไร อย่างเช่น ทำเกมส์ Flash, เกม Python, เกม HTML5, เกม Android, เกม iOS เยอะแยะไปหมดเลย
ข้างล่างนี้จะเป็นลิสต์รายชื่อ Framework ที่ผมรู้จักละกัน แต่ก็ไม่ได้ลองทุกอันหรอก โดยเฉพาะฝั่ง iPhone เนื่องจากไม่มีตังซื้อเครื่องนะครับ หากใครใจดีอยากบริจาค ส่วนตัวไม่ขัดข้อง ยินดีนะครับ :D
HTML5 Game Framework
ทำไมผมถึงเลือก HTML5 เนื่องจากมันเขียนด้วย javascript มันสามารถ Cross-Platform ไปลงได้ทั้ง iPhone, Android หรือ Windows Phone นั่นเอง
อื่นๆ สามารถดูเพิ่มได้อีกเพียบครับ
Android Framework
ฝั่ง Android คงมีตัวเลือกให้ไม่มากนัก ที่รู้จักๆ ก็มี 3 รายชื่อครับ โดยส่วนตัวตอนนี้กำลังศึกษา libgdx และกำลังจะทำบทความเกี่ยวกับ libgdx มาแชร์ด้วยครับ
iPhone Framework
ฝั่ง iPhone ต้องบอกเลยว่า ไม่เคยจับซักตัวนะครับ ได้ยินแต่ชื่อ ฉะนั้นแล้ว หากมีอะไรผิดพลาด ก็บอกกันได้นะครับ
ส่วนเกม Framework , Engine อื่นๆ ที่นอกเหนือจากนี้ ท่ีเขียนด้วย ภาษาอื่นๆ ก็มีพวก
แหล่งเรียนรู้เพิ่มเติม
อันนี้จะเป็นการรวบรวมแหล่งเรียนรู้สำหรับนักพัฒนาเกมนะครับ บางอันก็จำเป็นต้องมีพื้นฐานด้านภาษามาบ้าง หรือบางแหล่งก็เริ่มจาก 0 เลยก็มีครับ
เว็บไซต์ & บล็อก
- Tutsplus
- GameDev.net
- HTML5GameDev
- HTML5GameDev Forums
- Gamedevacademy
- HobbyGameDev
- jMonkeyEngine
- Reddit/r/gamedev
- GameMaker
- Unity
Course Online
Level Up!!
หากคุณได้อ่านมาถึงบทความนี้ก็ขอแสดงความยินดีด้วยครับ คุณได้เริ่มต้นเขียนเกมส์ เริ่มต้นอยากเป็นนักพัฒนาเกมส์แล้วละครับ ถึงแม้ว่าคุณจะยังไม่ได้เขียนเกมส์ก็ตาม แต่มันก็เป็นจุดเริ่มต้นที่ดี แม้ว่าจะเป็นเพียงแค่ก้าวเล็กๆของมนุษย์ธรรมดาคนหนึ่ง แต่มันจะเป็นก้าวที่ยิ่งใหญ่สำหรับผู้มีความฝันและความพยายามครับ
ยังไงผมก็ขอฝากบทความนี้ไว้เผื่อเป็นประโยชน์และเป็นแรงบันดาลใจให้กับใครอีกหลายๆคนนะครับ เผื่อวันข้างหน้าจะมีเกมส์ดีๆจากคนไทย ออกมาให้เล่นกันเยอะๆ
สุดท้าย ก็ต้องลองถามตัวเองครับ ว่าเราอยากทำลองทำเกมเล่นๆ หรือว่าอยากทำเกมส์ออกมาแบบจริงๆจังๆ หากต้องการทำเกมส์จริงๆจังๆ คอยติดตามบทความจากเว็บนี้ได้เลยครับ ผมจะนำมาแชร์ นำบทความมานำเสนอ พยายามจะเขียนบทความให้ได้ทุกวัน หรืออย่างน้อย วันเว้นวันครับ
อ้อ หากใครมีข้อมูลนอกเหนือจากที่ผมบอกกล่าวมาแนะนำกันได้นะครับ ทั้งแหล่งเรียนรู้ แหล่งศึกษา หนังสือ ชุมชน หรือว่าจะเป็นคลิปวิดีโอต่างๆ เผื่อจะเป็นประโยชน์แก่คนอื่นได้ครับ ขอบคุณครับ
Update
หลังจากที่ผมเริ่มเขียนบทความ ตอนนั้นคือกำลังเริ่มเรียนรู้ Game Development เช่นกัน ด้านบนเป็นความคิดเห็นส่วนตัว ในขณะที่ผมเพิ่งเริ่มต้นศึกษาเท่านั้น ส่วนนี้ก็เป็นบทความส่วนหนึ่งที่ผมจัดทำขึ้นมา หลังจากได้ลองศึกษาครับ หากไม่รู้จะเริ่มที่อะไรดี ลองอ่านนี้ดูก็ได้
เขียนเกมด้วย LibGDX
- ขั้นตอนการติดตั้ง LibGDX สำหรับเขียนเกม Android ด้วย Android Studio
- รู้จักกับ Module ใน LibGDX
- เขียนเกมด้วย libGDX #1 – สร้างโปรเจ็ค
- เขียนเกมด้วย LibGDX #2 – Hello World
- เขียนเกมด้วย LibGDX #3 – Render และการรับ input
- เขียนเกมด้วย LibGDX #4 – Simple Game ภาคแรก
- เขียนเกมด้วย LibGDX #5 – Simple Game ภาคจบ
- เขียนเกมด้วย LibGDX #6 – Simple Game ภาคพิเศษ
- เขียนเกมด้วย LibGDX #7 - Simple Game - scene2d.ui
- เขียนเกมด้วย LibGDX #8 - Simple Game - Actor
เขียนเกมด้วย PhaserJS
เขียนเกมด้วย AndEngine
เขียนเกมด้วย Box2D
เขียนเกมด้วย Love2D
- Authors
-
Chai Phonbopit
เป็น Web Dev ในบริษัทแห่งหนึ่ง ทำงานมา 10 ปีกว่าๆ ด้วยภาษาและเทคโนโลยี เช่น JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจในเรื่องของ Blockchain และ Crypto กำลังหัดเรียนภาษา Rust