




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MMORPG游戲的人工智能(AI)和行為樹設(shè)計(jì)文/alchemistli什么是MMORPG的AI?玩MMORPG的地球人都知道,MMORPG的AI實(shí)在是弱智的要死。即使是在WOW這樣頂級的游戲中,AI也是有限得掉渣,絕大部分NPC都像一個木樁一樣,哪怕是精心設(shè)計(jì)的BOSS也就只有一些戰(zhàn)斗AI。盡管有很多人把動畫,或者自動尋路之類的功能也叫做AI,但是我們并不討論這種基本功能。我們討論的AI是指,可以使得NPC好像一個真人一樣活動的AI。擁有這樣AI的NPC看起來就不再是那個只有血條和攻擊力的模型,而給玩家的感受會是一個有信念、欲望和意圖的生命。從更廣泛的意義上說,如果整個游戲世界是“高AI”的,那么這個游戲世界會充滿著自由度。這意味著玩家可以在游戲中“創(chuàng)造”出前所未有的武器、科技甚至?xí)心芰Ω淖冋麄€游戲世界外貌和文明。如果真正出現(xiàn)這樣一款MMORPG,那么贏得粉絲們的驚聲尖叫應(yīng)該并不意外。品管中心孕育中的項(xiàng)目“失落的大陸”目前就正在向這個方向努力中,希望能夠取得一定水準(zhǔn)的突破。AI系統(tǒng)一個典型的AI系統(tǒng)包括,感知,導(dǎo)航和決策三個字系統(tǒng)。對于游戲來說,感知系統(tǒng)是可以“作弊”的,不需要NPC去“感知”世界,系統(tǒng)可以直接告訴NPC世界是怎樣的。而導(dǎo)航系統(tǒng),不屬于今天的討論范圍。而決策系統(tǒng)才是讓NPC看起來可以有自己的意圖和信念,所以我們接下來主要討論一下決策系統(tǒng)。AI決策系統(tǒng)的常見模型最早,游戲AI決策系統(tǒng)往往是這樣寫的:switch(自己){case"血量充足":打怪();break;case"快死了":補(bǔ)血();break;case"死了":游戲全局->Gameover();break;}復(fù)制代碼隨著硬件的提高,可以分給AI執(zhí)行的CPU時間越來越長,老板們對AI的要求自然也提高了,比如說老板可能會想出這樣的策略:血量80的時候用魔法補(bǔ)一補(bǔ)就行了,血量60的時候吃個小血瓶,血量40的時候吃大血瓶,血量20的時候趕快逃跑。于是AI程序員就需要找到上面這個switch,然后修改里頭的case。想象一下,萬一碰到了一個Dota高手當(dāng)老板,心中有著各種很NB的殺敵策略,需要隨時根據(jù)環(huán)境狀態(tài)判斷利用哪種策略。當(dāng)策略越來越多,很快,一個帶有上萬行代碼的函數(shù)就橫空出世了!如果這個時候遇到bug了,甭說修復(fù)了,僅僅是閱讀這個函數(shù)就恐怕就得嘔吐了。。。毫無疑問,上面的方法在遇到大量的狀態(tài)的時候會讓代碼崩潰,不過經(jīng)過無數(shù)前輩前仆后繼用各種切身努力,幫我們提出了一種又一種精簡代碼的手段。目前常見的AI模型包括FSM(有限狀態(tài)機(jī),包括HFSM分層有限狀態(tài)機(jī))和BehaviorTree(行為樹)兩大類。FSM(有限狀態(tài)機(jī))相對于false,類似于程序中的邏輯或。3)平行節(jié)點(diǎn)(ParallelNode):提供了平行的概念,無論子節(jié)點(diǎn)返回值是什么都會遍歷所有子節(jié)點(diǎn)。所以不需要像Selector/Sequence那樣預(yù)判哪個ChildNode應(yīng)擺前,哪個應(yīng)擺后。ParallelNode增加方便性的同時,也增加實(shí)現(xiàn)和維護(hù)復(fù)雜度。4)條件節(jié)點(diǎn)(Condition):屬于葉子節(jié)點(diǎn),判斷條件是否成立。5)執(zhí)行節(jié)點(diǎn)(Action):屬于葉子節(jié)點(diǎn),執(zhí)行動作,一般返回true。接下來我們看一個行為樹構(gòu)造的AI,這個AI的邏輯文字表述為,一個NPC在晚上需要執(zhí)行巡邏任務(wù)。而且如果天下雨的話,戶外的人是需要打傘的。程序大概流程如下1)先處理Basic_AI節(jié)點(diǎn),由于該節(jié)點(diǎn)是并行節(jié)點(diǎn),所以將會依次處理接下來兩個子樹,無論第一個子樹的返回值是什么。2)對于"打傘"節(jié)點(diǎn),由于該節(jié)點(diǎn)是順序節(jié)點(diǎn),所以會依次處理其子節(jié)點(diǎn),但是如果某個子節(jié)點(diǎn)返回false,那么該節(jié)點(diǎn)執(zhí)行停止執(zhí)行,并且返回false。因此執(zhí)行打傘動作會不會執(zhí)行取決于在它前面的兩個條件是否返回true3)執(zhí)行完"大傘"節(jié)點(diǎn)后,接下來必然會執(zhí)行守夜節(jié)點(diǎn),而守夜節(jié)點(diǎn)是選擇節(jié)點(diǎn),所以要么會執(zhí)行夜里巡邏,要么會執(zhí)行休息節(jié)點(diǎn)。夜里巡邏會不會這姓自然取決于條件節(jié)點(diǎn)"是晚上嗎"的返回值行為樹模型看似簡單,但是以下幾個優(yōu)點(diǎn)讓行為樹目前變成了復(fù)雜AI的主流模型A)靜態(tài)性越復(fù)雜的功能越需要簡單的基礎(chǔ),否則最后連自己都玩不過來。即使系統(tǒng)需要某些"動態(tài)"性,也應(yīng)該盡量使用靜態(tài)的行為樹來表示。Halo3相對于Halo2對BTAI的一個改進(jìn)就是去除了一些的動態(tài)性。原則就是保持全部Node靜態(tài),只是根據(jù)事件和環(huán)境來檢查是否啟用Node。靜態(tài)性直接帶來的好處就是整棵樹的規(guī)劃無需再運(yùn)行時動態(tài)調(diào)整,大大方便設(shè)計(jì)人員和編程人員,并且大大減少詭異的bug,同時這也為很多優(yōu)化和預(yù)編輯都帶來方便。B)直觀性行為樹可以方便地把復(fù)雜的AI知識條目組織得非常直觀。默認(rèn)的組合節(jié)點(diǎn)處理子節(jié)點(diǎn)的迭代方式就像是處理一個預(yù)設(shè)優(yōu)先策略隊(duì)列,也非常符合人類的正常思考模式:先最優(yōu)再次優(yōu)。此外,行為樹編輯器對優(yōu)秀的程序員來說也是唾手可得。C)復(fù)用性各種節(jié)點(diǎn),包括葉子節(jié)點(diǎn),可復(fù)用性都極高。D)擴(kuò)展性可以容易地為項(xiàng)目量身定做新的組合節(jié)點(diǎn)或修飾節(jié)點(diǎn)。還可以積累一個項(xiàng)目相關(guān)的節(jié)點(diǎn)庫,長遠(yuǎn)來說非常有價值。小結(jié)在瀏覽過行為樹和有限狀態(tài)機(jī)之后,大家很自然可以根據(jù)項(xiàng)目來選擇所用的模型。對于AI并不是太復(fù)雜的項(xiàng)目來說,選擇有限狀態(tài)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 古董購買合同范本
- 醫(yī)院垃圾房銷售合同范本
- 勘測技術(shù)服務(wù)合同范本
- 危房拆除合同范本
- 合同范例截范例
- 合同范例說明書
- 臺歷裝訂轉(zhuǎn)讓合同范本
- 農(nóng)機(jī)裝備租賃合同范本
- 發(fā)票到付款 合同范例
- 變更經(jīng)營人合同范例
- 基于核心素養(yǎng)下小學(xué)英語單元整體作業(yè)設(shè)計(jì)實(shí)踐研究 論文
- 風(fēng)電工作流程圖
- 社會救助公共基礎(chǔ)知識題庫及答案
- 《論文所用框架圖》課件
- 人教版三年級下冊說課標(biāo)、說教材
- 2022版《義務(wù)教育科學(xué)課程標(biāo)準(zhǔn)》試題及答案
- 《民法典》背景下違約精神損害賠償制度適用問題
- 松下機(jī)器人操作手冊
- 數(shù)字電路邏輯設(shè)計(jì)(第3版)PPT全套完整教學(xué)課件
- 境外道路貨物運(yùn)輸應(yīng)急預(yù)案
- 管理學(xué)-北京師范大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
評論
0/150
提交評論