返學(xué)費(fèi)網(wǎng) > 培訓(xùn)機(jī)構(gòu) > 游戲設(shè)計(jì)交流中心
現(xiàn)代的游戲AI很多是由專(zhuān)門(mén)的AI引擎來(lái)實(shí)現(xiàn)的,如果用文字把AI的規(guī)則寫(xiě)下來(lái),那是非常的多
MOBA( Online Battle Arena)中文譯為多人在線戰(zhàn)術(shù)競(jìng)技游戲。 online battle arena(MOBA),也被稱為Action real-time strategy(Action RTS,ARTS)
這類(lèi)游戲的玩法是:在戰(zhàn)斗中一般需要購(gòu)買(mǎi)裝備,玩家通常被分為兩隊(duì),兩隊(duì)在分散的游戲地圖中互相競(jìng)爭(zhēng),每個(gè)玩家都通過(guò)一個(gè)RTS風(fēng)格的界面控制所選的角色。但不同于《星際爭(zhēng)霸》等傳統(tǒng)的硬核的RTS游戲,這類(lèi)游戲通常無(wú)需操作RTS游戲中常見(jiàn)的建筑群、資源、訓(xùn)練兵種等組織單位,玩家只控制自己所選的角色。
MOBA游戲相比傳統(tǒng)的RTS游戲更偏向于休閑娛樂(lè),對(duì)玩家的操作要求均遠(yuǎn)遠(yuǎn)低于RTS游戲。再加上這類(lèi)游戲中很多是免費(fèi)游戲,因此吸引了一大批難以適應(yīng)RTS游戲大規(guī)模高要求操作的玩家。因?yàn)椴辉龠^(guò)高地要求玩家的操作水平,這個(gè)玩家群體比傳統(tǒng)RTS游戲的硬核傾向的玩家群體要大得多。
1998年,《星際爭(zhēng)霸》發(fā)行,暴雪娛樂(lè)公司第一次在暴雪娛樂(lè)制作并發(fā)行的游戲中綁定了地圖編輯器。利用這款地圖編輯器,當(dāng)時(shí)有一位叫做Aeon64的玩家制作出一張名為Aeon Of Strife的自定義地圖,這就是所有MOBA游戲的雛形。在這個(gè)自定義地圖中,玩家們可以控制一個(gè)英雄單位與電腦控制的敵方團(tuán)隊(duì)進(jìn)行作戰(zhàn),地圖有3條兵線,并且連接雙方主基地,獲勝的目標(biāo)就是摧毀對(duì)方主基地[2]?。值得一提的是,這款老地圖現(xiàn)今依然在《星際爭(zhēng)霸Ⅱ》中保持著更新。
這張星際爭(zhēng)霸的自定義地圖是DOTA的前身,也是所有moba的雛形,因此MOBA游戲的源頭應(yīng)該追尋至《星際爭(zhēng)霸》時(shí)代的RPG地圖。到英雄聯(lián)盟的出現(xiàn),在剛開(kāi)始英雄聯(lián)盟自稱為類(lèi)DOTA游戲,但隨后拳頭游戲開(kāi)始將游戲定義為MOBA游戲,隨后MOBA游戲的叫法開(kāi)始更加流行,但本質(zhì)上是從類(lèi)DOTA游戲進(jìn)化過(guò)來(lái)的游戲類(lèi)型,它囊括了比“類(lèi)DOTA游戲”更多的內(nèi)容,甚至連DOTA自身也開(kāi)始被定義為MOBA了。
應(yīng)該是AI 就是人工智能( ),英文縮寫(xiě)為AI
們游戲開(kāi)發(fā)中,很多時(shí)候會(huì)用到Ai,什么是Ai,就是智能。比如boss,他作為我們要擊殺的對(duì)象,當(dāng)我們?nèi)ス羲麜?huì)攻擊我們,并會(huì)釋放技能,當(dāng)他血量很弱少,有些怪物會(huì)發(fā)動(dòng)狂暴,暴擊等技能,來(lái)維護(hù)保持它的狀態(tài)。那么它作為一個(gè)怪物,他就是智能的,我們?cè)O(shè)計(jì)這樣一個(gè)boss,就是要設(shè)計(jì)它的Ai。
我們以dota為例,先進(jìn)行一些ai分析。小怪,也就是那些30s一刷新的怪物,殺死之后會(huì)得到經(jīng)驗(yàn),他們其中有的2人一組,3人一組,或者好幾人一組,默認(rèn)情況下,是躲在 他的領(lǐng)地,保護(hù)著他的巢穴,我們的角色攻擊他時(shí),它們就會(huì)攻擊我們,有技能的一直放技能,知道藍(lán)用光,沒(méi)有技能的一直a;這是我們發(fā)現(xiàn)打不過(guò)他們了,我們才1級(jí),血薄藍(lán)少,怎么辦,跑啊,我們的移動(dòng)速度高于小怪,我們就能跑了,那么小怪呢,他會(huì)一直跟著我們,直到我們的角色跟它的距離超過(guò)一定距離,或者它距離他的老巢超過(guò)一定距離,他們就會(huì)回家,不跟我們玩了。所以小怪的ai設(shè)計(jì)還是比較容易的。
dota中還有一種ai,就是我方一直派出去的小兵,他們每隔一定時(shí)間生成,并向著敵方塔移動(dòng),我們有一種技巧,叫卡小兵,擋在小兵的前方,這時(shí)小兵發(fā)現(xiàn),前面被擋住了,“讓開(kāi),我要向前走”,當(dāng)然它可以這么想,我們不一定會(huì)這么做,怎么辦,它們只能繞道走,怎么走,該往哪走,我們有過(guò)這樣的經(jīng)驗(yàn),就是你中午著急去取餐,走在2樓的橋上,這時(shí)候,前方有一個(gè)走的很慢的人,擋住了你的路,怎么辦,懶得跟他交流,繞過(guò)他,找繞過(guò)他距離最短的路線,如果我們的身體中心為一條線,和對(duì)方身體中心線比較,如果離左面近,就會(huì)從他的左邊繞道,反之,右邊,小兵也是一樣,我們每個(gè)角色身體都占有一定的空間,怎么好過(guò),怎么繞。但小兵在被擋住那一刻還是有一定的遲疑的,為了體現(xiàn)他在思考,不至于那么imba,這時(shí)候我們發(fā)現(xiàn)他想繞過(guò)我們,我們循序往它要繞的方向移動(dòng),再一次擋住了它的去路,再一次遲疑,再一次繞,如此往復(fù),直到遇到對(duì)方小兵。
前方說(shuō)到小兵繞,這其實(shí),就跟尋路有關(guān),小兵怎么知道左邊繞一定比右邊繞近,萬(wàn)一到了右邊發(fā)現(xiàn)是個(gè)死胡同呢,這就是尋路,如果你說(shuō)前面不是說(shuō),用簡(jiǎn)單的算法就能算出往左往右,把算法弄大,弄多不就行了,但是別忘了,有一種神牛的存在,就是放置溝壑,把前方整條路都堵死,如果按照走一步算一步的操作,小兵能夠順順利利到達(dá)溝壑那,然后呢,又不能跳過(guò)去,這時(shí)我們發(fā)現(xiàn)小兵發(fā)現(xiàn)前方有溝壑不是走到溝壑那,而是從別的小路繞過(guò)了溝壑,你一定會(huì)說(shuō),小兵是著一定的行家啊,哪都知道怎么走,但是我要說(shuō),這其實(shí)就是自動(dòng)尋路尋找最短路線到達(dá)目的地的一種技術(shù)。
全年說(shuō)到的都是小兵啊,怪物,他們的設(shè)計(jì)一定按照他們的自身狀況,不能設(shè)計(jì)的太雞賊,畢竟不是高等生物人類(lèi)么,但是有時(shí)候我們就是要設(shè)計(jì)這種高等生物,人類(lèi),什么呢,機(jī)器人,玩過(guò)王者榮耀的都知道,掉線之后,我們的人是被操控的,被誰(shuí)操控的,ai啊,他們跟人類(lèi)的操作很像,a你,放技能,打小兵,你完全看不出什么,你去殺他,他也會(huì)反擊。那么這種機(jī)器人有什么好處呢,當(dāng)有人掉線,ai會(huì)控制他,不至于造成5打4的局面,還有就是當(dāng)游戲發(fā)展初期,玩家數(shù)量較少時(shí),無(wú)法滿足玩家一上線就有很多玩家跟他一起開(kāi)站,那怎么辦,仿人類(lèi)的機(jī)器人跟他們玩,讓這個(gè)用戶留存下來(lái),這樣越滾越大么,那么怎么設(shè)計(jì)機(jī)器人呢,下面說(shuō)說(shuō)高等ai是怎么做的。
既然是高等ai人類(lèi),那么人類(lèi)的喜怒哀樂(lè)都會(huì)在他身上體現(xiàn)。他一個(gè)人在那,周?chē)鷽](méi)有人的時(shí)候,他會(huì)想,他去干嘛,先升級(jí),這時(shí)候遇到其他人類(lèi),先下手為強(qiáng),攻擊他,打著打著,發(fā)現(xiàn)打不過(guò),跑啊,能跑多快跑多快,終于能跑到安全的地方,怎么辦,不是傻站著,補(bǔ)充恢復(fù)啊,這時(shí)候等級(jí)上來(lái)了,遇到個(gè)人,殺呀,發(fā)現(xiàn)對(duì)方快沒(méi)血,也跑了,怎么辦,追,發(fā)現(xiàn)對(duì)方跑的有點(diǎn)快,算了,不累了,或者追的過(guò)程遇到其他玩家,還得跟他作戰(zhàn),這時(shí)候追的殘血玩家回來(lái)跟他一起殺你,你又血量不足,還是要跑,往哪跑,往沒(méi)人的地方跑,哪沒(méi)人,我可是機(jī)器人啊,整個(gè)游戲數(shù)據(jù),服務(wù)器數(shù)據(jù)我都能知道(當(dāng)然,還得是這個(gè)時(shí)空,不能說(shuō)你跑到了別的房間,穿越了?。┧赃@樣雞賊的機(jī)器人,屬于高級(jí)ai,這種ai,除非你們一起圍堵他,不然,很難殺死。
那么都是這種機(jī)器人,那玩家玩?zhèn)€屁呀,所以ai也要有ai的難度等級(jí),不同等級(jí),對(duì)應(yīng)不同程度的雞賊,這個(gè)等級(jí),可以根據(jù)附近玩家的等級(jí),進(jìn)行一定的算法運(yùn)算得到,所以很靈活的。
引用自:網(wǎng)頁(yè)鏈接
自己可以打開(kāi)地圖的jass腳本去看的,星際里也有script可以看。 ?War3時(shí)代,底層尋路是地圖分Tile之后的A *尋路,上層邏輯估計(jì)就是FSM有限狀態(tài)機(jī),經(jīng)過(guò)這些年發(fā)展,現(xiàn)在游戲里尋路還是基于導(dǎo)航網(wǎng)格()的A*,上層AI很多是Behavior Tree來(lái)實(shí)現(xiàn)的。 ?游戲和工程的AI目標(biāo)完全不同的,游戲的AI是看起來(lái)聰明、表現(xiàn)多樣;工程上我熟悉的多是為了解決組合爆炸問(wèn)題,通過(guò)AI算法求解。但工程上的AI算法也有各種限制,例如遺傳算法的過(guò)度收斂、收斂到局部解、神經(jīng)網(wǎng)絡(luò)的權(quán)重訓(xùn)練出來(lái)人不可理解、多少個(gè)神經(jīng)節(jié)點(diǎn)能解決特定問(wèn)題的沒(méi)有定義,等等等等還有大量問(wèn)題,這些對(duì)于游戲開(kāi)發(fā)這種需要控制開(kāi)發(fā)周期和確定性結(jié)果的工程設(shè)計(jì)都不利??!所以游戲這種密集開(kāi)發(fā)的軟件工程,一是AI不需要這么復(fù)雜的算法就能實(shí)現(xiàn),二是AI算法很多不穩(wěn)定和難理解控制并不適合游戲快速迭代開(kāi)發(fā)。
只要一個(gè)電話
我們免費(fèi)為您回電