游戲行業的人工智能設計:AI的設計和實施

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統


  文 / Donald Kehoe

  在過去的幾十年中,游戲行業取得了巨大發展。從 Pong* 和Pac-Man*等讓游戲玩家短暫逃離現實的簡單游戲發展為魔獸世界* 和使命召喚 4*這樣讓游戲玩家真正喜愛的復雜游戲。娛樂軟件協會 (ESA) 曾指出,如今的游戲玩家平均有 13 年的游戲經驗,已經習慣于看到每款新游戲變得越來越復雜、吸引人且智能。如今,游戲開發人員的挑戰在于如何不斷突破極限,開發出越來越引人注目的游戲。計算機控制的人工智能 (AI) 已經發生了多種形式的演變,以滿足測試要求。然而,為游戲玩家設計符合其動作并促進玩家數量增長的自適應對手并非易事。

  第一部分: 設計和實施

  對于游戲行業而言,人工智能是什么?


  從最基本的層面而言,“人工智能”包括模仿其他玩家或玩家所代表實體(即可以響應或付諸實踐的所有游戲元素——從玩家、飛彈到健康皮卡)的行為。 關鍵概念是模仿行為。也就是說,游戲行業的人工智能更加人工化,而智能程度較低。系統既可以是基于規則的簡單系統,也可以是旨在挑戰玩家作為對立軍隊指揮官的復雜系統。

  游戲行業的人工智能與傳統的人工智能觀點有何不同

  對人工智能的傳統研究旨在創建真正的智能——盡管是通過人工手段。有些項目,如麻省理工學院 (MIT) 的Kismet* 項目,正在嘗試創建一種能夠進行學習、社交互動并表現情感的人工智能。在本文撰寫之時,麻省理工學院正在創建一種有幼兒教師和可喜成果的人工智能。

  對于如今的游戲而言,真正的人工智能已經超出了一款娛樂軟件的要求。游戲人工智能不需要具備感受力或自我感知能力(事實上沒有最好);它不需要了解除游戲之外的任何信息。游戲人工智能的真正目標是模仿智能行為,為玩家提供一種可信的挑戰——即玩家可以克服的挑戰。

  游戲人工智能的目標

  人工智能可以在游戲中扮演多種角色。它可以是一套用于管理游戲世界中實體行為的一般規則。您也可以考慮實體遵循一類人工智能的預制腳本事件。 例如在游戲 F.E.A.R* 中,用于恐嚇玩家和預示未來事件的令人毛骨悚然的小女孩就是一個預制腳本事件。提到人工智能和游戲時,大多數人都會想到多人游戲中由電腦控制的玩家。不過,所有這些都是人工智能能夠實現的不同角色。

F.E.A.R.(Vivendi Universal)在一類人工智能中使用腳本事件


  游戲人工智能的基本要素

  根據人工智能要實現的角色的性質,系統需求可能非常少。系統越復雜,人工智能的要求就越多。基本需求無非是運行 AI 所需的處理時間。更復雜的系統需要一些感知人工智能環境的手段,玩家行為記錄和一些評估先前決策成功度的手段。

  決策

  人工智能背后的核心概念是決策。為了執行這些選擇,智能系統需要能夠使用人工智能系統影響實體。您可以通過“人工智能推送”或“實體推送”戰略管理這一執行。

  人工智能推送系統通常將人工智能系統隔離為游戲架構的獨立元素。此類戰略通常采取獨立線程或線程的形式,線程中的人工智能花時間計算給出游戲選項的最佳選擇。當人工智能制定決策時,這一決策將隨后傳播至涉及的實體。這一方法在實時戰略游戲中最有效,因為在這種游戲中,人工智能關注大局。

  實體推送系統最適合包含簡單實體的游戲。 在這些游戲中,實體會在其“思考”或自我更新時調用人工智能系統。 這種方法非常適合于包含大量不需要經常思考的實體的系統,如射手系統。這一系統還可以從多線程技術中受益,但需要一些額外的計劃(詳情請見Orion Granatir 的多線程人工智能上的文章)。

  基本感知

  為了使人工智能作出有意義的決策,它需要感知周圍環境的某種方式。在較簡單的系統中,這種感知可能只是對玩家實體的位置進行簡單的檢查。隨著系統的要求越來越苛刻,實體需要找出游戲世界的主要特點,如可行的穿行路徑、提供掩護的地形和沖突地區。

  設計人員和開發人員面臨的挑戰在于找出一種方法,以確定對智能系統至關重要的主要特點。例如,掩護可以由關卡設計師預先確定,或可以在加載或編譯地圖時進行預先計算。有些元素可以動態評估,如沖突地圖和緊迫威脅。

  基于規則的系統

  智能系統采用的最基本形式是基于規則的系統。這一系統延伸了“人工智能”這一術語。 一組預設行為用于確定游戲實體的行為。 對于各種行為,總體結果可以是一個雖然涉及的實際智能很少但并不明顯的行為系統。

  在基于規則的系統方面,Black Jack 莊家就是一個很好的例子(無論是視頻 Black Jack 還是真正的 Black Jack)。 莊家遵循一個簡單規則:當牌點數為 17 或不到 17 時必須要牌。一般玩家的看法是莊家有競爭力。玩家會設想一個比其當前敵手更有能力的對手(除非賭場經營者公布莊家遵守的規則)。

  Pac-Man 是這一系統的典型應用。四個鬼糾纏著玩家。每個鬼都遵循一個簡單的規則集。一個鬼一直左轉,另一個一直右轉,一個以隨機方向轉彎,最后一個轉向玩家。每個鬼的移動方向很容易弄清楚,玩家能夠輕松避開他們。但作為一個集體,這些鬼的移動方式看起來就復雜的多,相互協調配合共同尋找玩家。事實上,檢查玩家位置的只有最后一個鬼。

控制Pac-Man 鬼的規則集的直觀圖,其中的箭頭代表將作出的“決策”。


  正如本例所示,規則不需要硬編碼:規則可以基于感知到的狀態(如最后一只鬼)或實體的可編輯參數。進攻、勇氣、視線范圍和思考速度等變量均可以產生更多樣化的實體行為,即使是在基于規則的系統中。基于規則的系統是最簡單的人工智能結構。 更復雜的智能系統基于一系列條件規則構建并由這些規則管理。在戰術游戲中,規則控制著要使用的策略。 在策略游戲中,規則控制著建造順序和應對沖突的方式。 基于規則的系統是人工智能的基礎。

  有限狀態機作為人工智能

  有限狀態機 (FMS) 是一種概念化和實施在整個生命周期中擁有不同狀態的實體的方式。“狀態”可以代表實體所處的物理狀態,或者也可以代表實體展示出的情感狀態。 在本例中,情感狀態并不是真正人工智能的情感狀態,而是融入游戲環境的預定行為模型。

  下面是一個人工智能系統的常見狀態示例,針對一個包含隱性元素的游戲:

