สวัสดีท่านผู้อ่านทุกคนครับ ยุคนี้วงการเกมนั้นได้ก้าวกระโดดไปไกลมาก และเทคโนโลยีเองก็ตามกันไปเช่นกัน ระยะหลังๆมานี่เกมเมอร์ชาว PC ส่วนมากจะพากันบ่นเรื่องสเป็คคอมพิวเตอร์ที่ตกยุคกันไวมากๆ เรียกได้ว่าชื้อมาแปปเดียวก็ตกรุ่นแล้ว และยิ่งในเกมใหม่ล่าสุดอย่าง “PUBG” ที่ทำเอาเกมเมอร์หลายคนที่ยังใช้คอมพิวเตอร์สเปคเก่าๆกว่า 4-5 ปี ได้พากันอัพเกรดเครื่องให้เยอะมากเลยทีเดียว
ในช่วงระยะหลังๆ มานี่นับตั้งแต่ปี 2009 เป็นต้นมาเราจะได้เห็นการพัฒนาของวิดิโอเกมในทุกๆด้าน ไม่ว่าจะเป็นเรื่องของกราฟิกที่สมจริงมากยิ่งขึ้น ระบบการเล่นที่พัฒนาขึ้นมาทำให้สร้างความแตกต่างในเกมหลายๆรูปแบบได้มากยิ่งขึ้น รวมไปถึงระบบเสียง และอนิเมชั่นตัวละครที่ทำมาได้สมจริงตามยุคสมัย นับว่าเป็นเรื่องดีสำหรับเกมเมอร์มากๆครับ
Game Engine คืออะไร
Game Engine หรือ “Engine” คืออะไร พูดให้เข้าใจง่ายๆมันก็คือ “ซอฟต์แวร์โปรแกรมสร้างเกม” นั้นเองครับ โดยเจ้าซอฟต์แวร์เหล่านี้จะถูกเขียนขึ้นมาอีกทีจากภาษาโปรแกรมเมอร์ หรือที่เรียกกันว่าภาษา C, C++, JAVA เป็นต้น โดยในโลกนี้มี Engine ให้เลือกใช้เยอะมาก ทั้งฟรี ทั้งเสียตังก็มีหมด โดยเกมทุกๆเกมจะต้องถูกสร้างผ่าน Engine ต่างๆที่มีอยู่ ก่อนจะนำเอาออกมาขายตามตลาด
โดยเจ้า Engine พวกนี้จะทำงานในคอมพิวเตอร์ส่วนตัวของนักพัฒนา (Developer) โดยมันจะทำหน้าที่แทบจะทุกอย่างเพื่อช่วยเหลือให้นักพัฒนาได้สร้างเกมออกมาตามที่ตัวเองต้องการ ไม่ว่าจะเป็นทั้งการ Reader ภาพ 2D หรือ 3D ระบบฟิสิกส์สิ่งของ ระบบเสียง สคริป อนิเมชั่น AI ระบบออนไลน์ และอื่นๆอีกมากมาย แน่นอนว่าเหล่านักพัฒนาที่สร้างเกมจะต้องรู้ภาษาโปรแกรมเมอร์ ภาษาเดียวกับที่สร้างตัวซอฟต์แวร์ Engine นั้นๆขึ้นมา
เปรียบเทียบได้กับรถยนต์หนึ่งคันที่มีการออกแบบดีไซน์มา และถูกนำมาประกอบเข้าด้วยกันก่อนที่จะนำเจ้า Engine หรือเครื่องยนต์หลักนำมาประกอบให้สมบูรณ์ และมันจะกลายเป็นตัวขับเคลื่อนหลักๆของรถคันนั้น เหมือนกับเกมๆนึงที่จะมีการออกแบบดีไซน์ขึ้นมา ก่อนที่จะนำมันไปสร้างใน ซอฟต์แวร์ตัวนึงที่เรียกกันว่า Engine และเจ้าซอฟต์แวร์ตัวนี้จะเป็นตัวขับเคลื่อนหลักๆของเกมที่เรากำลังเล่นอยู่นั้นเองครับผม
ความยากของการสร้างเกมนอกจากจะอยู่ที่การออกแบบ หรือ โปรแกรมมิ่งแล้ว ก็ยังมีระบบการจัดการทรัพยากรต่างๆภายในตัวเกม ไม่ว่าจะเป็นทั้งเรื่องของ Memory Management หรือระบบการจัดการหน่วยความจำ ที่ถ้าหากออกแบบมาไม่ดีก็จะทำให้เกิดอาการหน่วยความจำล้น หรือที่เรียกกันว่า Memory Leak, การจัดการ Threading โดยเกมจะกินสเป็คมากน้อยแค่ไหนก็ขึ้นอยู่กับส่วนนี้
นอกจากนั้นก็จะมีในส่วนของ Texture แสง เงาต่างๆ ที่ต้องทำมาให้ดี ตามสเป็คเครื่องของเกมเมอร์ทั่วๆไป ที่ถือว่าเป็นลูกค้าของพวกเขาตามยุคต่างๆ โดยนอกจาก PC แล้วก็ยังมี Console ที่ถือว่าเป็นตลาดหลักๆเช่นกัน โดยปัญหาหลักๆที่เกมเมอร์ชาว PC จะเห็นอยู่บ่อยๆก็คือการที่ตัวเกมนั้น Optimize มาได้ไม่ดี แตกต่างจากเวอร์ชั่น Console ที่กลับเล่นได้อย่างลื่นไหลไม่มีปัญหาอะไรเลยสักนิด
และนั้นล่ะครับ คืออีกหนึ่งความยากของการสร้างเกม หรือเอาจริงๆต้องเรียกว่า Port เกมมาลงแบบ Multi-Platfrom เสียมากกว่า โดยถ้าหากเหล่านักพัฒนาโฟกัสที่ Console เป็นหลักปัญหามันก็จะเกิดขึ้นได้น้อย และก็จะใช้เวลาพัฒนารวดเร็วกว่ามาก เมื่อเปรียบเทียบกับการที่จะพัฒนาสำหรับ PC เป็นหลักก่อน
เนื่องจากว่า Console นั้น ด้วย Hardware ที่ถูกกำหนดมาสำหรับเล่นเกมอย่างชัดเจน และมีการแบ่งส่วนเอาไว้อย่างเรียบร้อย สิ่งที่นักพัฒนาต้องทำก็คือทำให้มันเล่นได้อย่างไม่มีปัญหาและลื่นไหลที่สุดเท่าที่จะทำได้ก็เพียงพอแล้วและเมื่อถึงเวลาจริง เครื่อง Console ของลูกค้าที่บ้านมันก็ไม่ต่างอะไรกับเครื่องที่นักพัฒนาได้ใช้ทดสอบเลยสักนิด เพราะฉะนั้นจึงมั่นใจได้ว่าตัวเกมจะไม่มีปัญหาอะไรก่อนวางขาย
แต่พอกลับมามอง PC ในขณะนั้นมันมีสเป็คเครื่องที่หลากหลายมาก ไม่ว่าจะเป็นทั้ง CPU,VGA Card และอื่นๆอีกมากมาย ที่มันจะสร้างปัญหาให้กับนักพัฒนา หากไม่ใส่ใจพอ ด้วยการที่สเป็คของผู้ใช้นั้นมีตั้งแต่ระดับล่างๆ ไปจนถึง High End แน่นอนว่าการกำหนดคุณภาพกราฟฟิกจึงเป็นสิ่งหลักๆที่นักพัฒนาทุกคนจะต้องโฟกัส หากเลือกที่จะทำเกมให้กับ PC เป็นหลัก
โดยตัวอย่างที่ดีที่เราได้เห็นก็คือผลงานจาก DICE อย่าง Battlefield ที่เกมนี้ได้เลือกพัฒนาสำหรับเวอร์ชั่น PC เป็นหลัก ก่อนที่จะนำไป Port ลง Console ในภายหลัง หรือเกมเก่าๆอย่าง Half-Life 2, Portal 2 ที่ทำตัวเกมทั้งสองเวอร์ชั่นได้อย่างยอดเยี่ยม เป็นต้น
Game Engine ในรูปแบบต่างๆ
อย่างที่ผมได้บอกไปในตอนแรกว่าในโลกนี้มี Engine อยู่หลากหลายแบบมากๆ โดย Engine พวกนี้ส่วนมากจะถูกเขียนขึ้นมาจากทีมโปรแกรมเมอร์ที่ต้องการสร้างเกมโดยใช้ Engine ที่พวกเขาเป็นคนออกแบบขึ้นมาเอง และนำมาพัฒนาเกมของตัวเอง โดยไม่ปล่อยให้คนทั่วไปได้ใช้
Engine เหล่านี้จะถูกเรียกว่า “in-house engines” หรือ Engine สำหรับทีมงานภายในและในสังกัดเท่านั้น ยกตัวอย่างเช่น RAGE Engine จาก Rockstar GTA ยุค IV เป็นต้นมา หรือ ID Tech ที่ตอนนี้มีถึง 6 เวอร์ชั่น เจ้าของ Engine ต้นตำรับเกม FPS และ Frostbite Engine สุดเทพจาก DICE จากเกมดังอย่าง Battlefield ยุค Bad Company เป็นต้นมา ที่หลายๆ คนยกให้ว่าเป็น Engine ที่ดีที่สุด ณ เวลานี้
นอกจากนั้นก็จะมี Engine อีกประเภทนึง ที่ได้เอา Engine ตัวเดิมมาทำการโมดิฟายใหม่ หรือนำเอา Engine หลายๆตัวมายัดใส่เข้าด้วยกัน และเขียนรูปแบบการทำงานขึ้นมาใหม่ โดย Engine เหล่านี้เราจะได้เห็นอยู่บ่อยมากกับเกมดังๆ
ยกตัวอย่างเช่น IW Engine จาก Infinity Ward กับเกมสุดดัง Call of Duty ที่ได้ทำการนำเอา Id Tech 3 มาปรับปรุงใหม่และพัฒนาให้กลายเป็น Engine ของตัวเอง หรือ Dunia Engine จาก Ubisoft กับเกม Far Cry ที่ได้เอา CryEngine มาทำการปรับปรุงยกเครื่องใหม่หมด จนออกมาอย่างที่เราเห็นกันในปัจจุบันครับ
ต่อมาก็คือ Engine ที่ได้เปิดให้ผู้ใช้งานทั่วไปได้ชื้อหรือดาวน์โหลดกันไปใช้ได้ตามคอมพิวเตอร์ที่บ้าน เปิดโอกาสให้เกมเมอร์ทางบ้านที่ลองสร้างเกมที่ตัวเองจินตนาการเอาไว้ได้ ยกตัวอย่างเช่น Unreal Engine จาก Epic Game
โดยเจ้า Engine ตัวนี้ถือว่าเป็น Engine ที่นิยมที่สุดในโลกแล้วก็ว่าได้ มีเกมมากกว่า 500 เกมที่มาจาก Unreal Engine นี้ โดยปัจจุบันได้ออกมา 4 เวอร์ชั่นแล้ว กับเกมที่โด่งดังที่สุดในยุคนี้อย่าง Playerunknow’s Battleground ก็ขับเคลื่อนโดย Unreal Engine 4 เช่นกันครับ
จากนั้นก็จะมี Engine อีกหนึ่งตัวที่ฮิตไม่แพ้กันอย่าง Unity ที่โดดเด่นในเรื่องการใช้งานที่ง่ายมากๆ และยังเป็นที่นิยมสำหรับเกมมือถืออีกด้วย พูดได้อย่างเต็มปากเลยว่าเกมมือถือส่วนมาก 90% ใน Playstore, Appstore เป็นผลงานมาจาก Unity ทั้งนั้น
และนอกจากนั้นก็จะมี CryEngine ที่ได้เปิดให้ผู้ใช้งานทางบ้านได้ใช้ผ่านการเก็บค่าบริการรายเดือน หรือจะเป็น Source Engine จาก Valve กับเกมชื่อดังอย่าง CSGO,Dota 2 ก็ได้เปิดให้ใช้บริการกันแบบฟรีๆ เลยเช่นกันครับ
แล้วก็ยังมีอีกมากมายเลยครับ หากจะนำมาพูดทั้งหมดในวันนี้ก็คงไม่จบกันแน่ๆ โดยในครั้งต่อไปผมทีมงาน Beartai.com จะหยิบนำเอา Engine ที่น่าสนใจแต่ละตัวมานำเสนอให้ท่านผู้อ่านแบบเจาะลึกกันทีละตัวเลยครับผม