2021 年 7 月 22 日,以線上形式舉辦的世界最大級遊戲開發者會議 Game Developers Conference 2021 當中,由 miHoYo 的 Lead AI Programmer Shuo Xu 發表了以「’Genshin Impact’: Building Scalable AI System」為主題的演講。
《原神》(PC / PS5 / PS4 / iOS / Android)是一款 2020 年推出的開放世界 RPG,在手機與 PC 等平臺博得世界級的人氣。據說 Xu 先生是以負責人的身分參與設計該作的 AI 系統(在 3 年的製作下完成……)。本次演講,為各位介紹一款在廣大地圖展開的開放世界型線上遊戲,是透過什麼樣的 AI 建構而成。
最初為各位解說的是 AI 系統結構(AI architecture),《原神》採用了多種類型的 AI。
人類、野生動物、戰鬥中的 NPC 都分別採用個別的 AI,據說在推出的初期階段有 200 種以上的數量。因此孕育出遊戲設計師對於更有效率地製作出 AI 的工作流(Workflow)的需求。作為一款會持續改版更新的線上遊戲,管理這些相關事務的工作便是 AI 框架(AI framework)的職責所在。
最初是以較為陽春的方法透過 AI 框架來組織出行為樹(Behavior Tree),但是樹狀結構逐漸膨大,並且還有副行為樹與大量節點的連結,在追加新的邏輯(Logic)時變更樹狀結構已經是很複雜的工程,同時判斷難以持續維持這樣的體系。
從此開始建構出獨立的 AI 管道(AI Pipeline),能夠根據每個功能的推論模組(Inference Module)打散成不同的團體(Group),針對有需求的地方進行更新。接下來進入決策樹(Decision Tree)的部分。這是一項近似於行為樹的功能,但是僅只會做出各項決定與判斷的輕量化功能。以這些決策為基礎,決定發動技能或是進行移動等行為。具體的表現形態將以動畫呈現,而這部分則是透過傳輸適當的參數給動畫系統執行。這一連串的工作處理將在每一個框架的管理下進行運作。
講者表示,採用這項系統結構,能夠以模組分類的方式開發各項功能,並且在製作新種類 AI 的時候還可以組合原本既有的模組來進行使用。功能上來說都各自獨立,因此在開發新的 AI 功能模組的時候,也不會有對其他功能產生影響的疑慮。
也因此能夠賦予每個 NPC 個體不同的個性以及特殊能力。不只如此,就連 BOSS 級角色也能夠輕易實現出獨具特色的行動方式。
為了綜合滿足以上需求所開發的工具就是 Key State Manager。這是一項有限性的狀態機(State Machine),在戰鬥等時刻會啟動,根據 BUFF 的狀況或其他數值情況驅動。以此舉例的是 Fire Slime 的例子,遊戲設計師能夠編輯好適當的狀態轉移(State Transition),並組織進入 AI 的系統之中。
方才雖提到不太可行,但是為了提升 CPU 的計算能力仍然會採用多執行緒的作法。這部分的使用時機是在每個 AI 模組從主執行緒呼叫出來的時候,建立出工作執行緒(Worker thread)。然而,直接運作仍會對 AI 處理上造成較重的負擔,對此需要進行優化的作業,讓每個框架中 2~3ms 減少至 0.5ms 的目標。演講中並沒有提及具體作法如何,但能夠看出整體上投入相當的工程。
作為統整,為了管理廣大開放世界的 AI,需要建構出新型態的 AI 框架,龐大的道路探索資訊交由伺服器端來綜合處理,透過 LoD 減輕負荷等多元手段進行處理上的優化作業,才能實現出這等規模下的 AI 處理。能夠認識到支持當紅遊戲的諸項技術,著實是令人深感興趣的一堂課。