Home » Gaming Notebook

มาทำความรู้จักกับ Middleware พระรองผู้ปิดทองหลังพระแห่งวงการเกมกัน

15 Aug 11 - By l

เวลาที่เราพูดถึงเกมกัน สิ่งหนึ่งเรามักจะพูดถึงเกี่ยวกับเกมนั้น ๆ เป็นอันดับแรก ๆ คงหนีไม่พ้นตัว Game Engine ที่เกมนั้น ๆ เลือกใช้ แน่นอนครับว่า Game Engine นั้นเป็นแกนหลักในการขับเคลื่อน และพัฒนาเกม แต่กลไกย่อย ๆ ที่เป็นส่วนเสริมเติมเต็มการทำงานของเกม ซึ่งจะถูกจัดการโดยโปรแกรมที่เรียกกันว่า Middleware นั้นความจริงแล้วก็เป็นสิ่งที่สำคัญไม่ได้น้อยไปกว่ากันเลย ซึ่งหากจะเปรียบมันให้เหมือนกับตัวละครในหนังซักเรื่อง มันก็คงจะเหมือนกับเป็นตัวพระรอง ที่คอยเสริมคอยส่งบทบาทของตัวพระเอกในหนังให้ได้ดิบได้ดีจนได้รับรางวัลดารานำชายยอดเยี่ยม แต่สุดท้ายตัวเองกลับถูกลืมจากสาธารณชน วันนี้ เพื่อเป็นการรำลึกบุญคุณของตัวพระรอง ผมจะพาทุกท่านไปรู้จักกับเหล่า Middleware ยอดนิยม ที่ถูกนำมาเลือกใช้ในเกมดัง ๆ หลายเกมกันครับ

SpeedTree


ต้นไม้ใบหญ้าอาจดูเป็นแค่ของประกอบฉากน่าเบื่อที่คุณคงจะไม่ได้สนใจอะไรมันเท่าไหร่ตอนคุณกำลังเล่นเกม แต่ขอบอกไว้ตรงนี้เลยว่า การจะใส่พวกพืชพันธุ์นานาเอาไว้ในโลกของเกมให้ดูเป็นธรรมชาติ หรือจะสร้างโมเดลต้นไม้ใหญ่ขึ้นมาซักต้นให้ดูเสมือนจริง หรือการจะใส่ Animation เคลื่นไหวให้กับเหล่ากิ่งก้านใบของต้นไม้จำลองเหล่านี้นั้นไม่ได้ง่ายอย่างที่คิด ด้วยเหตุจึงต้องมีโปรแกรมที่จะช่วยในการจำลองการสร้างต้นไม้และพืชพันธุ์เหล่านี้ขึ้นมาเพื่อให้ได้โลกของเกมที่ดูน่าเชื่อถือและสมจริง และโปรแกรมนั้นจะเป็นอื่นใดไปไม่ได้นอกจาก SpeedTree

SpeedTree ถูกพัฒนาโดยบริษัท ?Interactive Data Visualization, Inc. (IDV)ถูกสร้างขึ้นมาเพื่อใช้ในการสร้างโมเดลดิจิตอล 3 มิติของต้นไม้ที่มีความสมจริงสูงในทุกขนาด มีโมเดลต้นแบบของต้นนานาพันธุ์นับร้อยนับพันชนิดให้เลือกใช้ สามารถจำลองการสร้างแบบสุ่มตำแหน่งบนฉาก และสร้าง Animation ให้กับต้นไม้ที่จะตอบสนองกับวัตถุและเหตุการณ์ต่าง ๆ ได้แบบพลวัต เช่น การโบกพัดพริ้วตามแรงลม การหักงอจากแรงกระทำต่าง ๆ Animation จำลองการเติบโตของต้นไม้ และอื่น ๆ อีกมากมาย SpeedTree นั้นได้รับความนิยมในการนำไปใช้งานร่วมพัฒนาเกมอย่างสูง Game Engine ดัง ๆ อย่างเช่น Cry Engine, Unreal Engine 3, Creation Engine และอื่น ๆ อีกมากมาย ได้นำเอา SpeedTree ผนวกเข้าไปในเครื่องมือพัฒนาของตนเพื่อความง่ายและคล่องตัวในการใช้งาน ?และยิ่งไปกว่านั้นก็คือ SpeedTree ไม่ได้ถูกนำไปใช้แค่เฉพาะในวิดีโอเกมเท่านั้น แต่ยังถูกนำไปใช้กับการสร้างภาพยนตร์ด้วย ซึ่งจะเป็น SpeedTree เวอร์ชั่นสำหรับการสร้างต้นไม้เพื่องานภาพยนตร์โดยเฉพาะที่จะมีความละเอียดสูงกว่าในเวอร์ชั่นเกมมาก

