ต่อไปนี้เป็นบรรยายออนไลน์ฟรีในกระบวนวิชา : คู่มือเอาชีวิตรอดในการบริหารโครงการเกมไทย #5
เกริ่นนำ
หลังจากดองเค็มมานานในที่สุด Entry มีสาระที่หลายๆท่านรอคอยก็กลับคืนมาแล้วนะขอรับ !! ขอออกตัวก่อนเลยว่าตลอดหลายเดือนที่ผ่านมานี่ ผมค่อนข้างวุ่นๆ กับการพยายามประคับประคองบริษัทให้สามารถผลิตงานออกมาให้ได้ตามเป้าซึ่งก็ต้องงัดเอาวิชาที่สะสมมาชนิดหมดก้นหีบ... และก็เอาตัวรอดมาได้สำเร็จ(ถ้าไม่สำเร็จคงไม่มีหน้ามาสอนต่อ... แต่อาจารย์บางคนทำเกมเจ๊งก็ยังหน้าด้านมาสอนทำเกมเนาะ... พิลึกจริงๆ)
เราจะมาต่อกันจากคราวที่แล้ว(ถ้ายังจำกันได้ !?)บุคลากรประเภทต่างๆที่ผมแบ่งอย่างหยาบๆตามที่เห็นในองค์กรในประเทศไทยทั้ง 5 ประเภทนะครับ
2.1 Programmer
แปลตรงๆว่า "นักเขียนโปรแกรม" , คือบุคลากรผู้มีความรู้ความสามารถด้านการเขียนโปรแกรมไม่ว่าจะเป็นทั้งบนคอมพิวเตอร์ก็ดี หรือบนอุปกรณ์อิเล็คทรอนิกส์ที่มีชิ้นส่วนของคอมพิวเตอร์เป็นส่วนประกอบก็ดี หรืออื่นๆใดก็ตามที่สามารถโปรแกรมได้ก็ดี
บริษัทเกมไทยนั้นส่วนใหญ่สร้างขึ้นมาโดยมี "นักเขียนโปรแกรม" เป็นกระดูกสันหลัง , เป็นบุคลากรฝ่ายที่แทบจะขาดไม่ได้เลยในบริษัทเกมไม่ว่าจะที่ไหนๆ เพราะเกมนั้นเป็นโปรแกรม และต้องการ "นักเขียนโปรแกรม" ในการสร้างขึ้นมา ซึ่งต่างที่ ต่างโครงการก็จะมีการแบ่งแยกหน้าที่ของ นักเขียนโปรแกรมต่างๆออกไป มีตั้งแต่ รับผิดชอบทั้งโปรแกรม ไปจนถึงเขียนเพียงชิ้นส่วนเล็กๆที่เรียกใช้ในโปรแกรมใหญ่ๆ ซึ่งในการบรรยายนี้ผมจะขอจำแนก นักเขียนโปรแกรม ออกเป็นตามชนิดของภาษาที่ใช้ และรูปแบบงานที่ได้ทำนะครับ
2.1.1 C/C++ Programmer
ภาษาเก่าแก่ภาษาหนึ่งที่ยังมีการใช้มากที่สุดอันดับต้นๆในบริษัทที่พัฒนาเกมบนคอมพิวเตอร์ในปัจจุบัน ซึ่งโดยมากแล้วนักเขียนโปรแกรมภาษานี้จำเป็นอย่างยิ่งยวดสำหรับการพัฒนาโปรแกรมเกมบนคอมพิวเตอร์ส่วนบุคคล และกำลังเป็นที่ขาดแคลนอย่างมาก เนื่องจากเด็กรุ่นใหม่ๆแทบจะไม่สนใจหรือได้จับภาษานี้อย่างจริงจังกันแล้ว และคนแก่ๆเก่าๆก็ทยอยๆเกษียณออกไปทำงานด้านอื่นที่ดีกว่า
ผู้บรรยายขอฝากโฆษณาว่ากำลังรับสมัครพนักงานตำแหน่งนี้ 1 ตำแหน่ง ท่านใดสนใจทิ้ง ems ไว้ได้เลยครับ
C/C++ จากประสบการณ์ผมขอยอมรับเลยว่าเป็นภาษาหนึ่งที่ถูกใจผมมากที่สุดในการใช้เขียนโปรแกรม และก็เป็นภาษาที่ผมยอมรับว่าใช้ค่อนข้างยาก และใช้เวลาเรียนรู้ รวมไปถึงการฝึกฝนที่นานมากภาษาหนึ่ง
สำหรับท่านที่กำลังสนใจจะจัดตั้งทีม หรือเปิดบริษัทและกำลังมองหาบุคลากรประเภทนี้อยู่ควรพิจารณารับบุคลากรที่มีคุณสมบัติดังนี้
- มีประสบการณ์การใช้ภาษา C/C++ เขียนโปรแกรมมาไม่น้อยกว่า 2 ปี(จะให้ดี 5 ปี+ )
- อย่างน้อยต้องเคยทำเกมด้วยภาษานี้ จนสามารถนำมาแสดงให้ดูได้อย่างน้อย 1 เกม(ผ่อนปรนเป็นโปรแกรมอื่นๆก็ได้ในกรณีที่ไม่มี)
ไม่แนะนำอย่างยิ่งให้รับเด็กจบใหม่ที่ไร้ประสบการณ์... ประเดี๋ยวท่านจะได้ชีช้ำระกำทรวงกับเด็กเกรด 3 กว่าๆที่ไม่เคยรู้เลยว่า for loop ทำงานยังไง...(ประสบการณ์ตรง)
2.1.2 JAVA Programmer
อีกภาษายอดฮิตหนึ่งภาษาที่ถ้าเป็นเมื่อสัก 3-4 ปีที่แล้วจะเป็นที่ต้องการตัวของบริษัทเกมไทยมาก โดยมากแล้วงาน JAVA นั้นจะเป็นงานแบบ web-based หรืองานเขียนโปรแกรมบน platform อื่นๆที่ไม่ใช่ PC อาทิเช่น โทรศัพท์มือถือ เป็นต้น
เป็นภาษาที่ไม่ยากนัก แต่ก็ไม่ง่ายหากจะเขียนให้ดีและมีประสิทธิภาพ ข้อดีของบุคลากรที่ใช้ภาษานี้ได้คือ สามารถทำงานได้ค่อนข้างหลากหลายและไม่จำเป็นต้องยึดติดกับ platform อย่าง PC อย่างเดียว อีกทั้งยังสามารถเขียน web application หรือเกมที่เล่นบนเวบได้อีกด้วย วิเศษไปเลยใช่มั้ยล่ะ !?(แต่มันก็ไม่ง่ายขนาดนั้นหรอกสำหรับการ port...)
ถ้าท่านคิดจะทำเกมบนโทรศัพท์มือถือที่ตอนนี้แทบจะเอามาเลหลังลดแลกแจกแถมกันแล้วล่ะก็ บุคลากรด้านนี้ จำเป็นอย่างยิ่งที่จะต้องหามาให้ได้ และจากประสบการณ์ของผมดูเหมือนว่ามหาวิทยาลัยปัจจุบันนี้จะผลิตบุคลากรด้านนี้มาค่อนข้างดีทำให้ไม่ค่อยมีปัญหากับการรับเด็กจบใหม่มากนัก
2.1.3 C#/XNA Programmer
น้องใหม่ไฟแรงที่ลูกพี่ Microsoft ดันเต็มที่ สุดแสนสะดวกสบาย... เด็กหัดใหม่ก็สามารถทำเกม Casual หน้าตาดูดีๆได้โดยไม่ต้องเสียเวลาไปเก็บประสบการณ์เป็นแรมปี นอกจากนี้ยังพ่วงการ port ลงเครื่องเกม console อย่าง XBOX 360 ได้แสนสะดวกสบายเพิ่มช่องทางขายให้อีก ข้อเสนอน่าสนใจ... ที่แลกมาด้วยราคาแพง
การผูกติดกับ platform คือสิ่งที่ไม่สามารถหลีกเลี่ยงได้... บุคลากรสายนี้พึงยอมรับชะตากรรมเลยว่า ท่านคือผู้ปฏิญาณตนว่าจะเชื่อฟังและจงรักภักดีต่อพี่ใหญ่ Microsoft ไปตราบจนมันจะเจ๊งหรือตายจากกันไปข้างเลยทีเดียว... ดังนั้นภาษานี้จึงไม่เหมาะกับผู้ที่รักอิสระ... ผู้นิยม Linux... ผู้รัก Opensource... และผู้ที่คิดว่า Microsoft จะเจ๊งในเร็ววัน
ปัจจุบัน... เท่าที่ผมทราบตอนนี้บริษัท Novaleaf จำกัดกำลังเปิดรับสมัครบุคลากรทำเกมด้วยภาษานี้อยู่ ผู้ใดสนใจโปรดใช้ Google สืบเสาะเอาเองเพราะบอกชื่อให้แล้ว
ถ้าท่านคิดจะทำเกมบนเครื่อง console XBOX 360 ด้วยหวังการขายผ่านช่องทาง XBOX Live ที่มียอดขั้นต่ำหลักพันต่อ Title นั้นท่านก็ควรจะหาบุคลากรประเภทนี้เอาไว้ใช้สอย ซึ่งผมต้องกราบขออภัยด้วยที่ไม่สามารถแนะนำได้ว่าต้องคัดเลือกยังไงเพราะขาดประสบการณ์จริงๆ แต่มีคนกระซิบว่าสามารถดัดแปลงเอาจากผู้เคยเขียน JAVA มาแล้วได้
2.1.4 RPGMaker/GameMaker/Dark Basic Developer
ไม่ขอพูดมากนะครับ... เอาเป็นว่าในระดับอุตสาหกรรมแล้วไม่ค่อยเป็นที่ยอมรับมาใช้ หรือควานหามาใช้เสียเท่าไหร่ พูดมากไปจะไปเหยียบเท้าอาจารย์หลายท่านเข้า... ขัดลาภมิดีๆ
ลักษณะงานเขียนโปรแกรมเกม
สำหรับงานเขียนโปรแกรมเกมนั้นหากจะแบ่งแยกย่อยก็คงจะพอแบ่งแยกได้เป็นประเภทคร่าวๆดังต่อไปนี้นะครับ
- Engine
การเขียนโปรแกรมในส่วนของ Engine โดยมากจะเป็นการเขียนโปรแกรมในระดับล่าง ซึ่งยากและต้องใช้บุคลากรที่มีประสบการณ์สูง ราคาแพง และเสี่ยงต่อการลงทุนพัฒนาเองมาก ปัจจุบันบริษัทเกมส่วนใหญ่นิยมใช้การซื้อหา Engine เอามากกว่าจะลงทุนเขียนเอง
- Game Logic / Game Client
การเขียนโปรแกรมส่วนหลักของเกม ส่วนตรรกะที่แสดงผลออกมาทางหน้าจอ ส่วนควบคุมการเคลื่อนไหว บลาๆสุดแท้แล้วแต่จะสาธยายกัน หัวใจหลักที่ทำให้เกมเป็นเกมและเป็นส่วนที่ขาดไม่ได้
- Server
การเขียนโปรแกรมในส่วน Server โดยมากจะใช้กับเกม Online หรือ เกมที่สามารถเล่นผ่านเครือข่ายได้ มีตั้งแต่เขียนกันอย่างง่ายๆแค่ chat room เพื่อใช้จับคู่ระหว่างเครื่องคนเล่น 2-8 เครื่อง ไปจนถึงเป็นตัวประมวลผลการเล่นของผู้เล่นนับพันๆแบบ MMO(Massive Multiplayer Online) งานเขียนโปรแกรมในส่วนนี้ควรคำนึงถึงการออกแบบรูปแบบการจัดส่งข้อมูลที่ดี เล็ก กระชับ และไม่กำกวม ถือเป็นจุดคอขวดอีกหนึ่งจุดที่หลายบริษัทตกม้าตายกันเป็นประจำ...
- Effect
การเขียนโปรแกรมจัดการเกี่ยวกับการแสดงผล Effect ในเกม มีตั้งแต่การย่อขยายภาพ / การหมุนภาพ / Particle ต่างๆมากมาย แต่โดยมากหลายๆที่มักจะผลักภาระส่วนนี้ให้ Artist ทำภาพสำเร็จมาเลย
- Script
การเขียนโปรแกรมจัดการส่วนของ Script ที่ใช้สำหรับการจัดการควบคุมเนื้อหาในเกม อาทิเช่น คุณสมบัติของ Item ในเกม Online หรือ การจัดการนำภาพมาเรียงเป็นภาพเคลื่อนไหว ถ้าเป็นทีมงานที่มีประสบการณ์ Script เป็นสิ่งที่ควรจะทำเพื่อดันงานส่วนที่ไม่ใช่ logic ออกจากโปรแกรมไปให้หมด
การเขียนโปรแกรมในส่วนนี้นั้นโดยมากไม่ยาก แต่ใช้เวลานานและเห็น output ช้า แต่จะช่วยให้งานในช่วงหลังๆมีประสิทธิภาพมากขึ้น
- Tool
การเขียนโปรแกรมสร้าง Tool หรือเครื่องมือช่วยเหลือต่างๆที่จำเป็นสำหรับการทำเกมอาทิเช่น โปรแกรมอ่าน Script จัดการภาพเคลื่อนไหว / โปรแกรมสร้างฉาก / โปรแกรมเข้ารหัสข้อมูล / โปรแกรมสร้างแผ่นที่ เป็นการเขียนโปรแกรมเล็กๆขึ้นมาเพื่อช่วยให้งานเร็วขึ้น หรือเพื่อใช้สร้างข้อมูลสำหรับใช้ในเกมอีกทีหนึ่ง
- UI / User Interface
การเขียนโปรแกรมจัดการส่วนควบคุมผู้ใช้ เป็นส่วนที่สำคัญ ไม่ยากแต่ต้องใช้เวลาค่อนข้างมาก โดยมากแล้วหลายบริษัทในต่างประเทศจะนิยมจ้างบริษัทหรือทีมข้างนอกทำในส่วนนี้ให้ ส่วนในบ้านเราก็ทำเองในครัวเรือนนี่แหละครับ หรือไม่ก็อาศัยเด็กฝึกงานหรือพนักงานใหม่ทำกัน เป็นงานที่เรียกได้ว่าโยนให้นักเขียนโปรแกรมคนไหนทำ คนไหนก็ทำได้...(ใครทำไม่ได้ ควรพิจารณาตัวเองจริงๆนะครับ... แต่ทำไม่ทันมันก็อีกเรื่อง)
- อื่นๆ
ส่วนปลีกย่อยอื่นๆที่ผมตกหล่นไป... อันนี้ก็แล้วแต่ทีมงานของท่านล่ะครับว่าจะเขียนอะไรพิเศษหรือเปล่า
ดูเหมือนว่าแค่พูดถึงฝ่ายเดียวก็ยาวขนาดนี้แล้ว ผมคิดว่าที่เหลือ(ถ้าทำได้)คงจะต่อในคราวหน้าให้จบนะครับ จะได้ขึ้นเรื่องเกร็ด และกรณีศึกษาที่ผมเจอมาสักที
เกริ่นนำ
หลังจากดองเค็มมานานในที่สุด Entry มีสาระที่หลายๆท่านรอคอยก็กลับคืนมาแล้วนะขอรับ !! ขอออกตัวก่อนเลยว่าตลอดหลายเดือนที่ผ่านมานี่ ผมค่อนข้างวุ่นๆ กับการพยายามประคับประคองบริษัทให้สามารถผลิตงานออกมาให้ได้ตามเป้าซึ่งก็ต้องงัดเอาวิชาที่สะสมมาชนิดหมดก้นหีบ... และก็เอาตัวรอดมาได้สำเร็จ(ถ้าไม่สำเร็จคงไม่มีหน้ามาสอนต่อ... แต่อาจารย์บางคนทำเกมเจ๊งก็ยังหน้าด้านมาสอนทำเกมเนาะ... พิลึกจริงๆ)
เราจะมาต่อกันจากคราวที่แล้ว(ถ้ายังจำกันได้ !?)บุคลากรประเภทต่างๆที่ผมแบ่งอย่างหยาบๆตามที่เห็นในองค์กรในประเทศไทยทั้ง 5 ประเภทนะครับ
2.1 Programmer
แปลตรงๆว่า "นักเขียนโปรแกรม" , คือบุคลากรผู้มีความรู้ความสามารถด้านการเขียนโปรแกรมไม่ว่าจะเป็นทั้งบนคอมพิวเตอร์ก็ดี หรือบนอุปกรณ์อิเล็คทรอนิกส์ที่มีชิ้นส่วนของคอมพิวเตอร์เป็นส่วนประกอบก็ดี หรืออื่นๆใดก็ตามที่สามารถโปรแกรมได้ก็ดี
บริษัทเกมไทยนั้นส่วนใหญ่สร้างขึ้นมาโดยมี "นักเขียนโปรแกรม" เป็นกระดูกสันหลัง , เป็นบุคลากรฝ่ายที่แทบจะขาดไม่ได้เลยในบริษัทเกมไม่ว่าจะที่ไหนๆ เพราะเกมนั้นเป็นโปรแกรม และต้องการ "นักเขียนโปรแกรม" ในการสร้างขึ้นมา ซึ่งต่างที่ ต่างโครงการก็จะมีการแบ่งแยกหน้าที่ของ นักเขียนโปรแกรมต่างๆออกไป มีตั้งแต่ รับผิดชอบทั้งโปรแกรม ไปจนถึงเขียนเพียงชิ้นส่วนเล็กๆที่เรียกใช้ในโปรแกรมใหญ่ๆ ซึ่งในการบรรยายนี้ผมจะขอจำแนก นักเขียนโปรแกรม ออกเป็นตามชนิดของภาษาที่ใช้ และรูปแบบงานที่ได้ทำนะครับ
2.1.1 C/C++ Programmer
ภาษาเก่าแก่ภาษาหนึ่งที่ยังมีการใช้มากที่สุดอันดับต้นๆในบริษัทที่พัฒนาเกมบนคอมพิวเตอร์ในปัจจุบัน ซึ่งโดยมากแล้วนักเขียนโปรแกรมภาษานี้จำเป็นอย่างยิ่งยวดสำหรับการพัฒนาโปรแกรมเกมบนคอมพิวเตอร์ส่วนบุคคล และกำลังเป็นที่ขาดแคลนอย่างมาก เนื่องจากเด็กรุ่นใหม่ๆแทบจะไม่สนใจหรือได้จับภาษานี้อย่างจริงจังกันแล้ว และคนแก่ๆเก่าๆก็ทยอยๆเกษียณออกไปทำงานด้านอื่นที่ดีกว่า
ผู้บรรยายขอฝากโฆษณาว่ากำลังรับสมัครพนักงานตำแหน่งนี้ 1 ตำแหน่ง ท่านใดสนใจทิ้ง ems ไว้ได้เลยครับ
C/C++ จากประสบการณ์ผมขอยอมรับเลยว่าเป็นภาษาหนึ่งที่ถูกใจผมมากที่สุดในการใช้เขียนโปรแกรม และก็เป็นภาษาที่ผมยอมรับว่าใช้ค่อนข้างยาก และใช้เวลาเรียนรู้ รวมไปถึงการฝึกฝนที่นานมากภาษาหนึ่ง
สำหรับท่านที่กำลังสนใจจะจัดตั้งทีม หรือเปิดบริษัทและกำลังมองหาบุคลากรประเภทนี้อยู่ควรพิจารณารับบุคลากรที่มีคุณสมบัติดังนี้
- มีประสบการณ์การใช้ภาษา C/C++ เขียนโปรแกรมมาไม่น้อยกว่า 2 ปี(จะให้ดี 5 ปี+ )
- อย่างน้อยต้องเคยทำเกมด้วยภาษานี้ จนสามารถนำมาแสดงให้ดูได้อย่างน้อย 1 เกม(ผ่อนปรนเป็นโปรแกรมอื่นๆก็ได้ในกรณีที่ไม่มี)
ไม่แนะนำอย่างยิ่งให้รับเด็กจบใหม่ที่ไร้ประสบการณ์... ประเดี๋ยวท่านจะได้ชีช้ำระกำทรวงกับเด็กเกรด 3 กว่าๆที่ไม่เคยรู้เลยว่า for loop ทำงานยังไง...(ประสบการณ์ตรง)
2.1.2 JAVA Programmer
อีกภาษายอดฮิตหนึ่งภาษาที่ถ้าเป็นเมื่อสัก 3-4 ปีที่แล้วจะเป็นที่ต้องการตัวของบริษัทเกมไทยมาก โดยมากแล้วงาน JAVA นั้นจะเป็นงานแบบ web-based หรืองานเขียนโปรแกรมบน platform อื่นๆที่ไม่ใช่ PC อาทิเช่น โทรศัพท์มือถือ เป็นต้น
เป็นภาษาที่ไม่ยากนัก แต่ก็ไม่ง่ายหากจะเขียนให้ดีและมีประสิทธิภาพ ข้อดีของบุคลากรที่ใช้ภาษานี้ได้คือ สามารถทำงานได้ค่อนข้างหลากหลายและไม่จำเป็นต้องยึดติดกับ platform อย่าง PC อย่างเดียว อีกทั้งยังสามารถเขียน web application หรือเกมที่เล่นบนเวบได้อีกด้วย วิเศษไปเลยใช่มั้ยล่ะ !?(แต่มันก็ไม่ง่ายขนาดนั้นหรอกสำหรับการ port...)
ถ้าท่านคิดจะทำเกมบนโทรศัพท์มือถือที่ตอนนี้แทบจะเอามาเลหลังลดแลกแจกแถมกันแล้วล่ะก็ บุคลากรด้านนี้ จำเป็นอย่างยิ่งที่จะต้องหามาให้ได้ และจากประสบการณ์ของผมดูเหมือนว่ามหาวิทยาลัยปัจจุบันนี้จะผลิตบุคลากรด้านนี้มาค่อนข้างดีทำให้ไม่ค่อยมีปัญหากับการรับเด็กจบใหม่มากนัก
2.1.3 C#/XNA Programmer
น้องใหม่ไฟแรงที่ลูกพี่ Microsoft ดันเต็มที่ สุดแสนสะดวกสบาย... เด็กหัดใหม่ก็สามารถทำเกม Casual หน้าตาดูดีๆได้โดยไม่ต้องเสียเวลาไปเก็บประสบการณ์เป็นแรมปี นอกจากนี้ยังพ่วงการ port ลงเครื่องเกม console อย่าง XBOX 360 ได้แสนสะดวกสบายเพิ่มช่องทางขายให้อีก ข้อเสนอน่าสนใจ... ที่แลกมาด้วยราคาแพง
การผูกติดกับ platform คือสิ่งที่ไม่สามารถหลีกเลี่ยงได้... บุคลากรสายนี้พึงยอมรับชะตากรรมเลยว่า ท่านคือผู้ปฏิญาณตนว่าจะเชื่อฟังและจงรักภักดีต่อพี่ใหญ่ Microsoft ไปตราบจนมันจะเจ๊งหรือตายจากกันไปข้างเลยทีเดียว... ดังนั้นภาษานี้จึงไม่เหมาะกับผู้ที่รักอิสระ... ผู้นิยม Linux... ผู้รัก Opensource... และผู้ที่คิดว่า Microsoft จะเจ๊งในเร็ววัน
ปัจจุบัน... เท่าที่ผมทราบตอนนี้บริษัท Novaleaf จำกัดกำลังเปิดรับสมัครบุคลากรทำเกมด้วยภาษานี้อยู่ ผู้ใดสนใจโปรดใช้ Google สืบเสาะเอาเองเพราะบอกชื่อให้แล้ว
ถ้าท่านคิดจะทำเกมบนเครื่อง console XBOX 360 ด้วยหวังการขายผ่านช่องทาง XBOX Live ที่มียอดขั้นต่ำหลักพันต่อ Title นั้นท่านก็ควรจะหาบุคลากรประเภทนี้เอาไว้ใช้สอย ซึ่งผมต้องกราบขออภัยด้วยที่ไม่สามารถแนะนำได้ว่าต้องคัดเลือกยังไงเพราะขาดประสบการณ์จริงๆ แต่มีคนกระซิบว่าสามารถดัดแปลงเอาจากผู้เคยเขียน JAVA มาแล้วได้
2.1.4 RPGMaker/GameMaker/Dark Basic Developer
ไม่ขอพูดมากนะครับ... เอาเป็นว่าในระดับอุตสาหกรรมแล้วไม่ค่อยเป็นที่ยอมรับมาใช้ หรือควานหามาใช้เสียเท่าไหร่ พูดมากไปจะไปเหยียบเท้าอาจารย์หลายท่านเข้า... ขัดลาภมิดีๆ
ลักษณะงานเขียนโปรแกรมเกม
สำหรับงานเขียนโปรแกรมเกมนั้นหากจะแบ่งแยกย่อยก็คงจะพอแบ่งแยกได้เป็นประเภทคร่าวๆดังต่อไปนี้นะครับ
- Engine
การเขียนโปรแกรมในส่วนของ Engine โดยมากจะเป็นการเขียนโปรแกรมในระดับล่าง ซึ่งยากและต้องใช้บุคลากรที่มีประสบการณ์สูง ราคาแพง และเสี่ยงต่อการลงทุนพัฒนาเองมาก ปัจจุบันบริษัทเกมส่วนใหญ่นิยมใช้การซื้อหา Engine เอามากกว่าจะลงทุนเขียนเอง
- Game Logic / Game Client
การเขียนโปรแกรมส่วนหลักของเกม ส่วนตรรกะที่แสดงผลออกมาทางหน้าจอ ส่วนควบคุมการเคลื่อนไหว บลาๆสุดแท้แล้วแต่จะสาธยายกัน หัวใจหลักที่ทำให้เกมเป็นเกมและเป็นส่วนที่ขาดไม่ได้
- Server
การเขียนโปรแกรมในส่วน Server โดยมากจะใช้กับเกม Online หรือ เกมที่สามารถเล่นผ่านเครือข่ายได้ มีตั้งแต่เขียนกันอย่างง่ายๆแค่ chat room เพื่อใช้จับคู่ระหว่างเครื่องคนเล่น 2-8 เครื่อง ไปจนถึงเป็นตัวประมวลผลการเล่นของผู้เล่นนับพันๆแบบ MMO(Massive Multiplayer Online) งานเขียนโปรแกรมในส่วนนี้ควรคำนึงถึงการออกแบบรูปแบบการจัดส่งข้อมูลที่ดี เล็ก กระชับ และไม่กำกวม ถือเป็นจุดคอขวดอีกหนึ่งจุดที่หลายบริษัทตกม้าตายกันเป็นประจำ...
- Effect
การเขียนโปรแกรมจัดการเกี่ยวกับการแสดงผล Effect ในเกม มีตั้งแต่การย่อขยายภาพ / การหมุนภาพ / Particle ต่างๆมากมาย แต่โดยมากหลายๆที่มักจะผลักภาระส่วนนี้ให้ Artist ทำภาพสำเร็จมาเลย
- Script
การเขียนโปรแกรมจัดการส่วนของ Script ที่ใช้สำหรับการจัดการควบคุมเนื้อหาในเกม อาทิเช่น คุณสมบัติของ Item ในเกม Online หรือ การจัดการนำภาพมาเรียงเป็นภาพเคลื่อนไหว ถ้าเป็นทีมงานที่มีประสบการณ์ Script เป็นสิ่งที่ควรจะทำเพื่อดันงานส่วนที่ไม่ใช่ logic ออกจากโปรแกรมไปให้หมด
การเขียนโปรแกรมในส่วนนี้นั้นโดยมากไม่ยาก แต่ใช้เวลานานและเห็น output ช้า แต่จะช่วยให้งานในช่วงหลังๆมีประสิทธิภาพมากขึ้น
- Tool
การเขียนโปรแกรมสร้าง Tool หรือเครื่องมือช่วยเหลือต่างๆที่จำเป็นสำหรับการทำเกมอาทิเช่น โปรแกรมอ่าน Script จัดการภาพเคลื่อนไหว / โปรแกรมสร้างฉาก / โปรแกรมเข้ารหัสข้อมูล / โปรแกรมสร้างแผ่นที่ เป็นการเขียนโปรแกรมเล็กๆขึ้นมาเพื่อช่วยให้งานเร็วขึ้น หรือเพื่อใช้สร้างข้อมูลสำหรับใช้ในเกมอีกทีหนึ่ง
- UI / User Interface
การเขียนโปรแกรมจัดการส่วนควบคุมผู้ใช้ เป็นส่วนที่สำคัญ ไม่ยากแต่ต้องใช้เวลาค่อนข้างมาก โดยมากแล้วหลายบริษัทในต่างประเทศจะนิยมจ้างบริษัทหรือทีมข้างนอกทำในส่วนนี้ให้ ส่วนในบ้านเราก็ทำเองในครัวเรือนนี่แหละครับ หรือไม่ก็อาศัยเด็กฝึกงานหรือพนักงานใหม่ทำกัน เป็นงานที่เรียกได้ว่าโยนให้นักเขียนโปรแกรมคนไหนทำ คนไหนก็ทำได้...(ใครทำไม่ได้ ควรพิจารณาตัวเองจริงๆนะครับ... แต่ทำไม่ทันมันก็อีกเรื่อง)
- อื่นๆ
ส่วนปลีกย่อยอื่นๆที่ผมตกหล่นไป... อันนี้ก็แล้วแต่ทีมงานของท่านล่ะครับว่าจะเขียนอะไรพิเศษหรือเปล่า
ดูเหมือนว่าแค่พูดถึงฝ่ายเดียวก็ยาวขนาดนี้แล้ว ผมคิดว่าที่เหลือ(ถ้าทำได้)คงจะต่อในคราวหน้าให้จบนะครับ จะได้ขึ้นเรื่องเกร็ด และกรณีศึกษาที่ผมเจอมาสักที
รออ่านตอนถัดไป