in Storytelling

เริ่มทำเกมอย่างไรในวันที่ Engine มีมากมายจนตาลายไปหมด

แรงบันดาลใจจากบทความ
เริ่มศึกษา JavaScript อย่างไรในวันที่ framework มีมากมายจนเลือกไม่ถูก

จากการอ่านบทความข้างต้น ประกอบกับประสบการณ์ที่ได้สัมผัส แต่ละคนมีที่มาแตกต่างกันไป
บางคนเขียน code มาบ้าง บางคนไม่เคยเขียน code เลย แต่ไอเดียเต็มกระบาล (อาศัยว่าเล่นมาเยอะ เติมมาแยะ)

แต่เกือบทั้งหมด เดินทางมาถนน8เลนใหญ่สายเดียวกันคือ

ใช้อะไรดีทำเกมดี?

พอถามต่อออกไปอีกหน่อยจะกลายเป็นคำถามที่เจาะจงมากขึ้นสองคำถาม
1. ควรเริ่มด้วยวิชา programming, คณิตศาสตร์ ให้คล่องก่อนไหม
ลองขึ้นงานเองจากไม่มีอะไรเลย(from scratch)ก่อน พอคล่องแล้วค่อยมาเลือก engine
2. ควรจะเลือก engine/library ไหนดี