Havok Physics


ชื่อนี้คาดว่าคงจะคุ้นหูเหล่าเกมเมอร์ทั้งหลาย โดยเฉพาะแฟนเกม Half-Life 2 คงจะรู้จักเจ้า Physics Engine ตัวนี้กันเป็นอย่างดี สำหรับ Havok Physics นั้นมันถูกพัฒนาขึ้นโดยบริษัทที่มีชื่อเดียวกันกับมันซึ่งก็คือ Havok มีการเปิดตัวครั้งแรกในงาน GDC หรือ Game Developers Conferenceในปี 2000 ก่อนที่จะถูกซื้อไปโดยบริษัท Intel ยักษ์ใหญ่แห่งวงการ CPU ในปี 2007 ก่อนหน้านั้นมันเป็นที่รู้จักอย่างกว้างขวางจากเกมดังอย่าง Maxpayne 2 และโดยเฉพาะอย่างยิ่งจาก Half-Life 2 ที่เป็นเกมแรก ๆ ที่มีการใช้ Physics Engine จาก Havok และได้ทำให้กลไก Physics ภายในเกม, Physics Engine ทั้งของ Havok และผู้พัฒนาเจ้าอื่น ๆ กลายเป็นที่นิยมของเกมรุ่นหลังในเวลาต่อมา ในแบบชนิดที่ว่าเกมไหนไม่มีต้องถือว่าเป็นของแปลกไปเลย

สำหรับตัวโปรแกรมที่ใช้พัฒนานั้น Havok ได้แยกตัวโปรแกรมออกมาเป็นหลายโมดูลด้วยกัน ซึ่งผู้ใช้งานสามารถเลือกเอาเฉพาะแค่บางโมดูลมาใช้งาน หรือจะใช้งานร่วมกันทั้งหมดก็สามารถทำได้ โดยโมดูลแต่ละโมดูลก็ได้แก่ Havok Physics จะเกี่ยวข้องกับฟิสิกส์พื้นฐานต่าง ๆ ภายในเกม Havok Animation เกี่ยวกับการสร้าง Animation ให้กับตัวละครต่าง ๆ Havok Behavior เกี่ยวกับการกำหนดพฤติกรรมตอบสนองต่อสิ่งต่าง ๆ ของตัวละคร (เผื่อนึกไม่ออก นึกเกม Assassin?s Creed เวลาเราวิ่งกระโดดเกาะ ข้ามสิ่งกีดขวาง หรือตอนตกลงมาจากที่สูงครับ แบบนั้นแหละ) Havok Cloth จัดการเรื่องอนิเมชั่นเกี่ยวกับผ้า และวัตถุแบบ Soft body (Soft body ก็เช่น เอ่อ….น้องตู้มของแม่นาง Lara Croft อะไรเงี้ย เป็นต้น) Havok Destruction จำลองอนิเมชั่นเกี่ยวกับการแตกหักพังทลายของวัตถุต่าง ๆ และสุดท้ายคือ Havok AI เกี่ยวกับการจัดการทางเดินของตัวละครต่าง

PhysX


