เทคโนโลยี Northlight ใน Alan Wake 2
(remedygames.com)- ทีม Northlight ของ Remedy ได้สร้างเทคโนโลยีหลักใหม่หรือปรับปรุงครั้งใหญ่ ตั้งแต่โครงสร้างเอนจินไปจนถึงการเรนเดอร์ เพื่อ Alan Wake 2 วางรากฐานให้รองรับโลกที่ใหญ่และซับซ้อนยิ่งขึ้น
- โมเดลอ็อบเจ็กต์เกมแบบ ECS ใหม่ ช่วยเพิ่มประสิทธิภาพการใช้หน่วยความจำและการรันแบบขนานอย่างปลอดภัย ทำให้สร้างโลกที่ไดนามิกมากขึ้นบนฮาร์ดแวร์ที่มีจำนวนคอร์ CPU แตกต่างกันได้
- ตัวควบคุมตัวละครแบบ voxel-based และการเคลื่อนที่ของ NPC ที่ขับเคลื่อนด้วยแอนิเมชัน ช่วยให้ตัวละครเคลื่อนไหวได้อย่างเป็นธรรมชาติแม้ในพื้นที่แคบและซับซ้อน ส่วนเครื่องมือ Scattering ช่วยสนับสนุนการสร้างพืชพรรณที่หนาแน่น
- การเรนเดอร์ใช้ GPU-driven pipeline ร่วมกับ mesh shader, การ culling แบบ meshlet, แอนิเมชันพืชพรรณบน GPU, HDR และการเรนเดอร์ความโปร่งใสแบบ MBOIT เพื่อจัดการ geometry จำนวนมากขึ้น รวมถึงหมอกและเอฟเฟกต์โปร่งใส
- เวอร์ชัน PC ใช้ DLSS Frame Generation, DLSS Ray Reconstruction และ Path Traced Indirect Lighting เมื่อการตั้งค่าฮาร์ดแวร์เอื้ออำนวย เพื่อให้ ray tracing แม่นยำและแข็งแกร่งกว่า Control
เอนจิน Northlight และเทคโนโลยีพื้นฐานของเกมเพลย์
- ระหว่างการพัฒนา Alan Wake 2 นั้น Northlight ได้เปลี่ยนไปใช้ เฟรมเวิร์กอ็อบเจ็กต์เกมแบบ data-oriented ใหม่ทั้งหมด
- โมเดลใหม่นี้อิงกับ Entity Component System(ECS)
- ECS ทำให้จัดเก็บข้อมูลอย่างมีประสิทธิภาพต่อหน่วยความจำ และรันแบบขนานได้อย่างมีประสิทธิภาพและปลอดภัย
- รองรับจำนวนคอร์ของฮาร์ดแวร์เป้าหมายที่หลากหลายได้อย่างมีประสิทธิภาพ ทำให้สร้างโลกที่ใหญ่ขึ้น ไดนามิกขึ้น และสมบูรณ์ยิ่งขึ้นได้
- เครื่องมือ Scattering สำหรับวางพืชพรรณจำนวนมากก็ใช้ประโยชน์จาก ECS เช่นกัน
- สามารถวางเอนทิตีในโลกได้มากขึ้น
- ลดความจำเป็นในการสร้างโซลูชันเฉพาะแยกต่างหากสำหรับการกระจายอ็อบเจ็กต์
- ในการทำเกมเพลย์ ECS ยังช่วยเร่งความเร็วของงานที่ต้องทำซ้ำ
- ใช้ในการสร้าง Case Board ซึ่งเป็นสตอรีบอร์ดภาพที่ Saga ใช้รวบรวมหลักฐาน
- ทำให้เพิ่มหรือแก้ไขระบบใหม่และอ็อบเจ็กต์เกมได้ง่ายขึ้น
- พบว่าประสิทธิภาพดีขึ้นในการบันทึกและโหลด Case Board
การควบคุมตัวละครและการเคลื่อนที่ของ NPC
- Alan Wake 2 เป็นผลงานที่ทำให้ต้องออกแบบระบบควบคุมตัวละครของ Northlight ใหม่
- ตัวควบคุมตัวละครแบบ voxel-based ใหม่ช่วยให้การนำทางลื่นไหลในสภาพแวดล้อมที่แคบ ซับซ้อน และไดนามิก
- การเคลื่อนไหวของตัวละครเปลี่ยนไปเป็นธรรมชาติและลื่นไหลมากขึ้น
- โฟกัสอยู่ที่การลดปัญหาตัวละครชนอ็อบเจ็กต์หรือติดค้างในพื้นที่แคบ
- การเคลื่อนที่ของ NPC ก็ได้รับการปรับปรุงครั้งใหญ่
- NPC ทุกตัวใช้การเคลื่อนที่ที่ขับเคลื่อนด้วยแอนิเมชันร่วมกับ Motion Matching แบบอิงระยะทาง ใหม่
- คุณภาพการเคลื่อนที่สูงขึ้น และควบคุมได้ดีขึ้นว่าแอนิเมชันถูกใช้เมื่อใดและอย่างไร
ลม พืชพรรณ และเครื่องมือสคริปต์
- ลมที่สมจริงใน Alan Wake 2 ส่งผลต่อฟิสิกส์ พาร์ติเคิล และผ้า
- game designer สามารถกำหนดความเร็วลมที่แตกต่างกันสำหรับพื้นที่ในร่มและกลางแจ้งได้อย่างง่ายดาย
- การเปลี่ยนผ่านระหว่างสองพื้นที่เกิดขึ้นอย่างราบรื่นและไม่ต้องเก็บสถานะ
- ในรถที่ Saga และ Casey นั่ง มีการใช้ wind box ที่เคลื่อนที่ได้เพื่อกำหนดภายในรถเป็นพื้นที่ในร่มที่ไม่มีลม
- ระบบลมสร้างอยู่บนวิธี Signed Distance Fields(SDF)
- wind box ใช้เป็น primitive ที่กำหนดฟิลด์ความแรงลมทั่วโลกอย่างนุ่มนวล
- ทำหน้าที่เหมือนบล็อกพื้นฐานสำหรับกำหนดความแรงลมของแต่ละพื้นที่ ทำให้รูปแบบลมระหว่างในร่มกับกลางแจ้งราบรื่น
- เครื่องมือ Scattering ใหม่พัฒนาขึ้นเพื่อสร้างพืชพรรณและพร็อพสภาพแวดล้อมในสเกลใหญ่
- ใช้สร้างสภาพแวดล้อมของ Alan Wake 2 ที่หนาแน่น สมบูรณ์ และมีชีวิตชีวามากขึ้น
- ใช้ร่วมกับ ระยะการมองเห็น(draw distance) ที่ไกลกว่าเดิม ทำให้ผู้เล่นมองเห็นอ็อบเจ็กต์และรายละเอียดที่อยู่ไกลขึ้นได้
- ภาษาสคริปต์เปลี่ยนจากภาษาของตนเองไปเป็น Luau ซึ่งเป็นภาษา embedded scripting ที่ Roblox สืบทอดจาก Lua
- Luau เปิดเผยฟังก์ชันของเอนจินได้กว้างขวางและรองรับการแก้ไขแบบ live editing
- ใช้กับระบบเกมเพลย์หลายส่วน เช่น level scripting และระบบอัปเกรดอาวุธ
- ทีมเกมสามารถทำ prototype และ implement ฟีเจอร์เกมและเอฟเฟกต์ VFX ได้หลากหลายโดยไม่ต้องอาศัยความช่วยเหลือจากโปรแกรมเมอร์เอนจิน
- Remedy สร้างส่วนขยาย language server สำหรับ VS Code ของตนเองและผสานเข้ากับ development pipeline
- การนำ Luau มาใช้ทำให้ลบโค้ดที่ไม่จำเป็นต้องบำรุงรักษาอีกต่อไปได้ราว 80,000 บรรทัด
การเรนเดอร์ที่เน้น GPU และแอนิเมชันพืชพรรณ
- Alan Wake 2 แสดงให้เห็น GPU-driven rendering pipeline ใหม่ของ Northlight
- สามารถใส่ geometry ในโลกได้มากขึ้นโดยไม่ต้องเสียสละประสิทธิภาพ
- การเรนเดอร์แบบ GPU-driven ที่ใช้ mesh shader ทำให้ทำ occlusion culling ได้แม่นยำระดับพิกเซลเดียว
- องค์ประกอบทั้งหมดในฉากสามารถใช้เป็นตัวบังได้
- ด้วยความสามารถในการวาดเฉพาะสิ่งที่มองเห็น โลกของ Alan Wake 2 จึงมีรายละเอียดเชิงเรขาคณิตมากกว่าผลงานที่วางจำหน่ายก่อนหน้า
- rendering pipeline ทำการ culling ไม่ใช่แค่ mesh แต่รวมถึง meshlet ด้วย
- meshlet คือกลุ่มสามเหลี่ยมขนาดเล็กกว่าและปรับให้เหมาะสมแล้ว ซึ่งดึงมาจาก mesh
- สามารถดูโครงสร้าง meshlet ได้จากตัวอย่างตำแหน่งร้านสะดวกซื้อที่ Cauldron Lake
- สภาพแวดล้อมป่าดึกดำบรรพ์อันกว้างใหญ่สร้างด้วย ระบบพืชพรรณแบบ shader-based ใหม่
- ระบบนี้อิงกับระบบ skinning ใหม่ที่ทำงานทั้งหมดบน GPU
- รองรับแอนิเมชัน bone shader ที่ art-driven
- ใน Alan Wake 2 ทำให้สามารถใช้ริกแบบตัวละครกับพืชพรรณทั้งหมดที่เห็นในสภาพแวดล้อมได้
- bone shader เปิดเผย API ที่ให้ศิลปินเขียนโค้ด shader เองและเชื่อมต่อกับระบบพื้นฐานได้
- ในทางเทคนิคสามารถนำไปใช้ได้ไม่เฉพาะกับพืชพรรณ แต่ยังรวมถึงอ็อบเจ็กต์ที่ไหวอยู่บนผิวน้ำ หรือสายไฟที่ไหวตามลม
- ที่ Cauldron Lake มีการประมวลผล bone เกือบ 300,000 ชิ้น ในทุกเฟรม
HDR, การเรนเดอร์ความโปร่งใส, VFX, ray tracing
- Alan Wake 2 รองรับ HDR อย่างเต็มรูปแบบ
- ปรับแต่งมาให้ดูดีทั้งบนจอ SDR และ HDR ตั้งแต่ค่าเริ่มต้น
- การรองรับ HDR ต้องใช้แนวทางใหม่ในการทำ tone mapping
- การปรับสีทำโดย colorist จริงตามมาตรฐาน HDR เพื่อรักษาสไตล์ศิลป์ บรรยากาศ และการเล่าเรื่องที่เป็นเอกลักษณ์ไว้ทั้งใน HDR และ SDR
- ฉากหมอกหนาอิงกับการปรับปรุงการเรนเดอร์ความโปร่งใส
- Northlight ปรับปรุงการเรนเดอร์ความโปร่งใสใหม่ทั้งหมดระหว่างการพัฒนา Alan Wake 2
- ใช้ MBOIT(Moment-Based Order-Independent Transparency) เพื่อให้พื้นผิวโปร่งใสที่มีระดับรายละเอียดต่างกันผสมกันได้อย่างนุ่มนวล
- วาดองค์ประกอบโปร่งใสด้วย MBOIT ที่สามระดับความละเอียด
- สามารถ blend หมอก geometry โปร่งใส และเอฟเฟกต์ได้อย่างไร้รอยต่อ
- pipeline สำหรับควบคุมการวางหมอกในโลกอย่างละเอียดขึ้นก็ได้รับการปรับปรุงด้วย
- รวมการจัดแสงโปร่งใสระดับพิกเซลกับ reflection ที่ได้รับผลจากหมอก ทำให้องค์ประกอบทึบแสงและโปร่งใสเข้ากันได้ดีกว่าโปรเจกต์ก่อนหน้า
- หมอกประมาณค่า multiple light scattering เพื่อสร้างบรรยากาศที่หนาแน่นและสมจริง
- เครื่องมือ VFX แบบ node-based ของ Northlight พัฒนาไปมากทั้งด้านฟีเจอร์สนับสนุนและประสิทธิภาพ runtime
- ศิลปิน VFX สามารถสร้างเอฟเฟกต์ที่ซับซ้อนและไดนามิก เช่น ฝน ความเปียก การจำลองน้ำ และบาดแผลของตัวละคร
- เครื่องมือ VFX ยังได้ประโยชน์จาก GPU-driven rendering ทำให้ประมวลผล geometry จำนวนมากผ่าน GPU ได้
- เช่น ใช้เมื่อเรนเดอร์อ็อบเจ็กต์ rain blocker ลงใน dynamic mask เพื่อไม่ให้เห็นฝนในอาคารหรือใต้ที่กำบัง
- ray tracing รองรับ ray-traced direct lighting เต็มรูปแบบ
- ร่วมกับ Nvidia ผสานอัลกอริทึม denoising และ indirect lighting ที่ได้รับการปรับปรุง
- ray tracing ของ Alan Wake 2 แม่นยำและแข็งแกร่งกว่าที่เห็นใน Control
- เนื่องจากแอนิเมชันของ geometry พืชพรรณทั้งหมดสร้างและจำลองด้วย skinning จึงทำให้ ray tracing แสดงพืชพรรณที่เคลื่อนไหวได้ดีขึ้น
- ผู้เล่น PC สามารถใช้เทคโนโลยี Nvidia DLSS รุ่นล่าสุดได้ หากการตั้งค่า GPU และ CPU เอื้ออำนวย
-
DLSS Frame Generation
-
DLSS Ray Reconstruction
- Path Traced Indirect Lighting
-
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ถ้าคิดว่า Remedy เป็นสตูดิโอที่ทั้งบริษัทมีคนแค่ไม่กี่ร้อยคน ก็ต้องบอกว่าเป็นบริษัทที่ทำกราฟิกได้เกินขนาดตัวเองมาโดยตลอด
ในบรรดาสตูดิโอที่น่าจับตา ดูเหมือนมีแค่ Remedy กับ CD Projekt Red เท่านั้นที่พอจะแข่งกับเอนจินใหญ่ ๆ อย่าง Unreal, Unity, EA Frostbite ได้ในแง่คุณภาพภาพและประสิทธิภาพ
ถ้าสนใจคอมพิวเตอร์กราฟิกส์หรือเทคนิคัลอาร์ต งานนำเสนอ GDC/SIGGRAPH ของพวกเขายอดเยี่ยมมาก
Alan Wake 2 เป็นหนึ่งในเกมที่สวยที่สุดตลอดกาลในเชิงเทคนิค และโดยส่วนตัวผมมองว่าในเชิงศิลปะก็เช่นกัน การที่ปรับทุกอย่างลงต่ำสุดแล้วยังดูดีอยู่ถือเป็นความสำเร็จจริง ๆ เพราะการทำให้เกมขยายไปถึงฮาร์ดแวร์เก่า ๆ ได้แล้วยังดูดีนั้นเป็นเรื่องยาก
อย่างไรก็ตาม อย่างที่นักวิเคราะห์อย่าง Digital Foundry พูดไว้ ถ้า GPU ไม่รองรับ mesh shader ประสิทธิภาพจะแย่มาก บทความนี้ก็พูดถึงการใช้ mesh shader สำหรับการ culling ซึ่งช่วยให้วัตถุอย่างถ้วยกาแฟหรือยางรถดูเป็นทรงกลมสมบูรณ์ได้ ขณะเดียวกันก็หลีกเลี่ยงปัญหาแบบ “NPC ทุกตัวมีฟัน 10,000 โพลิกอนอยู่ในปาก” ที่ทำให้ประสิทธิภาพของ Cities Skylines 2 พัง หนึ่งในข้อได้เปรียบใหญ่ ๆ ของ Nanite ใน Unreal 5 ก็อยู่ตรงนี้เช่นกัน
จากเดโมสุดน่าทึ่ง Second Reality ในปี 1993 มาจนถึง Alan Wake 2 ในอีก 30 ปีให้หลัง สามารถลากเส้นเชื่อมโยงได้ค่อนข้างชัดเจน
https://www.youtube.com/watch?v=iw17c70uJes
ปัญหาประสิทธิภาพใหญ่กว่าการ “เรนเดอร์ฟันที่มองไม่เห็น” มาก: https://blog.paavo.me/cities-skylines-2-performance/
ยกเป็นตัวอย่างแล้วเข้าใจง่ายก็จริง แต่ปัญหาที่ใหญ่กว่าคือ การขาด LOD และ การ culling ไม่เพียงพอ
CD Projekt Red กำลังย้ายผลงานในอนาคตไป UE5 ไม่ใช่หรือ? น่าเสียดาย Cyberpunk สวยจริง ๆ และผมอยากเห็นเกมมัลติเพลเยอร์ที่ทำด้วยเอนจินนั้น
CDPR มี 1236 คน, DICE ผู้สร้าง Frostbite มี 714 คน, Epic มี 2200 คนก่อนการปลดพนักงานครั้งล่าสุด
ตัวเลขทั้งหมดอ้างอิงจาก Wikipedia
ถ้าไม่ใช่คนที่นิยามและทำให้คอมพิวเตอร์กราฟิกส์สมัยใหม่เป็นที่นิยม แล้วใครล่ะจะผลัก GPU ไปจนสุดขีดได้?
แม้แต่ตัวอย่างแรกก็ยังมีส่วนที่เท้าลื่นไปกับพื้น หรือโดนวัตถุขวางจนไปข้างหน้าไม่ได้แต่กลับเหมือนเดินอยู่กับที่แล้วลื่น ซึ่งค่อนข้างขัดตา
สงสัยว่าปัญหาแบบนี้จะถูกแก้ได้เมื่อไร
แน่นอนว่าเอนจินเองน่าทึ่งมาก และเอฟเฟกต์ภาพกับระบบต่าง ๆ ก็อยู่ในระดับดีที่สุดเท่าที่เคยเห็นมา
RDR2 มีแอนิเมชันที่สมจริงมาก แต่ความรู้สึกตอนควบคุมจะออก “ลอย ๆ” อยู่บ้าง
โดยส่วนตัวผมชอบการเคลื่อนไหวที่ฉับไว คือกดซ้ายแล้วตัวละครบนจอก็ขยับไปทางซ้ายทันที ระบบแอนิเมชันที่ดูสมจริงกว่าจะทำให้เกิดความหน่วงจนกว่าแอนิเมชันเท้าจะ “ตามทัน” อินพุตของผู้เล่น
แต่การทำ raycasting และคำนวณ IK ต่อเนื่องไม่ได้ฟรี จึงต้องแลกกับประสิทธิภาพ และยังชนกับเรื่องการตอบสนองด้วย
หลายเกมเลือกการเคลื่อนที่ที่เร็วกว่าและการควบคุมที่ตอบสนองไวกว่า สรุปคือในเชิงเทคนิคปัญหานี้ถูกแก้มาหลายปีแล้ว แต่ก็เหมือนทุกองค์ประกอบของเกมดีไซน์ มันคือการเลือกและการประนีประนอม
เป็นวิธีที่หลายที่ใช้ รวมถึง Naughty Dog ด้วย อย่างไรก็ตาม เช่นเดียวกับคอมเมนต์อื่น ๆ ความตึงเครียดพื้นฐานระหว่างการตอบสนองกับความแม่นยำของแอนิเมชันยังคงอยู่
ใน Control ซึ่งเป็นผลงานก่อนหน้าของ Northlight อาการนี้น้อยกว่า [2]
[1] https://youtu.be/jQb07FHJ-bQ?t=628
[2] https://youtu.be/fcDK6tnx4vM?t=6700
จริง ๆ แล้วเป็นเรื่องเกี่ยวกับ อัลกอริทึม ที่ผสมแอนิเมชันเพื่อให้การเปลี่ยนผ่านดูเป็นธรรมชาติ
รู้สึกสดใหม่ที่ได้เห็นสิ่งอื่นที่ไม่ใช่เกมอีกเกมที่ใช้ Unreal Engine
การมี เอนจินภายในบริษัท ของตัวเองคงยากอย่างมหาศาล ตัวเอนจินเองก็เป็นปัญหา แต่เครื่องมือสำหรับสร้างเลเวล แอนิเมชัน และอื่น ๆ อาจยากยิ่งกว่าด้วยซ้ำ
ถึงอย่างนั้นก็น่าจะมีข้อดีอยู่ การควบคุมสถาปัตยกรรมระดับต่ำได้มากขึ้นทำให้มีโอกาสปรับแต่งประสิทธิภาพมากขึ้น ซึ่งยากกว่าในเอนจินอเนกประสงค์อย่าง Unreal
อยากเล่นเกมนี้เร็ว ๆ
ผมยังไม่เข้าใจว่าทำไมการคอมไพล์ shader ถึงทำให้กระตุก และเอนจินภายในบริษัทอื่น ๆ ส่วนใหญ่ไม่มีปัญหานี้ ทำไมถึงยังไม่ดีขึ้นก็ไม่รู้ ต่อให้มีอัปเดตแก้ไขออกมาพรุ่งนี้ ก็คงต้องใช้เวลาอีกหลายปีกว่าเกมต่าง ๆ จะนำไปใช้ได้
ในเมื่อมีเอนจินสำเร็จรูปพร้อมคอมมูนิตี้ใหญ่ ๆ อยู่มากมายขนาดนี้ ถ้าจะทำเองก็คงต้องจำเป็นต้องมี อำนาจควบคุมเต็มรูปแบบ จริง ๆ
ชอบโทนของบทความ
เช่น ชอบส่วนที่บอกว่าทีมการตลาดคงพูดว่า “ตัวละครตอบสนองได้ดีและมีชีวิตชีวามากกว่าที่เคย” แต่ในโน้ตภายในของทีมพัฒนาจะเขียนว่า “ตัวละครไม่ชนหรือไปติดกับวัตถุในพื้นที่แคบ”
ทั้งประโยคคือการตลาด และมุกตลกในนั้นก็เป็นการตลาดด้วย
สงสัยว่าตอนนี้ Remedy คิดอย่างไรกับการใช้ ภาษา D ใน ecosystem ของตน ถ้ายังใช้อยู่ ก็อยากเห็นว่าระหว่างพัฒนา AW2 เจอปัญหาอะไรบ้าง
เอกสารอ้างอิง: Using an Emerging Language in Quantum Break (https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdceurope201...)
DConf 2016: Quantum Break: AAA Gaming With Some D Code -- Ethan Watson (https://www.youtube.com/watch?v=7YjLW7anNfc)
ที่แน่ ๆ ตอนนี้ก็ไม่ได้กำลังหานักพัฒนา D อยู่
ถ้าอยากขุดหาต้นทาง ลิงก์นี้ใช้เป็นจุดเริ่มได้: https://forum.dlang.org/post/lymybpygzfalbdgoaizr@forum.dlan...
คนที่เคยนำเสนอเรื่องนั้นไม่ได้ทำงานที่นั่นแล้ว และเมื่อเห็นที่ใหญ่ ๆ อย่าง Facebook ก็เลิกใช้ D ไปแล้ว ก็ดูเหมือนคงไม่ได้ใช้ต่อ แต่ก็อยากให้พิสูจน์ได้ว่าคิดผิด
ถ้าคนนั้นออกไป หรือย้ายออกจากตำแหน่งที่สามารถ contribute และ maintain ได้ มันก็มักจะค่อย ๆ ถูกแทนที่ เว้นแต่ว่าทีมที่เหลือและสตูดิโอจะสนับสนุนและยอมรับจริง ๆ
ได้ยินมาว่ามีคนหนึ่งที่ผลักดันให้เขียนด้วย D แต่ไม่รู้ว่ายังอยู่หรือเปล่า
จำได้ว่าทีมบางส่วนที่เคยทำคอนเทนต์ระดับท็อปบน Unreal Marketplace ก็มีส่วนร่วมกับเกมนี้ด้วย
https://mawiunited.com/
เป็นคอนเทนต์ที่ยอดเยี่ยม อยากให้มีสตูดิโอที่ทำ คอนเทนต์ UE5 แบบนี้ออกมามากขึ้น
น่าสนใจที่พวกเขาเปลี่ยนไปใช้ Luau ของ Roblox เป็นสภาพแวดล้อมสคริปต์
ผมสงสัยมาตลอดว่าทำไมในเทคโนโลยีเกมถึงมีหลายที่ใช้ Lua สำหรับสคริปต์กันมากขนาดนี้ โดยเฉพาะแม้แต่ตอนออกแบบตั้งแต่ต้น
อะไรก็ตามที่ใช้ C runtime ได้ ก็ฝัง Lua scripting เข้าไปได้
นั่นจึงเป็นเหตุผลที่มันถูกใช้เหมือนตัวเลือกพื้นฐานมาตั้งแต่ Baldur’s Gate 1 ไปจนถึง Warcraft III และเกมยุคใหม่อย่าง Roblox
การเคลื่อนไหวของตัวละครยังรู้สึกเป็น uncanny valley อยู่พอสมควร
ในวิดีโอ “ตัวควบคุมตัวละครแบบ voxel” ท่าเดินดูเหมือนลื่นไถล และช่วงไม่กี่วินาทีแรกของ “การเคลื่อนที่ของ NPC” การเดินก็ดูแปลก ๆ
น่าจะเป็นเพราะแต่ละก้าวเหมือนกันเป๊ะ และใช้ระยะก้าวเท่ากันหมด เลยทำให้ตัวละครเคลื่อนไหวแบบเข้าจังหวะกันจนน่าอึดอัด
ช่วงท้ายวิดีโอที่ตัวละครแต่ละตัวสลับระหว่างเดินกับวิ่งเอง จะเห็นการเคลื่อนไหวหลากหลายกว่าและดูสมจริงขึ้นมาก สงสัยว่าทำไมการใส่รายละเอียดความแตกต่างของการเคลื่อนไหวให้มากขึ้นโดยรวมถึงทำได้ยากขนาดนี้
แต่เพื่อสนับสนุนประเด็นนั้น NPC ฝ่ายมิตรแทบทั้งหมดจะยืนอยู่เฉย ๆ ส่วนในพื้นที่ศัตรู พอศัตรูกรูกันเข้ามา คุณก็จะไม่มานั่งดูวิธีเดินของมันอยู่แล้ว และยังไงก็ถูกหมอกบังอยู่ด้วย
ส่วนตัวมองว่า Control เป็น tech demo ของทั้งหมดนี้ นั่นยังอธิบายได้ด้วยว่าทำไมจำนวนศัตรูถึงน้อยกว่ามาก และถูกจัดวางเป็นเรื่องสยองขวัญ
งั้นแปลว่าพวกเขามีทั้ง เอนจินเกม ECS, renderer ระดับ AAA, เทคโนโลยีคล้าย Nanite, เอนจิน scripting บน Lua และ facial animation ระดับ Hollywood เลยใช่ไหม?
ควรปล่อยเอนจินออกมาได้แล้ว น่าจะเป็นคู่แข่งที่แข็งแกร่งของ Unreal ได้ ด้วย ECS จึงขยายสเกลได้มากกว่า และเขียนด้วย Luau ก็ง่ายกว่า
ได้รู้เรื่องนี้แบบเจ็บปวดตอนพยายามซื้อเกมบน Linux ดังนั้นถ้าไปแข่งกับ Unreal ก็มีโอกาสสูงที่จะทำให้ความสัมพันธ์ฝั่งนั้นแย่ลง
แต่การเปลี่ยน ซอฟต์แวร์ภายใน ให้กลายเป็นผลิตภัณฑ์ที่คนอื่นใช้ได้ เป็นคนละเรื่องกันโดยสิ้นเชิง
จริงอยู่ที่ Remedy นำ meshlet pipeline มาใช้ แต่ในงาน rendering ระดับล้ำสมัย ตอนนี้มันแทบจะกลายเป็นกระแสหลักแล้ว ผมยังไม่เห็นการกล่าวถึงว่าใช้ compute shader เพื่อเรนเดอร์สามเหลี่ยมเล็ก ๆ จริง ๆ แบบ Nanite แต่อาจเป็นผมที่พลาดไปก็ได้
ตอนนี้ Alan Wake 2 แม้ปิด ray tracing ก็รัน High settings ได้แบบฉิวเฉียดเท่านั้น
ในเชิงภาพเป็นเอนจินที่น่าทึ่ง แต่ส่วนตัวคิดว่า สเปกที่ต้องการ สูงเกินไป
สถาปัตยกรรม Entity-Component-System (ECS) ก็ถูกใช้ในเกมเอนจินโอเพนซอร์สรุ่นใหม่ ๆ อย่าง Bevy[1] ด้วย
แม้จะไม่ได้ทำเกมมานานแล้ว แต่พอได้ยินเรื่องสถาปัตยกรรมที่ลดทอนแนวทางเชิงวัตถุอันหนักและซับซ้อนที่เคยเห็นบ่อยในเกม ก็ทำให้อยากกลับไปลองลงมือดูอีกครั้ง
[1]: https://bevyengine.org/
เริ่มได้รับแรงส่งมาตั้งแต่ต้นทศวรรษ 2000 และแม้ตอนนี้จะยังไม่ใช่สิ่งที่ใช้กันทั่วไป แต่ก็ถูกใช้มายาวนานเหมือนเป็นพื้นฐานอย่างหนึ่ง รวมถึงในเอนจินโอเพนซอร์สบางตัวด้วยเช่นกัน
ตัวอย่างเช่น ดูได้ที่ https://github.com/Adelost/entity-component-systems-study#re...