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