PhysX (อ่านว่า ?ฟิ-สิกซ์?) คิดว่าคำนี้เราคงจะเจอกันบ่อยตามเวบบอร์ด เวลามีคนตั้งกระทู้ถามว่า ?จะเลือกการ์ดจอค่ายเขียวค่ายแดงดี? แล้วซักพักนึงก็จะมีคนมาตอบว่า ?ค่ายเขียวดีกว่า มี PhysX?.? หลายคนที่ตามข่าวคราวไอทีแบบเกาะติดก็คงจะพอเข้าใจว่า Physx คืออะไร แล้วเกี่ยวอะไรกับ Nvidia (หรือค่ายเขียวที่ว่า) แต่ใครยังไม่รู้จักก็ตามมาเลยครับ

PhysX นั้นก็เปรียบเสมอกับ Physics Engine เจ้าหนึ่ง เช่นเดียวกับ Havok แต่สิ่งที่แตกต่างคือ Physx นั้นจะทำงานผ่าน CUDA ซึ่งเป็นแพลตฟอร์มเฉพาะที่ Nvidia พัฒนาขึ้นเพื่อให้นักพัฒนานั้นนำไปใช้ในการสร้างโปรแกรมที่สามารถประมวลผลผ่าน GPU ที่รองรับ CUDA หรือให้ประมวลผลผ่านทาง CPU หรือจะแบ่งกันประมวลผลทั้งบน GPU และ CPU ก็ได้ แต่ทั้งนี้ผลลัพธ์ที่ดีที่สุดดูเหมือนจะอยู่ที่การประมวลผลผ่านทาง GPU มากกว่า ซึ่งทำให้ดูเหมือนว่า PhysX นั้นเป็น Physics Engine ที่ผูกขาดกับการ์ดจอของ Nvidia เท่านั้น ซึ่งนั่นก็ไม่จริงเสียทั้งหมด เพราะ Nvidia ก็พัฒนา Physx (รวมถึง CUDA ด้วย) ให้รองรับการประมวลผลของ CPU ด้วย โดยปัจจุบันมันมีความสามารถรองรับการประมวลผลของ CPU หลายแกนได้ดีขึ้นมาก (แม้จะเทียบกับ GPU ไม่ได้ก็ตาม) และยังมีเวอร์ชั่นสำหรับแพลตฟอร์มอื่นทั้งเครื่องคอนโซลอย่าง XBOX360 ,PS3 และ Wii หรือแม้กระทั่งแพลตฟอร์มมือถืออย่าง iOS หรือ Android ก็มีการพัฒนาออกมาให้รองรับด้วยเช่นกัน

แต่ทั้งนี้ผู้คนทั่วไปก็ดูเหมือนจะไม่ค่อยรับรู้กันเท่าไหร่ว่า PhysX นั้นถูกนำเอาไปใช้ในเกมไหนบ้าง จะรู้ก็แต่เพียงเกมที่ Nvidia ให้การสนับสนุนและนำมาใช้ประชาสัมพันธ์การ์ดจอของตัวเองด้วยการให้ผู้พัฒนาใส่เอฟเฟค PhysX จำนวนมหาศาลเข้าไปในเกม รวมไปถึงเทคนิคการประมวลผลแบบผสมระหว่าง GPU และ CPU ซึ่งแน่นอนว่าเกมเหล่านี้จะมีเอฟเฟคฟิสิกส์สวยงามคนละโลกกับ Physics Engine ตัวอื่น หรือแม้แต่กับเกมที่ใช้ Physx ด้วยกันเองแต่ไม่ได้รองรับการประมวลผลผ่าน GPU ประชาชนทั่วไปจึงคิดว่าเกมที่ใช้ PhysX คือเกมมีเอฟเฟคอลังการแค่ไม่กี่เกมเหล่านี้เท่านั้น แต่แท้จริงแล้วมันถูกใช้งานในระดับที่ค่อนข้างกว้างขวางพอ ๆ กับ Havok เลยทีเดียว และถ้าจะถามว่ากว้างขวางแค่ไหน ก็ลองไปหารายชื่อเกมที่ใช้ Unreal Engine 3 ในการพัฒนาดูครับ ก็จะเข้าใจว่านั่นคือจำนวนเกม ?ขั้นต่ำ? ที่อาจจะมีการใช้งาน PhysX ทั้งนี้เพราะ EPIC ผู้พัฒนา Unreal Engine 3 ได้ผนวกเครื่องมือพัฒนา PhysX ลงในเครื่องมือพัฒนาของตนไปด้วยนั่นเอง

