114培訓(xùn)網(wǎng)歡迎您來到游戲設(shè)計交流中心!

400-850-8622

全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

MOBA類型游戲的人機(jī)對戰(zhàn)的模式中,電腦的AI是如何設(shè)計的?

現(xiàn)代的游戲AI很多是由專門的AI引擎來實現(xiàn)的,如果用文字把AI的規(guī)則寫下來,那是非常的多

MOBA( Online Battle Arena)中文譯為多人在線戰(zhàn)術(shù)競技游戲。 online battle arena(MOBA),也被稱為Action real-time strategy(Action RTS,ARTS)

這類游戲的玩法是:在戰(zhàn)斗中一般需要購買裝備,玩家通常被分為兩隊,兩隊在分散的游戲地圖中互相競爭,每個玩家都通過一個RTS風(fēng)格的界面控制所選的角色。但不同于《星際爭霸》等傳統(tǒng)的硬核的RTS游戲,這類游戲通常無需操作RTS游戲中常見的建筑群、資源、訓(xùn)練兵種等組織單位,玩家只控制自己所選的角色。

MOBA游戲相比傳統(tǒng)的RTS游戲更偏向于休閑娛樂,對玩家的操作要求均遠(yuǎn)遠(yuǎn)低于RTS游戲。再加上這類游戲中很多是免費(fèi)游戲,因此吸引了一大批難以適應(yīng)RTS游戲大規(guī)模高要求操作的玩家。因為不再過高地要求玩家的操作水平,這個玩家群體比傳統(tǒng)RTS游戲的硬核傾向的玩家群體要大得多。

1998年,《星際爭霸》發(fā)行,暴雪娛樂公司*次在暴雪娛樂制作并發(fā)行的游戲中綁定了地圖編輯器。利用這款地圖編輯器,當(dāng)時有一位叫做Aeon64的玩家制作出一張名為Aeon Of Strife的自定義地圖,這就是所有MOBA游戲的雛形。在這個自定義地圖中,玩家們可以控制一個英雄單位與電腦控制的敵方團(tuán)隊進(jìn)行作戰(zhàn),地圖有3條兵線,并且連接雙方主基地,獲勝的目標(biāo)就是摧毀對方主基地[2]?。值得一提的是,這款老地圖現(xiàn)今依然在《星際爭霸Ⅱ》中保持著更新。

這張星際爭霸的自定義地圖是DOTA的前身,也是所有moba的雛形,因此MOBA游戲的源頭應(yīng)該追尋至《星際爭霸》時代的RPG地圖。到英雄聯(lián)盟的出現(xiàn),在剛開始英雄聯(lián)盟自稱為類DOTA游戲,但隨后拳頭游戲開始將游戲定義為MOBA游戲,隨后MOBA游戲的叫法開始更加流行,但本質(zhì)上是從類DOTA游戲進(jìn)化過來的游戲類型,它囊括了比“類DOTA游戲”更多的內(nèi)容,甚至連DOTA自身也開始被定義為MOBA了。

游戲里的AI是如何實現(xiàn)的?

比如賽車游戲的AI,和你一起跑得賽車根據(jù)不同等級的AI表現(xiàn)出不同能力。它基本的設(shè)計思想是,通過對地圖場景進(jìn)行數(shù)學(xué)建模然后結(jié)合模型中的應(yīng)變量結(jié)合賽車本身的參數(shù)進(jìn)行數(shù)學(xué)結(jié)合。*特出了帶有系數(shù)的近似等式。然后通過數(shù)學(xué)變換(比如三角變換,等比變化,隨即變換等)使得AI變的非常具備“人”的思維。 還有一種AI是通過行為庫來實現(xiàn)的,在行為庫中,定義了大量的行為,這些行為可能是預(yù)先定義好的,可能是游戲者在平時游戲的時候被系統(tǒng)錄入的。然后AI通過類似責(zé)任鏈(不同等級的責(zé)任者對應(yīng)不同等級的責(zé)任行為,你可以去網(wǎng)絡(luò)搜索一下)的形式獲取到某一個時候的行為,從而表現(xiàn)的比較有"智能".

游戲設(shè)計模式 之 AI_行為樹

引擎:.1.0
語言:
Git倉庫地址:

定義——
行為被定義為層次化的目標(biāo)的集合,其表現(xiàn)為樹形結(jié)構(gòu)。
智能體首先選擇高級抽象目標(biāo),然后遞歸分解成一個可以遵照執(zhí)行的原子目標(biāo)的集合。
以此實現(xiàn)原子目標(biāo),最終實現(xiàn)高級抽象目標(biāo)。

類圖——

行為樹圖——

類圖看起來比較復(fù)雜~,哈哈,其實不難,記住幾個關(guān)鍵單就行。
1、樹形結(jié)構(gòu),使用“組件模式”實現(xiàn)。
從“行為樹圖”中可以看出,復(fù)合目標(biāo)和子目標(biāo)組成了一個樹形結(jié)構(gòu)。
think每次根據(jù)權(quán)重(由數(shù)值策劃提供公式)選擇一個“分支”,一次執(zhí)行完整個分支下的所有葉節(jié)點,即可完成策略——實際項目中會有很多層,這里簡化一下。
2、通過權(quán)重選擇策略,每個策略都對應(yīng)一個繼承自Goal_Evaluator的類,對應(yīng)其返回權(quán)重的以及設(shè)置目標(biāo)的邏輯。

下面來看看具體實現(xiàn)
簡單講,需要做的事情有3個
1、編寫戰(zhàn)略目標(biāo)

重寫Enter()函數(shù),負(fù)責(zé)插入子目標(biāo)