Q: เริ่มต้นที่พื้นฐานก่อนดีกว่าไหม?
A: แน่นอนว่าพื้นฐานสำคัญมาก ผมเคยเจอคนที่ใช้เครื่องมือเป็นอย่างเดียว
แต่ไม่เข้าใจแนวคิดหรือวิธีการที่สำคัญๆของ Game Development เลย
พอสิ่งที่จะทำมันไม่สามารถทำได้อย่างตรงไปตรงมาด้วยเครื่องมือที่มี
ก็จะไม่สามารถพลิกแพลงได้ (ทำได้เท่าที่ starter pack มันมี #อูยยย)
หรือพอเจอปัญหาที่ต้องอาศัยความเข้าใจพื้นฐานในการวิเคราะห์ก็ถึงกับไปต่อไม่เป็น
แต่เริ่มอ่านพื้นฐานทั้งหมดก่อนก็ไม่ practical ในโลกการทำงานเท่าไหร่
ข้อเสียของมันคือ ไม่รู้ว่าต้องใช้เวลานานแค่ไหน แม้โลกนี้มี engine จะมีอยู่มากมายหลายฉลาก
แต่การศึกษาพื้นฐานโดยไม่ได้ผ่านการทำจริงนั้น
เราไม่มีทางรู้เลยว่าตอนนี้เราเข้าใจเรื่องนี้ดีแล้วหรือยัง แล้วต้องศึกษาอีกมากแค่ไหน
โจทย์จริงกับสิ่งที่อ่านไม่เหมือนกัน
หลายครั้งที่ถูกถามว่า ผมต้องไปลงเรียน computer graphic (ได้ทำเดโม เอาshapeมาหมุนๆ
ควบคุมด้วยโค้ด C++ กับ GLUT ตามสมัยนิยมเมื่อนานมาแล้ว)หรือไม่?
โดยส่วนตัวผมนั้น ลองทำดูก็ไม่เสียหลายนะ(แต่ใช้ตัวที่ตอบรับกับกระแสโลกหน่อยก็ดี เช่น OpenGL 3.x ขึ้นไปหรือ vulkan)
แต่ด้วยความเยอะในขั้นตอน อาจจะขาดความรู้สึกของการทำของสำเร็จ (ตามที่มโนในหัว)
การไม่ได้ลงมือทำในโปรเจคจริงๆมันทำให้ไม่ได้ลิ้มรสความสุขตอนที่เราทำได้
ซึ่งความรู้สึกนี้คือแรงผลักดันสำคัญให้ไปต่อ
ดังนั้นเราจึงเห็นคนมากมายที่อ่านอยู่สักพักก็ล้มเลิกไป



Q: หยิบ engine มาลุยเลยเหรอ ทั้งๆที่ไม่รู้พื้นฐาน เลยเนี่ยนะ?
A: ก็ได้นะ ลงมือทำเลย แต่ถ้ามั่วไปเองอย่างเดียวจะเข้าป่าได้ (และก็จะวิ่งชนขีดจำกัดอย่างจังงงง)
ผมแนะนำว่าระหว่างนั้นให้ศึกษาเพิ่มเติมไปด้วยดังนี้

  • Game Loop (ถ้าไหวถึง Game Architecture เลยก็จะจ๊าบมาก)
  • Game Asset Management/Pipeline
  • ทำอย่างไรให้ ram ที่ใช้ไม่รั่วไหล
  • vector, matrices
  • (และอื่นๆ)
  • จากประสบการณ์ของผม ความรู้พื้นฐานเมื่อบวกกับโจทย์จริงจากตัวงาน
    จะช่วยเชื่อมโยงเราไปยังความรู้ส่วนอื่นๆของตัว script ทำให้เราค่อยๆเข้าใจมันมากขึ้นเรื่อยๆ
    ควบคู่กับการที่เราได้ทำของเสร็จไปเป็นอย่างๆด้วย
    ได้ทั้งความรู้ ได้ทั้งตัวงาน ได้ทั้งความสนุกที่ได้ทำ
    สิ่งเหล่านี้จะผลักดันเราไปข้างหน้าเรื่อยๆ รู้ตัวอีกทีเราก็เข้าใจโลกขึ้นกว่าเดิมอีกเยอะเลย



    Q: แล้วใช้ engine ไหนดี?
    A: อันไหนก็ได้ครับ
    เอาที่ชอบที่ชอบ ถ้ายังไม่ได้มีความชอบอะไรเป็นพิเศษก็ลองถามเพื่อนดู
    ถ้าไม่มีใครให้ถาม ก็มั่วเอาก็ได้ครับ แต่ละตัวมันมีข้อดีของมัน
    คนที่มีประสบการณ์เยอะหน่อยจะเริ่มมองเห็นว่าเขาควรจะเลือกอันไหน แต่คนที่พึ่งเริ่มจะเดาทางตัวเองยาก
    เพราะฉะนั้นลองหยิบมาสักอันแล้วทำดูครับ ใช้ไปสักพัก
    พอความเข้าใจเริ่มมากขึ้น ก็ค่อยไปลองดูว่า engine อื่นๆมันต่างจากของเรายังไง
    อันไหนท่าทางจะถูกจริตเรามากกว่า ก็ค่อยเปลี่ยนก็ได้
    ทั้งหมดนี้เป็นเพียงความเห็นส่วนตัวของผมเท่านั้น แต่ละคนมีวิธีการเรียนรู้ที่แตกต่างกันไป
    ถ้าไปถามคนอีกสิบคน ก็จะได้คำแนะนำที่แตกต่างกันสิบอย่าง ลองไปถามความเห็นจากหลายๆที่แล้วเลือกวิธีที่ชอบสักอันครับ



    ขอให้สนุกกับการเรียนรู้ครับผม



    หมายเหตุ: เป้าหมายในการที่ชีวิตของเราได้เข้ามายุ่งเกี่ยวกับการทำเกมนั้น
    บ้างก็แค่อยากให้ชีวิตมีติด achivement ว่า
    “กูมีเกมของตัวเองตั้ง 1 เกม publish อยู่ใน abcxyz โว้ย”
    บ้างก็อยากทำกันแบบลงหลักปักฐาน ได้งานได้อาชีพ
    บลา บลา บลา


    วิธีการที่นำมาสู่ เกมแรก ขึ้นอยู่กับความชอบความถนัดครับ แต่……
    ถ้าชีวิตคุณกับเกมไม่ได้หยุดที่คำว่า the end หลัง credit roll
    ต่อจากนี้ จะมีหลายฝ่ายที่มอบความคาดหวังว่าคุณทำได้(ตามที่เขาเคยรับรู้ผ่านหูตา)
    (แต่ลึกๆเองนั้นคุณทำได้ตามที่ engine พึงมี)
    ก็ฝากไว้พิจารณาครับว่า จะเดินทางอย่างไรดี

    Write a Comment

    Comment

    • Related Content by Tag