游戲程序開發(fā)是游戲的基礎,如何給游戲設定一個好編程將決定游戲的好壞。如果你還是游戲編程的新手,那么你可以從怪物AI的設計入手來深入了解游戲應該如何編程。
AI的設計,如果從程序口中說,可能會跳出諸如“行為樹”“ 決策樹”“有限狀態(tài)機”之類的程序名詞,聽起來很專業(yè)有木有?但是策劃沒學過腫么辦?不要急,我們先拋開這些程序名詞,僅僅從策劃設計角度來梳理一下怪物AI的策劃設計。當然,如果理解有錯誤,希望大家指出,共同學習進步。
怪物AI應該說是這是一個程序問題,如果從策劃的角度來說,作為設計者,則需要了解怪物AI整體的設計流程,這樣才能提出自己的需求,從而讓游戲戰(zhàn)斗的整體體驗符合設計預期,畢竟怪物AI也是屬于戰(zhàn)斗和體驗的重要部分。
1、什么是怪物AI?
在策劃意義上來說,怪物的AI實際上是一種交互體驗,換句話說就是怪物或NPC等虛擬角色在面對玩家操縱的角色的時能夠給出合適恰當反應。實際上,在游戲實際的設計中并不是一味地需求怪物的AI越高越好越真實越好。在游戲中,我們的目的是讓玩家和怪物或NPC的交互能夠產(chǎn)生一種近似真實的可對抗性,這種接近真實的對抗才是怪物AI設計的目的,這樣才能吸引玩家去繼續(xù)戰(zhàn)斗,甚至不斷的提示自己的裝備屬性和能力,引入進一步的對抗。
怪物的弱小和強大,聰明和愚蠢其實都是設計的需求。
所以說,怪物的AI設計目的是期望和玩家的交互中可控的,平衡的以及具有誘導性的。
2、怪物的ai包括什么?
怪物的AI說白了就是多種狀態(tài)之間的轉換,這種轉換是基于邏輯的,符合常理的逾期。
在怪物的狀態(tài)則是基于怪物的特色本身來設定的。
我們以《暗黑破壞神2》的骷髏怪AI為例:
在暗黑2中,在MonStats.txt這個文件中有aip1~aip8中這幾列設定怪物的ai行為參數(shù),暗黑2的檢定方式為隨機數(shù),即是以隨機取一個0到100的數(shù)字來和表中的參數(shù)數(shù)字比較,如果小于或者等于該數(shù)值則視為檢定成功,否則失敗。
Skeleton (骷髏)
描述:骷髏戰(zhàn)士是一個遲鈍的AI,它發(fā)現(xiàn)敵人后會試圖接近,有敵人在攻擊范圍內時則持續(xù)攻擊,但是它經(jīng)常會毫無理由的停止動作一段時間,站著發(fā)呆。
1. 當肉搏范圍內沒有敵人時,繼續(xù)接近敵人的幾率
2. 當肉搏范圍內有敵人時,攻擊敵人的幾率
3. par1,par3檢定失敗后等待的時間(單位:幀)
4. 攻擊時,以A2代替A1的幾率
5. n/a
6. n/a
7. n/a
8. n/a
通過這幾條我們可以看到在暗黑2中骷髏的行為方式實際上比較簡單,只有接近敵人,失敗等待以及攻擊等幾種簡單的狀態(tài),一旦隨機數(shù)進行判定,也只會從這幾種狀態(tài)中進行反應交互。
實際上來說暗黑2的ai設計思路主要還是以隨機數(shù)判斷加上條件行為為主,這個實際上也是目前絕大部分游戲采用的方式。
這種思路來說,雖然比較原始和傳統(tǒng),但是優(yōu)點在于簡單好維護,理解和調試比較簡單, 當然缺點也比較明顯,就是容易出現(xiàn)怪物行為單調,千人一面,因此也對怪物設計和條件的設定提高了要求。
如果來拆解暗黑3的AI,我們可以看到有這么幾條是必需的。
1、怪物AI的判定方式。一般采用隨機數(shù),也就是擲骰子的方式,這是比較常見的手法。用來判斷ai是否開始執(zhí)行。
2、怪物的范圍設定。
怪物的范圍簡單來說就是怪物的戰(zhàn)斗范圍,實際上也可以 的說是怪物的聽覺視覺,如果要說細一點,那還會分為戰(zhàn)斗前和戰(zhàn)斗中兩個階段,在戰(zhàn)斗前會有游蕩范圍,聽覺警戒范圍和視覺警戒范圍,而在戰(zhàn)斗中會區(qū)分為追擊范圍,近戰(zhàn)攻擊范圍、魔法攻擊范圍和呼喊范圍。
聽覺警戒范圍為360度,視覺警戒范圍為120到180度不等,二者可以共享半徑,也可以讓半徑不同。
∵體拆分如圖所示:
設置這些范圍有什么用處呢?這些范圍實際就是處理各種不同的AI行為條件的基礎了。
3、AI行為條目
AI的行為條目是只怪物所能夠采取的行為策略,在實際上,怪物的一個完整的流程是指怪物的從出生到死亡的整個過程。
出生,是指怪物的創(chuàng)建生成情況,這個比較好理解,這時對應的戰(zhàn)斗前范圍。怪物的狀態(tài)可能是游蕩,巡邏,靜止等各種行為條目,這些就屬于第一類的AI行為。
而后的情況,則是怪物面對的戰(zhàn)斗情況,即如何進入戰(zhàn)斗?一般來說,游戲會設定一個“仇恨值”或者主被動的設定。
仇恨列表相當于另一個系統(tǒng)了,這里就不展開說了,而對于AI來說,有了仇恨值,則可以進行一系列基于仇恨的行為了,比如進行攻擊,釋放技能,是否追擊,是否呼喊召喚支援等等。
最后就是怪物進入瀕死階段的一些特殊行為,這些是基于特定條件的比如HP血量下降到一定程度,怪物會有潰敗逃跑、呼叫救兵或者使用特殊技能比如“自爆”等其他行為。
以上就是基于條件行為相關的一類基礎的怪物AI行為的設計邏輯。屬于比較基礎的AI設計,當然也是比較好用的一類設計。
主要可以用表格或者文本來制作,當然具體的實現(xiàn)和調試則需要策劃和程序大神一起共同完善了。
隨著游戲制作技術的進步,關于怪物AI的制作也越來越工具化了,感謝程序大神們的提供的各類高端工具,這里也順便介紹一下,希望后續(xù)能和大家交流。
一類是基于編輯器的怪物AI編輯。比如暴雪一般會提供一個功能相當強大的游戲編輯器,在編輯器中則會有專門關于怪物AI的編輯內容。
比如星際2中的編輯器,推薦大家學習使用,這里就不展開說了。
其次是怪物AI的行為樹編輯。行為樹這個概念也是比較久的一個工具,不少商業(yè)引擎都支持行為樹的編輯,比如Spore(孢子),Crysis2(孤島危機)都是采用行為樹來制作對應的AI模型。
如圖示意(示意圖來源為網(wǎng)絡,僅做示意)
上圖所示為一個怪物的行為樹,作為策劃來說,需要關注的是上圖中幾類不同的顏色區(qū)分,代表了不同的行為,條件和控制節(jié)點。
在我看來,行為樹最好的方面在于如何去控制AI攜帶者的行為的路從初始到最終實現(xiàn)是如何走的,在行為樹上來有多個節(jié)點以及一系列控制條件幫助攜帶者的做出正確及時的選擇,這種選擇過程是充滿樂趣的。
相比之前的在excel表上的寫寫畫畫,這無疑是打開了新的一扇門。
從根節(jié)點從左往右可以看,怪物的每一步選擇以及判斷都會有對應的行為分支來控制,猶如一顆樹一樣枝繁葉茂,每一條分叉都有對應的行為和條件,就這樣多條分支的執(zhí)行來搭建成一個完整的行為模型。
因為我們的最終展現(xiàn)的仍然是怪物所執(zhí)行的行為結果,即為行為節(jié)點的內容,不同是執(zhí)行行為節(jié)點的判斷以及行為過程的控制力度,行為樹可以增加任意多的節(jié)點選擇分支,這就給怪物的行動判斷加多了更多的可能性,制作人員在理解上也會方便很多,當然更重要的優(yōu)點是程序上處理的優(yōu)勢,這里就不展開討論了?偠灾,怪物AI制作博大精深,這里只是粗淺描述,難入窺門子徑,唯望可抱磚引玉,共饗同好。
投稿郵箱:chuanbeiol@163.com 詳情請訪問川北在線:http://dstuf.com/