2、編寫子目標(biāo)
Goal_

Goal_

Goal_

以上就是策略與子目標(biāo)的實現(xiàn),主要工作就是在Enter(),與Process(dt)中,在恰當(dāng)?shù)臅r機(jī)返回目標(biāo)狀態(tài)即可。

3、(用樹形結(jié)構(gòu),即組合模式)組織起來

如圖,Goal_Think類通過每個策略的Goal_Evaluator類計算權(quán)重,然后,策略在Enter()中也。
這樣便組成了一個樹形結(jié)構(gòu),然后通過Process(dt)驅(qū)動行為樹運(yùn)行。

擴(kuò)展:
配置化——我的思路是策劃在json表中配置 戰(zhàn)略目標(biāo)以及其對應(yīng)的子目表“樹”。

如何設(shè)計出優(yōu)秀的游戲AI

游戲發(fā)展這么多年,并不是沒有狡猾的AI,只是市面上主流的游戲沒有使用到狡猾的AI而已,舉個最簡單的例子,我相信很多人下象棋都下不過大師難度的電腦或者機(jī)器人吧,這就是狡猾的AI,再聯(lián)想下圍棋界的阿爾法狗,游戲AI其實并不是沒有發(fā)展,相反有些ai發(fā)展的有點可怕
那么為什么主流游戲,比如RPG、SLG游戲的AI會給很多玩家AI還是很蠢的感覺呢,為什么他們不狡猾一點呢,簡單的來說就是——他們不蠢怎么襯托玩家的聰明呢
游戲AI,作為游戲內(nèi)的設(shè)計元素之一,他所最終服務(wù)的對象是玩家,一個游戲AI是好是壞不是根據(jù)AI的聰明程度來判定的,而是根據(jù)他能給玩家?guī)硎裁礃拥姆答亖砼卸ǖ?,這個才是游戲AI的最終設(shè)計目的
游戲AI服務(wù)于玩家的體驗,設(shè)計目的決定了他的設(shè)計方式,想要設(shè)計一個好游戲AI,并不是越聰明越好

即時戰(zhàn)略游戲(比如 WAR3)的 AI 是怎樣實現(xiàn)的?

War3的AI沒有必要使用你提及的算法,或者說,根本無法使用。
有相關(guān)經(jīng)驗表明,游戲的AI如果采用神經(jīng)網(wǎng)絡(luò)等算法,會傻得出奇。
使用派算法的AI總會做出匪夷所思的動作,讓人無法理解,游戲性盡失。
其主要原因在于遺傳算法、模擬退火算法、神經(jīng)網(wǎng)絡(luò)算法、各種分類算法等等,都是高度概括化的,旨在找到*解/或者找到全局關(guān)系。但是我們的AI實際不需要*解和全局關(guān)系,一是你的電腦沒那么叼,這么復(fù)雜的情況,如果真的高度概括出來了,其復(fù)雜程度是很高的,你的電腦也帶不動,其次是算法在訓(xùn)練過程中收斂也會很慢,因為樣本太過復(fù)雜,所以也許要花上很久(幾年?猜的)來收斂,如果我們降低收斂精度要求來使速度加快,AI就會變得非常傻,做游戲明顯不能這樣。即使上述問題都被解決了,還有個問題就是,電腦得到了*解和*數(shù)學(xué)模型,你作為玩家就沒有勝利的希望了,這游戲給誰玩?
即使設(shè)計公司神經(jīng)病般的決定如此設(shè)計,每當(dāng)你的游戲有更新,兵種變化,數(shù)據(jù)變化,整個算法就要重新訓(xùn)練,玩家需要重新下載AI的全部內(nèi)容,對用戶的體驗和公司的工作效率都有損害。
戰(zhàn)略類游戲的AI,還是有限狀態(tài)機(jī)。根據(jù)不同情況分類做不一樣的事情,全都設(shè)計好,設(shè)計的盡量詳細(xì),就OK了。
關(guān)于其復(fù)雜度:
這類AI的程序體往往超乎想象的長,當(dāng)然具體長度和游戲本身的設(shè)計也有一定關(guān)系,和游戲其它部分代碼的設(shè)計優(yōu)化程度也有關(guān)系,但是即使在較優(yōu)環(huán)境中,其AI長度也是很長的。具體原因就在于其事無巨細(xì)的分類了所有情況,規(guī)定了AI在不同時間不同情況所做的不同事情,作為一個戰(zhàn)略類游戲,尤其是即時戰(zhàn)略類游戲,這是十分復(fù)雜的,情況十分多,因此程序本身也會相當(dāng)?shù)拈L。
但是他運(yùn)行速度又快!又像人類在玩!又給了玩家勝利的可能!又容易設(shè)計和更改!

DNF的怪物AI是如何設(shè)計的?

DNF游戲中的怪物AI設(shè)計理念如下:
首先判斷設(shè)置半徑范圍內(nèi)是否有敵對單位;
有的話則生成隨機(jī)數(shù),根據(jù)該隨機(jī)數(shù)對應(yīng)的路線,驅(qū)動怪物向玩家靠近。
沒有的話仍然產(chǎn)生隨機(jī)數(shù),依據(jù)該數(shù)字產(chǎn)生對應(yīng)的路線,驅(qū)動怪物在范圍內(nèi)移動。
其中玩家設(shè)置為怪物的敵對單位,接近到一定距離后怪物會對敵對單位進(jìn)行攻擊。

溫馨提示:為不影響您的學(xué)業(yè),來校區(qū)前請先電話咨詢,方便我校安排相關(guān)的專業(yè)老師為您解答
相關(guān)資料
姓名不能為空
手機(jī)號格式錯誤