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