หากย้อนกลับไปในวันที่ 1 มกราคม ค.ศ. 1993 (พ.ศ. 2536) ทาง idSoftware ค่ายเกมรายหนึ่งได้ปล่อยข่าวประชาสัมพันธ์เกี่ยวกับเกมใหม่ของพวกเขา โดยมีเนื้อหาในเชิงโอ้อวดอยู่หลายอย่างว่า มันจะปฏิวัติเทคนิคในการสร้างเกม, มันคือขีดสุดของการรีดขุมพลังคอมพิวเตอร์ออกมาใช้ และมันจะเป็นเกมที่สามารถทำงานได้อย่างราบรื่นบนคอมพิวเตอร์ทุกรุ่น อาจอ่านแล้วรู้สึกเป็นเรื่องธรรมดา แต่ ณ เวลานั้น การพัฒนาเกมคอมพิวเตอร์ยังไม่ได้มีมาตรฐานที่ดีเหมือนอย่างในปัจจุบันนี้
ในข่าวประชาสัมพันธ์ดังกล่าวยังมีการอ้างอิงคำพูดของ John Carmack ผู้อำนวยการฝ่ายเทคนิคของ idSoftware ว่าเกม "Doom engine" ได้พัฒนามาให้สามารถสร้าง "เฟรมเรต" ได้อย่างยอดเยี่ยม
และเมื่อเกม Doom (1993) วางขายอย่างเป็นทางการ มันก็ทำได้อย่างที่เคยโม้เอาไว้ มันประสบความสำเร็จเป็นอย่างมาก แม้มันจะไม่ใช่เกมแนว FPS เกมแรกของโลก แต่หลายคนก็ยกย่องให้มันเป็นบิดาของเกม FPS เนื่องจากมันเป็นเกมแนวนี้เกมแรกที่ถูกขัดเกลามาได้ จนเป็นต้นแบบในการทำเกมแนวนี้ให้อีกหลายเกมมาจนถึงปัจจุบัน
Doom ภาคแรก ที่วางจำหน่ายในปี ค.ศ. 1993 (พ.ศ. 2536)
ภาพจาก : https://store.steampowered.com/app/2280/DOOM_1993/?l=thai
แต่ความสำเร็จที่แท้จริงอาจจะไม่ใช่ตัวเกม แต่เป็นเอนจิ้น (Engine) ที่ใช้ในการพัฒนามันขึ้นมา เจ้า Doom engine นี้ได้ถูก John Carmack นำมากลับมาใช้ต่อยอด อัปเกรดสิ่งใหม่ ๆ เข้าไป กลายเป็นสุดยอดเครื่องมือสร้างเกม ที่ช่วยให้การพัฒนาเกมใหม่ที่มีรูปแบบเดิมทำได้ง่ายขึ้น ไม่ต้องเริ่มต้นจากศูนย์อีกต่อไป
ในบทความนี้ เราเลยจะมาแนะนำให้รู้จักว่า Game Engine คืออะไร ?
Game Engine เป็น ซอฟต์แวร์ (Software) ที่ถูกสร้างขึ้นมาเพื่อใช้เป็น โครงร่างซอฟต์แวร์ (Framework) สำหรับพัฒนาเกม ไม่ว่าจะเป็นเกมบนแพลตฟอร์มบน เครื่องพีซี (PC), เครื่องคอนโซล หรือสมาร์ทโฟนก็ตาม โดยมันช่วยให้นักพัฒนาเกมไม่จำเป็นต้องสร้างระบบต่าง ๆ อย่างเช่น กราฟิก, ฟิสิกส์, ปัญญาประดิษฐ์ (AI), เสียง, การสนับสนุนแพลตฟอร์มต่าง ๆ ฯลฯ ขึ้นมาใหม่ทั้งหมดด้วยตนเอง การนำ Game Engine มาใช้จึงช่วยประหยัดเวลา และทรัพยากรในการเกมเป็นอย่างมาก
เราสามารถบอกได้เลยว่า Game Engine มีบทบาทที่สำคัญมากในการพัฒนาเกม เปรียบได้กับเสาหลักที่ใช้รวมศูนย์ส่วนประกอบต่าง ๆ ของเกมเข้าไว้ด้วยกัน ไม่ว่าผู้พัฒนาเกมจะใช้ Game Engine ที่มีให้เลือกใช้งานอยู่แล้ว หรือเลือกที่จะพัฒนา Game Engine ขึ้นมาใช้ภายในบริษัทของตนเองก็ตาม
และเมื่อตัดสินใจเลือก Game Engine ที่ต้องการใช้งานได้แล้ว นักพัฒนาเกมจะทำทุกอย่างตาม Framework ที่ตัว Game Engine กำหนดไว้ แม้ว่าจะมี "องค์ประกอบ" ภายในเกมหลายอย่าง ที่ต้องสร้างขึ้นด้วยซอฟต์แวร์ บุคคลที่สาม (3rd-Party) เช่น เพลงประกอบ, เสียงเอฟเฟคต่าง ๆ, งานศิลป์ภายในเกม ฯลฯ แต่ทั้งหมดก็จะถูกส่ง (Import) เข้าไปใช้ในเกม Game Engine อยู่ดี
Unity Game Engine
ภาพจาก : https://docs.unity3d.com/Manual/ProjectView.html
โดยทั่วไปแล้ว ภายใน Game Engine จะมีฟังก์ชันหลักที่จำเป็นต่อการทำเกมเอาไว้ให้พร้อมใช้งาน อย่างเช่น ระบบเรนเดอร์ภาพ 2D หรือ 3D, APIs, ระบบจำลองฟิสิกส์, รองรับการทำงานร่วมกับไฟล์มัลติมีเดียอย่างไฟล์เสียง, วิดีโอ, แอนิเมชัน, AI, การทำสคริปต์ หรือแม้แต่ระบบที่ใช้ในการเล่นเกมผ่านเครือข่ายก็มีเตรียมไว้ให้เช่นกัน
ลองจินตนาการว่า Game Engine คือกล่องเลโก้ที่มีชิ้นส่วนเตรียมไว้ให้แล้ว และเราสามารถสร้างชิ้นส่วนขึ้นมาใหม่ได้เองด้วย นักพัฒนานำชิ้นส่วนต่าง ๆ มาประกอบให้เป็นเกมใหม่ได้ ซึ่งง่าย และประหยัดต้นทุนในการทำเกมกว่าที่จะพัฒนาทุกอย่างขึ้นมาด้วยตนเอง
ภายใน Game Engine จะประกอบไปด้วย Engine อีกหลายตัวที่จำเป็นต่อการพัฒนาเกม โดยแต่ละ Game Engine ก็จะมีส่วนประกอบที่หลากหลาย มีความแตกต่างกันแล้วแต่ว่ามันจะถูกพัฒนาขึ้นมาอย่างไร ? แต่โดยส่วนใหญ่แล้ว มันก็จะมี Engine หลัก ๆ ดังต่อไปนี้
ระบบฟิสิกส์ใน Unreal Engine
ภาพจาก : https://collinharris.com/using-houdini-rigid-body-destruction-in-ue4
Game Engine แต่ละตัว ก็มักจะมีจุดเด่นที่แตกต่างกัน การจะตัดสินใจว่าจะใช้ Game Engine ตัวไหนในการสร้างเกม ก็ต้องพิจารณาว่า Engine ที่มันมีให้ ทำอะไรได้บ้าง ? และมีอะไรที่ทำไม่ได้ หากเลือกไม่เหมาะสมแล้ว ก็จะทำให้การสร้างเกมมีความยากลำบาก หรือออกมาแย่
Game Engine เป็นสิ่งที่เพิ่งถูกริเริ่มในยุค ค.ศ. 1990 (พ.ศ. 2533) นี้เอง โดยก่อนหน้านั้นการพัฒนาเกมแต่ละตัว จะต้องเริ่มต้นใหม่เกือบทั้งหมด แม้แต่เกมเดียวกัน ถ้ามีการพัฒนาลงหลายแพลตฟอร์ม ก็จะต้องสร้างใหม่ให้สำหรับทุกแพลตฟอร์ม มีโค้ดแค่เพียงบางส่วนเท่านั้นที่สามารถนำกลับมาใช้ใหม่ได้
ยกตัวอย่างเช่น เครื่อง Atari 2600 ที่ได้รับความนิยมอย่างมากในยุค 70' เกมของเครื่องนี้จะถูกเขียนขึ้นมาด้วยภาษา Assembly แม้จะมีการนำโค้ดกลับมาใช้งานซ้ำบ้าง แต่มันก็ไม่มีฐานข้อมูลกลางที่รวมโค้ดเอาไว้เพื่อใช้ในการพัฒนาเกมอื่น ๆ ได้
เครื่อง Atari 2600
ภาพจาก : https://en.wikipedia.org/wiki/Atari_2600
เกม Super Marios Bros ที่วางจำหน่ายในปี ค.ศ. 1985 (พ.ศ. 2528) จากค่าย Nintendo เป็นเกมบนเครื่องคอนโซลเกมแรกที่มีการนำโค้ดเก่ากลับมาใช้ใหม่ในฐานะของโค้ดหลักของเกม
Shigeru Miyamoto ได้เคยสร้างโค้ดสำหรับให้การเคลื่อนที่ในมุมมองด้านข้างให้มีความลื่นไหล เพื่อใช้ในเกมมอเตอร์ไซค์วิบากที่ชื่อว่า Excitebike ซึ่งวางจำหน่ายในปี ค.ศ. 1984 (พ.ศ. 2527) และเขาได้นำโค้ดการเคลื่อนที่นี้มาใช้ในการสร้างเกม Super Mario Bros ที่วางจำหน่ายในปีถัดมาด้วย นั่นเป็นเหตุผลที่ตัวละคร Mario สามารถเคลื่อนที่บนจอได้อย่างลื่นไหล และมีอัตราเร่งความเร็วจากเดินไปวิ่งที่เนียนตา
เกม Super Mario Bros
ภาพจาก : https://news.yahoo.com/super-mario-bros-theme-becomes-160000234.html
ในยุค 80 เรายังเห็นซอฟต์แวร์ชุดคิทสำหรับสร้างเกม 2D วางจำหน่ายอยู่หลายตัว ซึ่งเป็นที่รู้จักกันใน "Game Creation Systems" (ระบบสร้างเกม) มันช่วยให้ผู้ใช้สามารถสร้างเกมในแนวที่ถูกกำหนดเอาไว้ได้ จากสิ่งที่ถูกเตรียมไว้ให้ล่วงหน้า เช่น Pinball Construction Set ก็เอาไว้สร้างเกมพินบอล หรือ Adventure Construction Set ไว้สร้างเกมผจญภัย
Adventure Construction Set
ภาพจาก : http://crpgaddict.blogspot.com/2015/09/revisiting-adventure-construction.html
ซอฟต์แวร์ชุดคิทสำหรับสร้างเกมเหล่านี้ อนุญาตให้ผู้ใช้งานทั่วไป นำมันมาสร้างเกมด้วยตนเองอย่างง่าย ๆ ผ่านการควบคุมด้วย หน้าจอผู้ใช้งาน (User Interface - UI) แบบกราฟิก (Graphical User Interface - GUI) ซึ่งชุดคิทบางตัวทำได้แม้กระทั่งสามารถบันทึกไฟล์เกมที่ผู้ใช้สร้างขึ้นมา เพื่อเผยแพร่ให้คนที่สนใจได้ลองนำไปเล่นได้ โดยไม่จำเป็นต้องใช้ชุดคิทในการเล่น การที่ชุดคิทเหล่านี้ช่วยให้ผู้เล่นสามารถสร้างเกมได้โดยไม่จำเป็นต้องมีความรู้เรื่องโค้ด ทำให้มันประสบความสำเร็จเป็นอย่างมาก แม้จะมีข้อจำกัดในการออกแบบ และแนวเกมที่สามารถสร้างได้ก็ตาม
ในปี ค.ศ. 1985 (พ.ศ. 2528) ค่าย Activision ได้เปิดตัวซอฟต์แวร์ GameMaker ที่พัฒนาโดย Garry Kitchen มันลงแพลตฟอร์ม Commodore 64, Apple II และ IBM PC มันได้รับการยอมรับว่าเป็นซอฟต์แวร์พัฒนาเกมแบบครบวงจรตัวแรก ๆ ที่สร้างขึ้นมาเพื่อให้ผู้ใช้นำมันไปพัฒนาเกมได้หลากหลายแนว ภายในซอฟต์แวร์มีเตรียมทรัพยากรที่จำเป็นเอาไว้ให้มากมาย ทั้งกราฟิก, ภาพพื้นหลัง และเสียงประกอบ
และนอกจากนี้แล้ว ยังรองรับการโค้ดเพิ่ม เพื่อปรับแต่งการทำงานให้ทำอะไรได้หลายอย่างมากขึ้นด้วย ทั้งหมดนี้ทำให้มันถูกมองว่าเป็นต้นแบบของ Game Engine
ส่วน Game Engine ตัวแรก หลายคนอาจจะคิดว่าเป็น Doom Engine นะ แต่อันที่จริง idSoftware ได้ทำ Game Engine มาก่อนแล้ว โดยในตอนที่พัฒนาเกมตระกูล Commander Keen พวกเขาได้ตระหนักรู้ว่าการพัฒนาเกมโดยสร้างฟังก์ชันโค้ดให้ทำงานร่วมกับเกมอื่น ๆ ได้ จะช่วยให้การพัฒนาเกมง่ายขึ้นกว่าเดิมมาก พวกเขาถึงขนาดพยายามจดลิขสิทธิ์มันให้ชื่อ "Keen Engine" เลยด้วยซ้ำ แต่มันก็ไม่ประสบความสำเร็จเท่าไหร่นัก ในขณะที่ Doom Engine นั้นสำเร็จอย่างงดงาม
หลังจากนั้น ก็มี Game Engine ถือกำเนิดตามมาอย่างมากมาย กลายเป็นบรรทัดฐานในการทำเกมมาจนถึงปัจจุบัน โดยมีทั้ง Game Engine ที่ใครก็ซื้อมาใช้งานได้ และ Game Engine ที่ทางค่ายเกมสร้างขึ้นมาเพื่อใช้งานเอง บางเกมที่ลงทุนสูง อาจจะเลือกสร้าง Game Engine ขึ้นมาใหม่เลยด้วยซ้ำ หาก Game Engine ที่มีอยู่ในตลาดไม่สามารถทำงานได้ตามที่ต้องการได้
เหตุผลที่ซอฟต์แวร์สำหรับสร้างเกมถูกเรียกว่า Game Engine เป็นอิทธิพลมาจากการที่ John Carmack และ John Romero ที่เป็นผู้ก่อตั้งบริษัท idSoftware ทั้งคู่หลงใหลในรถยนต์เป็นอย่างมาก Romero ได้กล่าวว่า Engine (เครื่องยนต์) เหมือนหัวใจของรถยนต์ ในขณะที่ Game Engine คือหัวใจของเกม โดยที่กราฟิก และส่วนอื่น ๆ ก็เหมือนกับตัวถังรถยนต์ เป็นเหตุผลให้พวกเขาเปิดตัวซอฟต์แวร์ชนิดนี้ โดยใช้คำว่า Game Engine ในข่าวประชาสัมพันธ์ของเกม Doom นั่นเอง
ปัจจุบันนี้มี Game Engine อยู่หลายตัว แต่ละตัวก็มีจุดแข็ง และจุดอ่อนที่แตกต่างกัน เราจะขออนุญาตยกมาบางส่วนเฉพาะที่ได้รับความนิยม
เป็น Game Engine ที่มีความอเนกประสงค์ รองรับทั้งการพัฒนาเกม 2D และ 3D หน้าตาของตัวซอฟต์แวร์ถูกออกแบบมาให้ใช้งานง่าย มีระบบ Asset store ให้ดาวน์โหลดส่วนประกอบที่จำเป็นต่อการสร้างเกมมาใช้งานได้ ทำให้มันได้รับความนิยมในหมู่นักพัฒนา เกมอินดี้ เป็นอย่างมาก อย่างไรก็ตาม Unity มีชื่อเสียในด้านประสิทธิภาพของตัวเกม แต่ก็มีค่ายเกมหลายแห่งที่สามารถใช้ Unity ทำเกมให้ออกมาได้ดี
พัฒนาขึ้นมาโดย Epic Games มีชื่อเสียงในด้านกราฟิกที่สวยงาม สมจริง และมีเครื่องมือที่ทรงพลังให้เลือกใช้มากมาย เกมระดับ AAA หลายเกมนิยมใช้ Unreal Engine ในการพัฒนา
เป็น Game Engine แบบ Open-source ที่ใช้งานได้ฟรี จึงได้รับความนิยมพอสมควร รองรับทั้งการสร้างเกม 2D และ 3D
เป็น Game Engine ที่สร้างมาเพื่อพัฒนาเกมแนว RPG โดยเฉพาะ ใช้งานค่อนข้างง่าย และราคาไม่แพง ทำให้ได้รับความนิยมพอสมควร
มีชื่อเสียงในการทำกราฟิกให้ออกมามีความสมจริง และสวยงาม โดยใช้ทรัพยากรไม่มาก อย่างไรก็ตาม มันยังตามหลัง Unreal Engine ที่ทำงานได้เหมือนกันทำให้ปัจจุบันไม่ได้รับความนิยมมากนัก
เป็น Game Engine จาก idSoftware ที่มีประสบการณ์ในการพัฒนาเกมแนว FPS มาอย่างยาวนาน ทำให้เป็นหนึ่งในตัวเลือกที่ดีสำหรับการพัฒนาเกมแนวนี้
เป็น Game Engine ที่ค่าย EA ใช้กับเกมในค่ายของตนเอง เดิมที่สร้างขึ้นมาเพื่อพัฒนาเกม Battlefield โดยเฉพาะ แต่ภายหลังก็ถูกนำไปพัฒนาเกมอื่น ๆ ด้วย
ก็หวังว่า คุณผู้อ่านจะเข้าใจกันแล้วว่า Game Engine คืออะไร ? สุดท้ายนี้อยากจะบอกว่าไม่มี Game Engine ตัวไหนดีกว่าตัวไหน มันขึ้นกับรูปแบบเกมที่เราจะพัฒนามากกว่า ว่า Game Engine ตัวไหนที่เหมาะสมกับงานของเรามากที่สุด
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |