人工智能是近來備受關(guān)注的一個(gè)話題。其實(shí)人工智能在游戲中早有引用,也就是被成為游戲AI的東西。AI的加入可以使游戲具有多的變化和可玩性,給玩家?guī)砀玫挠螒蝮w驗(yàn)。下面我們就來了解一下如何通過游戲AI的設(shè)計(jì)和實(shí)施達(dá)到這樣的效果。 在過去的幾十年中,游戲行業(yè)取得了巨大發(fā)展。 從《Pong》和《Pac-Man》等讓游戲玩家短暫逃離現(xiàn)實(shí)的簡單游戲發(fā)展為《魔獸世界》和《使命召喚》等讓游戲玩家真正喜愛的復(fù)雜游戲。娛樂軟件協(xié)會(huì) (ESA) 曾指出,如今的游戲玩家平均有 13 年的游戲經(jīng)驗(yàn),已經(jīng)習(xí)慣于看到每款新游戲變得越來越復(fù)雜、吸引人且智能。 如今,游戲開發(fā)人員的挑戰(zhàn)在于如何不斷突破極限,開發(fā)出越來越引人注目的游戲。 計(jì)算機(jī)控制的人工智能 (AI) 已經(jīng)發(fā)生了多種形式的演變,以滿足測試要求。 然而,為游戲玩家設(shè)計(jì)符合其動(dòng)作并促進(jìn)玩家數(shù)量增長的自適應(yīng)對手并非易事。 第一部分: 設(shè)計(jì)和實(shí)施 對于游戲行業(yè)而言,人工智能是什么? 從最基本的層面而言,“人工智能”包括模仿其他玩家或玩家所代表實(shí)體(即可以響應(yīng)或付諸實(shí)踐的所有游戲元素——從玩家、飛彈到健康皮卡)的行為。關(guān)鍵概念是模仿行為。也就是說,游戲行業(yè)的人工智能更加人工化,而智能程度較低。系統(tǒng)既可以是基于規(guī)則的簡單系統(tǒng),也可以是旨在挑戰(zhàn)玩家作為對立軍隊(duì)指揮官的復(fù)雜系統(tǒng)。 游戲行業(yè)的人工智能與傳統(tǒng)的人工智能觀點(diǎn)有何不同 對人工智能的傳統(tǒng)研究旨在創(chuàng)建真正的智能——盡管是通過人工手段。有些項(xiàng)目,如麻省理工學(xué)院 (MIT) 的Kismet項(xiàng)目,正在嘗試創(chuàng)建一種能夠進(jìn)行學(xué)習(xí)、社交互動(dòng)并表現(xiàn)情感的人工智能。 在本文撰寫之時(shí),麻省理工學(xué)院正在創(chuàng)建一種有幼兒教師和可喜成果的人工智能。 對于如今的游戲而言,真正的人工智能已經(jīng)超出了一款?yuàn)蕵奋浖囊?。游戲人工智能不需要具備感受力或自我感知能?事實(shí)上沒有最好);它不需要了解除游戲之外的任何信息。游戲人工智能的真正目標(biāo)是模仿智能行為,為玩家提供一種可信的挑戰(zhàn)——即玩家可以克服的挑戰(zhàn)。 游戲人工智能的目標(biāo) 人工智能可以在游戲中扮演多種角色。它可以是一套用于管理游戲世界中實(shí)體行為的一般規(guī)則。您也可以考慮實(shí)體遵循一類人工智能的預(yù)制腳本事件。例如在游戲 F.E.A.R 中, 用于恐嚇玩家和預(yù)示未來事件的令人毛骨悚然的小女孩就是一個(gè)預(yù)制腳本事件。提到人工智能和游戲時(shí),大多數(shù)人都會(huì)想到多人游戲中由電腦控制的玩家。不過,所有這些都是人工智能能夠?qū)崿F(xiàn)的不同角色。 F.E.A.R.(Vivendi Universal)在一類人工智能中使用腳本事件 游戲人工智能的基本要素 根據(jù)人工智能要實(shí)現(xiàn)的角色的性質(zhì),系統(tǒng)需求可能非常少。系統(tǒng)越復(fù)雜,人工智能的要求就越多?;拘枨鬅o非是運(yùn)行 AI 所需的處理時(shí)間。更復(fù)雜的系統(tǒng)需要一些感知人工智能環(huán)境的手段,玩家行為記錄和一些評(píng)估先前決策成功度的手段。 決策 人工智能背后的核心概念是決策。為了執(zhí)行這些選擇,智能系統(tǒng)需要能夠使用人工智能系統(tǒng)影響實(shí)體。您可以通過“人工智能推送”或“實(shí)體推送”戰(zhàn)略管理這一執(zhí)行。 人工智能推送系統(tǒng)通常將人工智能系統(tǒng)隔離為游戲架構(gòu)的獨(dú)立元素。此類戰(zhàn)略通常采取獨(dú)立線程或線程的形式,線程中的人工智能花時(shí)間計(jì)算給出游戲選項(xiàng)的最佳選擇。當(dāng)人工智能制定決策時(shí),這一決策將隨后傳播至涉及的實(shí)體。這一方法在實(shí)時(shí)戰(zhàn)略游戲中最有效,因?yàn)樵谶@種游戲中,人工智能關(guān)注大局。 實(shí)體推送系統(tǒng)最適合包含簡單實(shí)體的游戲。在這些游戲中,實(shí)體會(huì)在其“思考”或自我更新時(shí)調(diào)用人工智能系統(tǒng)。這種方法非常適合于包含大量不需要經(jīng)常思考的實(shí)體的系統(tǒng),如射手系統(tǒng)。這一系統(tǒng)還可以從多線程技術(shù)中受益,但需要一些額外的計(jì)劃(詳情請見Orion Granatir 的多線程人工智能上的文章)。 基本感知 為了使人工智能作出有意義的決策,它需要感知周圍環(huán)境的某種方式。在較簡單的系統(tǒng)中,這種感知可能只是對玩家實(shí)體的位置進(jìn)行簡單的檢查。隨著系統(tǒng)的要求越來越苛刻,實(shí)體需要找出游戲世界的主要特點(diǎn),如可行的穿行路徑、提供掩護(hù)的地形和沖突地區(qū)。 設(shè)計(jì)人員和開發(fā)人員面臨的挑戰(zhàn)在于找出一種方法,以確定對智能系統(tǒng)至關(guān)重要的主要特點(diǎn)。例如,掩護(hù)可以由關(guān)卡設(shè)計(jì)師預(yù)先確定,或可以在加載或編譯地圖時(shí)進(jìn)行預(yù)先計(jì)算。有些元素可以動(dòng)態(tài)評(píng)估,如沖突地圖和緊迫威脅。 基于規(guī)則的系統(tǒng) 智能系統(tǒng)采用的最基本形式是基于規(guī)則的系統(tǒng)。這一系統(tǒng)延伸了“人工智能”這一術(shù)語。一組預(yù)設(shè)行為用于確定游戲?qū)嶓w的行為。對于各種行為,總體結(jié)果可以是一個(gè)雖然涉及的實(shí)際智能很少但并不明顯的行為系統(tǒng)。 在基于規(guī)則的系統(tǒng)方面,Black Jack 莊家就是一個(gè)很好的例子(無論是視頻 Black Jack 還是真正的 Black Jack)。莊家遵循一個(gè)簡單規(guī)則:當(dāng)牌點(diǎn)數(shù)為 17 或不到 17 時(shí)必須要牌。一般玩家的看法是莊家有競爭力。玩家會(huì)設(shè)想一個(gè)比其當(dāng)前敵手更有能力的對手(除非賭場經(jīng)營者公布莊家遵守的規(guī)則)。 Pac-Man 是這一系統(tǒng)的典型應(yīng)用。 四個(gè)鬼糾纏著玩家。每個(gè)鬼都遵循一個(gè)簡單的規(guī)則集。一個(gè)鬼一直左轉(zhuǎn),另一個(gè)一直右轉(zhuǎn),一個(gè)以隨機(jī)方向轉(zhuǎn)彎,最后一個(gè)轉(zhuǎn)向玩家。每個(gè)鬼的移動(dòng)方向很容易弄清楚,玩家能夠輕松避開他們。但作為一個(gè)集體,這些鬼的移動(dòng)方式看起來就復(fù)雜的多,相互協(xié)調(diào)配合共同尋找玩家。事實(shí)上,檢查玩家位置的只有最后一個(gè)鬼。 控制Pac-Man 鬼的規(guī)則集的直觀圖,其中的箭頭代表將作出的“決策”。 正如本例所示,規(guī)則不需要硬編碼: 規(guī)則可以基于感知到的狀態(tài)(如最后一只鬼)或?qū)嶓w的可編輯參數(shù)。 進(jìn)攻、勇氣、視線范圍和思考速度等變量均可以產(chǎn)生更多樣化的實(shí)體行為,即使是在基于規(guī)則的系統(tǒng)中。 基于規(guī)則的系統(tǒng)是最簡單的人工智能結(jié)構(gòu)。更復(fù)雜的智能系統(tǒng)基于一系列條件規(guī)則構(gòu)建并由這些規(guī)則管理。在戰(zhàn)術(shù)游戲中,規(guī)則控制著要使用的策略。在策略游戲中,規(guī)則控制著建造順序和應(yīng)對沖突的方式?;谝?guī)則的系統(tǒng)是人工智能的基礎(chǔ)。 有限狀態(tài)機(jī)作為人工智能 有限狀態(tài)機(jī) (FMS) 是一種概念化和實(shí)施在整個(gè)生命周期中擁有不同狀態(tài)的實(shí)體的方式?!盃顟B(tài)”可以代表實(shí)體所處的物理狀態(tài),或者也可以代表實(shí)體展示出的情感狀態(tài)。在本例中,情感狀態(tài)并不是真正人工智能的情感狀態(tài),而是融入游戲環(huán)境的預(yù)定行為模型。 下面是一個(gè)人工智能系統(tǒng)的常見狀態(tài)示例,針對一個(gè)包含隱性元素的游戲: 典型 FSM 中的狀態(tài)布局,其中的箭頭表示可能的狀態(tài)變化 閑置。 在這種狀態(tài)下,實(shí)體會(huì)被動(dòng)地站著或沿固定路線走動(dòng)。感知水平低。不常檢查游戲玩家的聲音。只有這一實(shí)體受到攻擊或“看到”玩家直接在其前面時(shí),它的狀態(tài)才會(huì)更改為較高的認(rèn)知水平。 感知。 這一實(shí)體主動(dòng)尋找入侵者。它會(huì)經(jīng)常檢查游戲玩家的聲音,比閑置實(shí)體看得更遠(yuǎn)更寬泛。如果這一實(shí)體注意到礙事的某物(在其檢查范圍之內(nèi)),如打開的門、無意識(shí)的尸體和用過的彈殼等,它將變?yōu)楹闷鏍顟B(tài)。 好奇。 這一實(shí)體意識(shí)到發(fā)生了不尋常的事情。為了證實(shí)這一行為,該實(shí)體將放棄其正常崗位或路線,移動(dòng)到感興趣的區(qū)域,如前面提到的打開的門或尸體。 如果玩家被發(fā)現(xiàn),實(shí)體將變?yōu)榫錉顟B(tài)。 警戒。 在這種狀態(tài)下,實(shí)體已經(jīng)注意到玩家并將開展追捕玩家的行動(dòng):移入攻擊范圍、提醒其他警衛(wèi)、發(fā)出警報(bào)并尋找掩護(hù)。當(dāng)實(shí)體在敵人范圍內(nèi)時(shí),它將切換到攻擊狀態(tài)。 攻擊。 在這種狀態(tài)下,敵人已經(jīng)參與到與玩家的戰(zhàn)斗中來。 實(shí)體會(huì)在可能時(shí)攻擊玩家,并在不同的攻擊回合之間尋找掩護(hù)(根據(jù)攻擊緩和時(shí)間或裝彈時(shí)間)。只有在消滅敵人后(恢復(fù)正常)、敵人移動(dòng)到射程之外(回到警戒階段)或?qū)嶓w死亡(進(jìn)入死亡狀態(tài))時(shí),實(shí)體才會(huì)離開這個(gè)狀態(tài)。 如果實(shí)體的生命值很低,它可以切換為逃跑狀態(tài),這取決于特定實(shí)體的膽量。 逃跑。 在這種狀況下,實(shí)體會(huì)試圖逃離戰(zhàn)斗。根據(jù)游戲的不同,可能會(huì)有尋找生命值或離開游戲區(qū)域的次級(jí)目標(biāo)。 當(dāng)實(shí)體找到生命值后,它可能會(huì)返回到警戒狀態(tài)并恢復(fù)戰(zhàn)斗力。 “離開”的實(shí)體只是刪除了而已。 死亡。 在有些游戲中,死亡狀態(tài)可能不是完全閑置。死亡或?yàn)l死的實(shí)體可能會(huì)“大聲呼叫”,從而提醒附近的實(shí)體,或進(jìn)入神志不清的狀態(tài),醫(yī)師可使其復(fù)活(并返回到警戒狀態(tài))。 在實(shí)體系統(tǒng)中實(shí)施 FMS 至少有兩種簡單方法。第一種是讓每種狀態(tài)成為一種可以檢查的變量(通常通過大量的開關(guān)語句)。第二種方法是使用函數(shù)指針(C 語言)或虛擬函數(shù)(C++ 和其他面向?qū)ο蟮恼Z言)。 自適應(yīng)人工智能 前面的章節(jié)討論了如何設(shè)計(jì)融入游戲預(yù)定義事件的智能系統(tǒng)。 對于大多數(shù)游戲而言,只要設(shè)計(jì)縝密且對智能實(shí)體的目標(biāo)有清晰的認(rèn)識(shí),這就足夠了。如果游戲需要更多的變化并為玩家提供更好、更有活力的對手,人工智能可能需要具備增長和獨(dú)自適應(yīng)的能力。 自適應(yīng)人工智能通常用于格斗游戲和策略游戲,這些游戲具有深層次的機(jī)制和無數(shù)的游戲選項(xiàng)。若要為玩家提供持續(xù)的挑戰(zhàn)且避免玩家最終找出打敗電腦的最佳策略,人工智能需要具備學(xué)習(xí)和適應(yīng)的能力。 預(yù)測 有效預(yù)測對手下一步行動(dòng)的能力對于自適應(yīng)系統(tǒng)至關(guān)重要??梢允褂貌煌姆椒?,如過去模式識(shí)別(在未來的文章中介紹)或隨機(jī)猜測,以確定要采取的下一步行動(dòng)。 適應(yīng)的一個(gè)基本方法是記錄過去的決策并評(píng)估成功程度。人工智能系統(tǒng)會(huì)記錄一個(gè)游戲玩家在過去所做的選擇。過去的決策必須以某種方式進(jìn)行評(píng)估。 (如在格斗游戲中,獲得的優(yōu)勢或損失的生命值或時(shí)間優(yōu)勢可以作為成功的衡量指標(biāo)。) 可以通過收集有關(guān)這種情況的更多信息來為決策提供一些背景,如相對生命值、以前的行為和關(guān)卡定位(當(dāng)玩家走投無路時(shí)會(huì)采用不同的游戲方式)。 可以通過評(píng)估這些歷史信息來確定以前行為的成功程度以及是否需要改變戰(zhàn)術(shù)。在構(gòu)建過去行為列表之前,可以使用一般戰(zhàn)術(shù)或隨機(jī)行為來引導(dǎo)實(shí)體的行為。這一系統(tǒng)可以與基于規(guī)則的系統(tǒng)和不同的狀態(tài)相結(jié)合。 在戰(zhàn)術(shù)游戲中,過去的歷史可以決定用于對付玩家團(tuán)隊(duì)的最佳戰(zhàn)術(shù),如防守、進(jìn)攻、狂暴或一些平衡的游戲方法。在策略游戲中,可以基于玩家發(fā)現(xiàn)一個(gè)部隊(duì)中最佳的分隊(duì)組合。在由人工智能控制玩家支持角色的游戲中,通過了解玩家的行為方式,自適應(yīng)人工智能可以更好地補(bǔ)充玩家的自然風(fēng)格。 總結(jié) 人工智能是一個(gè)復(fù)雜的研究領(lǐng)域。根據(jù)游戲需求的不同,游戲行業(yè)的人工智能會(huì)采用不同的形式,從計(jì)算機(jī)控制器實(shí)體的簡單規(guī)則集到更先進(jìn)的自適應(yīng)系統(tǒng)。在游戲行業(yè)中應(yīng)用人工智能概念對于提高電子娛樂產(chǎn)品中虛擬人物的可信度必不可少,但它并不是一個(gè)不可能的挑戰(zhàn)。 責(zé)任編輯:黑色幽默 |
|