AI在視訊遊戲中的應用

遊資網發表於2019-09-19
AI在視訊遊戲中的應用

(原作者:)Written by Laura E.Shummon Maass and Andy Luc

大多數人可能會認為,在過去幾年中釋出的大多數遊戲都給非玩家控制的角色、生物或動物上邊使用了非常複雜的AI技術。然而,許多視訊遊戲開發者對在遊戲中應用先進的AI技術是猶豫不決的,因為他們害怕失去對整體玩家體驗的控制。事實上,在視訊遊戲中使用AI技術的目標,不是要給玩家創造一個無與法擊敗的對手,而是要在很長一段時間內最大限度地提高玩家的參與度和體驗感。

如果你選擇了新遊戲並開始玩,你會享受一次又一次地被完全擊敗,還是更願意與某個略高於你水平的對手戰鬥,這樣你就可以隨著時間的推移學習和提高?絕大多數玩家可能會選擇後者。這並不意味著AI技術在現代遊戲領域沒有用武之地,只是意味著它的目的與我們最初期望的不同。我們想創造的與玩家互動和對戰的AI,不最厲害的,而是最令人愉悅的。

遊戲AI的歷史

AI是一個含義非常廣泛的術語,它只表示能夠從玩家的行為中學習的模型。Wolfenstein 3D早在1992年釋出,甚至那場比賽中的士兵也包含了A.I.的基本形式。有限狀態機(FSM)演算法是一個相對簡單的AI,設計師建立了一個包含所有可能事件的列表,這些都可以有機器人體驗。然後設計師又針對每種場景,設定了機器人的具體反應(Lou,2017)。我們可以想象1992年,Wolfenstein 3D的開發人員考慮了敵方士兵可能遇到的所有可能情況。在他們的視野中可以開啟一扇門,Blazkowicz(Wolfenstein系列劇中的英雄)可以走進視野,他們可以從後面被擊中,他們可能會看不到Blazkowicz等等。開發人員會彙總這個列表,並且對於每種情況,他們會告訴機器人它應該做什麼。下邊是Lou的文章中一個視覺效果圖:

AI在視訊遊戲中的應用
Figure 1(Lou,2017)

這顯然是一個簡單的例子。我們可以想象,我們構建的細節會變得越來越複雜。機器人在最終放棄之前會使用多長時間去搜尋Blazkowicz?如果他們放棄了,他們應該留在原地還是回到重生點(spawning point)?該列表很快就會變得非常長且非常詳細。在FSM中,遊戲的開發人員將為每種情況分配特定操作。

FSM演算法並不適合所有的遊戲。想象一下,如果在策略遊戲中使用FSM。如果機器人被預先程式設計為每次都以相同的方式響應,那麼玩家將很快學會如何擊敗機器人。這會產生重複的遊戲體驗,正如您所料,這對玩家來說是不愉快的。建立蒙特卡羅搜尋樹(MCST)演算法就是為了解決FSM的重複性問題。MCST的工作方式是首先確定機器人針對當前狀況,可用的所有操作。然後,對於每個可能的操作,分析玩家可以響應的方式。之後它會考慮針對玩家所有可能的操作,它可以作出的迴應等。您可以想象這棵樹很增長得非常快。下圖展示了MCST的工作方式:

AI在視訊遊戲中的應用
Figure 2(Lou,2017)

圖2突出顯示了使用MCST的計算機在針對人類元件進行移動之前所經歷的過程。它首先檢視它具有的所有選項,在上面的示例中,這些選項要麼是防禦,要麼是提升技能,要麼是攻擊。然後,它構建了一棵樹,預測了此後每次潛在操作成功的可能性。上面我們可以看到成功可能性最高的選項是“攻擊”(因為暗紅等於更高的獎勵概率),因此計算機選擇攻擊。當玩家進行下一步動作時,計算機將重複重複樹木構建過程。

想象一下像“文明”這樣的遊戲,計算機可以做出大量的選擇。如果為每個可能的選擇和整個遊戲可能的每個場景構建詳細的樹,計算機將花費很長時間。它絕不會採取行動。因此,為了避免這種巨大的計算,MCST演算法將隨機選擇一些可能的選項,並僅為所選擇的樹構建樹。這樣,計算速度更快,計算機可以分析哪個選擇的選項具有最高的獎勵可能性。

AI在《異形:隔離(Alien:Isolation)》

在視訊遊戲中,一種最近比較流行的高階AI形式,是Creative Assembly公司出品的《異形:隔離》的異形。雖然對於AI如何在幕後工作可能帶來一些誤解,但是它以一種很有效的方式,創造了一個玩家很容易獲得參與感和意外感的遊戲環境。

遊戲中的異形角色,使用了兩個AI驅動力來控制它的移動和行為:管理者AI(Director AI)和異形AI(Alien AI)。管理者AI是一個被動的控制器,負責創造一個愉快的玩家體驗。為了實現這一目標,管理者AI需要時刻知道玩家和異形在哪裡。但是,它並沒有與異形分享這些資訊。管理者AI關注所謂的威脅測量儀(Menace Gauge),它基本上只是衡量預期玩家壓力水平的一個指標,這個因素由多種因素決定,例如異形與玩家的距離,異形在玩家附近花費的時間,看到玩家所花費的時間,在運動跟蹤器裝置上可見的時間量等。這個威脅測量儀通知異形的任務系統(Job Systems),這實際上只是異形的任務追蹤器。如果威脅測量儀達到一定水平,任務“搜尋新位置區域”的優先順序將增加,直到異形遠離玩家移動到一個單獨的區域。

行為決策樹:

在深入瞭解異形AI如何工作之前,重要的是先弄清楚通知決策過程的結構。異形AI使用包含100多個節點和30個選擇器節點的廣泛行為決策樹。想象一下下面的簡單示例:

AI在視訊遊戲中的應用
Figure 3(Simpson,2014)

行為樹的工作方式是從左到右提問題,成功的話允許沿樹繼續行進,而失敗將回到序列節點。過程如下:序列(sequence)->我餓了嗎?(成功)->序列(執行)->我有食物嗎?(成功)->序列(執行)->沒有敵人(成功)->序列(執行))->吃食物(成功)->序列(成功)->父節點(Simpson,2014)。在任何節點,如果其中一個節點返回(失敗),則整個序列將失敗。例如,如果“我有食物嗎?”問題得到的回答是失敗了,它就不會檢查周圍是否有任何敵人,它不會吃掉食物。取而代之的是,序列將失敗,該序列會結束。

序列顯然可以變得更加複雜,並且變得多層次。這是一個更深層的例子:

AI在視訊遊戲中的應用
Figure 4(Simpson,2014)

請記住,序列無論成功或失敗,它都會將結果返回給它的父節點。在上面的示例中,我們假設我們已經成功接近門,但由於門被鎖而且我們沒有鑰匙,未能開啟門。序列節點被標記為失敗。結果,行為樹路徑恢復到該序列的父節點。以下是此父節點可能的樣子:

AI在視訊遊戲中的應用
Figure 5(Simpson,2014)

所以,我們沒有開啟門,但我們還沒有放棄。我們的父節點將會以另一個序列供我們嘗試。這次它可能會通過視窗進入。異形AI有30個不同的選擇器節點和100個總節點,所以它會比這個例子指數級地更加複雜,但我希望這能讓你瞭解異形AI的工作模式。

(未完待續)

作者:張鑫
來源:UWA
原地址:https://zhuanlan.zhihu.com/p/83007037

相關文章