典型 FSM 中的狀態布局,其中的箭頭表示可能的狀態變化


  閑置。在這種狀態下,實體會被動地站著或沿固定路線走動。感知水平低,不常檢查游戲玩家的聲音。只有這一實體受到攻擊或“看到”玩家直接在其前面時,它的狀態才會更改為較高的認知水平。

  感知。這一實體主動尋找入侵者。它會經常檢查游戲玩家的聲音,比閑置實體看得更遠更寬泛。如果這一實體注意到礙事的某物(在其檢查范圍之內),如打開的門、無意識的尸體和用過的彈殼等,它將變為好奇狀態。

  好奇。這一實體意識到發生了不尋常的事情。為了證實這一行為,該實體將放棄其正常崗位或路線,移動到感興趣的區域,如前面提到的打開的門或尸體。 如果玩家被發現,實體將變為警戒狀態。

  警戒。在這種狀態下,實體已經注意到玩家并將開展追捕玩家的行動:移入攻擊范圍、提醒其他警衛、發出警報并尋找掩護。 當實體在敵人范圍內時,它將切換到攻擊狀態。

  攻擊。在這種狀態下,敵人已經參與到與玩家的戰斗中來。 實體會在可能時攻擊玩家,并在不同的攻擊回合之間尋找掩護(根據攻擊緩和時間或裝彈時間)。 只有在消滅敵人后(恢復正常)、敵人移動到射程之外(回到警戒階段)或實體死亡(進入死亡狀態)時,實體才會離開這個狀態。如果實體的生命值很低,它可以切換為逃跑狀態,這取決于特定實體的膽量。

  逃跑。在這種狀況下,實體會試圖逃離戰斗。根據游戲的不同,可能會有尋找生命值或離開游戲區域的次級目標。當實體找到生命值后,它可能會返回到警戒狀態并恢復戰斗力。 “離開”的實體只是刪除了而已。

  死亡。在有些游戲中,死亡狀態可能不是完全閑置。死亡或瀕死的實體可能會“大聲呼叫”,從而提醒附近的實體,或進入神志不清的狀態,醫師可使其復活(并返回到警戒狀態)。

  在實體系統中實施 FMS 至少有兩種簡單方法。第一種是讓每種狀態成為一種可以檢查的變量(通常通過大量的開關語句)。 第二種方法是使用函數指針(C 語言)或虛擬函數(C++ 和其他面向對象的語言)。

  自適應人工智能

  前面的章節討論了如何設計融入游戲預定義事件的智能系統。對于大多數游戲而言,只要設計縝密且對智能實體的目標有清晰的認識,這就足夠了。 如果游戲需要更多的變化并為玩家提供更好、更有活力的對手,人工智能可能需要具備增長和獨自適應的能力。

  自適應人工智能通常用于格斗游戲和策略游戲,這些游戲具有深層次的機制和無數的游戲選項。若要為玩家提供持續的挑戰且避免玩家最終找出打敗電腦的最佳策略,人工智能需要具備學習和適應的能力。

  預測

  有效預測對手下一步行動的能力對于自適應系統至關重要。可以使用不同的方法,如過去模式識別(在未來的文章中介紹)或隨機猜測,以確定要采取的下一步行動。

  適應的一個基本方法是記錄過去的決策并評估成功程度。人工智能系統會記錄一個游戲玩家在過去所做的選擇。過去的決策必須以某種方式進行評估。 (如在格斗游戲中,獲得的優勢或損失的生命值或時間優勢可以作為成功的衡量指標。) 可以通過收集有關這種情況的更多信息來為決策提供一些背景,如相對生命值、以前的行為和關卡定位(當玩家走投無路時會采用不同的游戲方式)。

  可以通過評估這些歷史信息來確定以前行為的成功程度以及是否需要改變戰術。在構建過去行為列表之前,可以使用一般戰術或隨機行為來引導實體的行為。 這一系統可以與基于規則的系統和不同的狀態相結合。

  在戰術游戲中,過去的歷史可以決定用于對付玩家團隊的最佳戰術,如防守、進攻、狂暴或一些平衡的游戲方法。在策略游戲中,可以基于玩家發現一個部隊中最佳的分隊組合。在由人工智能控制玩家支持角色的游戲中,通過了解玩家的行為方式,自適應人工智能可以更好地補充玩家的自然風格。

  總結

  人工智能是一個復雜的研究領域。 根據游戲需求的不同,游戲行業的人工智能會采用不同的形式,從計算機控制器實體的簡單規則集到更先進的自適應系統。 在游戲行業中應用人工智能概念對于提高電子娛樂產品中虛擬人物的可信度必不可少,但它并不是一個不可能的挑戰。這一系列的下一篇文章將討論人工智能在感知和導航復雜環境方面所面臨的挑戰,以及如何應對這些挑戰。

  關于作者

  Donald "DJ" Kehoe: 作為新澤西理工學院信息技術項目的導師,DJ開拓了游戲開發領域的專業化之路,并教授該項目中有關游戲架構、編程和關卡設計的許多課程,以及集成 3D 顯卡與游戲的課程。目前他正在攻讀生物醫學工程博士學位,運用游戲和虛擬現實來增強神經肌肉康復的效果。


GameRes游資網 2015-08-23 08:54:31

[新一篇] 莉莉絲CEO王信文:病毒系數是比留存率更重要,創新度影響病毒系數

[舊一篇] Top10 魏晉時期10個狂炸天的文人
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表