Scaleform


ถ้าจะบอกว่า การมีตัวตนอยู่ของ PhysX ที่ประมวลผลด้วย CPU ที่มีอยู่ในเกมบางเกมนั้น เป็นที่รับรู้ในวงแคบแล้ว การมีตัวตนอยู่ของ Scaleform ก็เป็นอะไรที่แคบยิ่งกว่าแคบเสียงอีก!!! Scaleform นั้นถูกพัฒนาโดย Scaleform Corporation ปัจจุบันเป็นส่วนหนึ่งของ Autodesk ผู้พัฒนาโปรแกรม 3 มิติยอดนิยมอย่าง 3D Max หน้าที่ของ Scaleform คือถูกนำมาใช้ในการสร้างหน้าตา UI (User Interface) หรือก็คือหน้าเมนูของเกมต่าง ๆ นั่นเองครับ ซึ่งหน้าตา UI ที่สร้างโดย Scaleform นั้นจะมีเอฟเฟค 3 มิติ ที่ดูหวือหวาอย่างก่ะหลุดมาจากหนังเรื่อง Minority Report อย่างนั้นเลย และเกมที่มีความโดดเด่นในเรื่อง UI ที่สร้างจาก Scaleform คงจะไม่มีเกมไหนเกินไปกว่า Dead Space อีกแล้ว เพราะถือว่าเป็นเกมแรก ๆ เลยใช้ UI ภายในเกมเป็น 3 มิติเต็มรูปแบบ แถมเป็นเกมเดียวที่มี UI 3มิติแบบที่หมุนดูได้รอบทิศทาง (แต่ถึงกระนั้นผู้คนก็ได้สนใจไม่ว่ามันถูกสร้างมายังไง)

นอกจาก Dead Space แล้ว Scaleform ยังถูกนำไปใช้งานออกแบบ UI ให้กับเกมอื่น ๆ อีกมากมาย และปัจจุบันก็น่าจะเป็นเครื่องมือหลักในการออกแบบ UI ของเกมรุ่นใหม่แทบทุกเกม (เพียงแต่คุณอาจจะไม่รู้เพราะมันดูไม่หวือหวาแบบ Dead Space ไม่ก็คุณไม่ทันได้สังเกตมันเอง) อีกทั้งยังถูกผนวกเข้ากับเครื่องมือพัฒนาของ Game Engine ชั้นนำอย่าง Unreal Engine 3 (อีกแล้ว) , Cryengine , Creation Engine ,Unity Engine และอื่น ๆ อีกมากมาย

Bink Video


ถือเป็น Middleware ยุคพระเจ้าเหาที่อยู่คู่วงการเกมมานานมากทีเดียวกับ Bink Video พัฒนาขึ้นโดย RAD Game Tools เป็นโปรแกรมสำหรับเล่นไฟล์วิดีโอแบบบีบอัดที่อยู่ใน Format สกุล .bik ซึ่งข้อดีของวิดีโอที่บีบอัดใน Format นี้ก็คือมีขนาดที่เล็ก แต่คุณภาพของวิดีโออยู่ในระดับที่สูงอยู่ ปัจจุบันเราอาจไม่ค่อยได้พบเห็นมันบ่อยเท่าในอดีต เพราะหลาย ๆ เกมนิยมทำฉาก Cutscene ที่แสดงผลแบบ Realtime ผ่าน Game Engine ของเกมนั้น ๆ เอง (หรือไม่เช่นนั้นก็คือไม่มี Cutscene เลย) แต่จะพบเห็นบ่อยมากขึ้นบนเกมมือถือและอุปกรณ์พกพา



© Copyright - Notebookspec.com All Rights