在視頻遊戲的人工智能(AI)中,效用系統提供了一種簡單而有效的方式來模擬非玩家角色(NPC)的行為。這套系統通過使用數字、公式和分數來評估各種可能行動的相對利益,從而為每種行動賦予效用值。根據這些效用值,系統能夠選擇當前情境下的“最佳”行為,這些行為會基於行為被數學定義後的表現而進行選擇。
效用系統的核心在於通過數學模型來決定行為,這種效率使得設計者可以專注於定義行為本身,而不必為選擇之間的優先順序而苦惱。
效用的概念歷史悠久,最早源於經濟學,並廣泛應用於心理學、社會學甚至生物學等領域。這一背景以及將事物轉化為數學的需求,使得在電腦程式設計中,自然演變成為設計和表達遊戲角色行為的一種方式。
與其他遊戲人工智能架構相比,效用AI的優勢之一在於它的“少手工編寫”。儘管效用系統中的行為通常都是個別創建的,但它們之間的交互和優先級並不需要設計師明確指定。例如,行為樹(BT)要求設計者按照優先級進行序列檢查以決定是否執行某個行為,只有當該行為(或樹的某個分支)未被執行時,系統才會檢查下一個行為。而在許多效用系統中,行為的優先順序是根據數學模型生成的分數自動排序的。
效用AI的設計使得開發者無需確定新的行為在整體行為網絡中的位置,只需定義該行為的具體效用即可。
數字、公式和分數在遊戲中的行為定義中已有數十年的歷史。例如,定義某種行為發生的百分比幾率(例如12%的機會執行行為X)是早期步入效用AI的一個簡單例子。然而,只有在21世紀初,這種方法才開始轉向更加正式化的框架,通常稱為“效用AI”。
在《模擬人生》(The Sims, 2000)中,NPC的當前“需求”(如休息、食物、社交活動)與可滿足此需求的物體或行動所賦予的分數相結合。這些值的組合為行動提供了一個分數,告訴玩家的角色應該做什麼。玩家雖然看不到具體的計算過程,但能夠清楚地感受到Sim角色的需求和遊戲中物體帶來的滿足程度,這實際上是遊戲的核心機制。
在《模擬人生》系列的開發中,Richard Evans等人根據效用AI進行了深入探討。隨後,Dave Mark和他在ArenaNet的同事Mike Lewis,在2015年GDC AI峰會上介紹了一種完整的獨立架構——無限軸心效用系統(IAUS)。這一架構設計成為一個數據驅動的自給自足系統,一旦連接到遊戲系統的輸入和輸出,就不再需要太多的編程支持。
除了獨立架構,其他開發者也探討如何將效用計算整合到現有架構中。例如,Bill Merrill在《Game AI Pro》一書中撰寫了一段名為“將效用決策內建於現有行為樹中”的文章,展示了如何利用BT中的選擇器來實現基於效用的數學運算,將這一強大的混合體系融入BT的形式結構中。
效用系統的出現標誌著遊戲AI設計的一次重要進步,使開發者能夠高效地管理多種複雜行為,因此,未來我們是否會看到更多類似的效用架構在遊戲AI中普遍使用?