您當(dāng)前的位置:游戲狗新聞>行業(yè)觀點(diǎn)

          游戲NPC背后的秘密:MMORPG中AI系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          2018-07-30 09:55:42來源:GameRes游資網(wǎng)編輯:誠

          MMORPG游戲中的AI,不是指廣義的人工智能,而是特指在游戲內(nèi)NPC能夠通過環(huán)境或者事件的變化進(jìn)行邏輯判斷,從而同玩家產(chǎn)生特定的交互行為。它主要包含三個(gè)部分,分別是感知、決策、行動。

          感知:是指偵測周圍環(huán)境變化的能力,如玩家進(jìn)入視野、受到攻擊等;

          決策:就是根據(jù)環(huán)境變化思考做出何種反饋,是整個(gè)AI框架主要的構(gòu)成部分,常見的有狀態(tài)機(jī)、行為樹;

          行動:即NPC做出的具體反饋,如釋放技能、尋路等操作。

          MMORPG AI是構(gòu)建在尋路、移動、技能、視野這4個(gè)基礎(chǔ)功能之上的,尋路、移動和技能屬于行動,而視野更多是一種感知。

          AI常見的三種實(shí)現(xiàn)方式

          01、樸素的AI-Hard Code

          舉一個(gè)游戲中常見的例子,一只野豬在沒有人的時(shí)候需要自動巡邏;當(dāng)有人進(jìn)入視野的時(shí)候,它需要去接近這個(gè)玩家;當(dāng)它和玩家的距離達(dá)到2米的時(shí)候,它要發(fā)起一個(gè)技能;當(dāng)它血量低于20%時(shí),它要逃跑。而隨著我們游戲開發(fā)的深入,NPC越來越多,比如小鹿不會攻擊只會逃跑,狼不會逃跑但會釋放技能。

          這時(shí)候問題就出現(xiàn)了,我們?nèi)绻麨槊恳粋€(gè)NPC單獨(dú)實(shí)現(xiàn)一份AI,一款游戲可能有上千種NPC,工作量會非常巨大,而且非常難以擴(kuò)展和維護(hù)。但樸素AI簡單、直接、效率非常高,一般在項(xiàng)目初期應(yīng)急時(shí)使用,即項(xiàng)目上線之初,沒有時(shí)間、沒有能力去做AI的時(shí)候,可能簡單寫一個(gè)AI先去做測試使用。

          02、有限狀態(tài)機(jī)

          狀態(tài)機(jī)可以歸納為三個(gè)要素,即現(xiàn)在的狀態(tài)、事件、動作。當(dāng)一個(gè)事件發(fā)生,將會觸發(fā)一個(gè)動作,或者執(zhí)行一次狀態(tài)的遷移。

          狀態(tài)機(jī)有3個(gè)缺點(diǎn):第一是狀態(tài)流程圖過于復(fù)雜,非常難以維護(hù);第二是難以擴(kuò)展,新加狀態(tài)的時(shí)候需要考慮已有狀態(tài)間的關(guān)系;第三是策劃不能充分參與其中,只能由程序員來完成,這會增加程序員的工作量。

          03、行為樹

          行為樹里面有一個(gè)根節(jié)點(diǎn),有若干子節(jié)點(diǎn)。節(jié)點(diǎn)主要分為控制節(jié)點(diǎn)、條件節(jié)點(diǎn)和行為節(jié)點(diǎn),條件節(jié)點(diǎn)和行為節(jié)點(diǎn)執(zhí)行都有一個(gè)結(jié)果,成功、失敗或者正在運(yùn)行中,控制節(jié)點(diǎn)會根據(jù)返回結(jié)果執(zhí)行下一步動作。

          行為樹的優(yōu)點(diǎn)是邏輯直觀、一目了然,策劃可以借助工具直接配置,不需要程序介入。而缺點(diǎn)則是樹分支數(shù)量龐大,每次遍歷尋找合適節(jié)點(diǎn)的過程消耗高。

          AI尋路的四種實(shí)現(xiàn)方式

          01、直線尋路

          直線尋路最簡單,平時(shí)經(jīng)常用的直線生成算法都可以拿來用,但也最容易失敗,因?yàn)槲覀冋麄€(gè)地圖不都是一個(gè)大平原,它可能有各種各樣的阻擋。

          02、貪心尋路

          貪心尋路的策略是每次都朝著距離較近的方向逼近一步,如果某一個(gè)方向不能走,就嘗試另一個(gè)方向。其實(shí)它還是不夠聰明,當(dāng)它遇到阻擋的時(shí)候,它可能要繞很遠(yuǎn),或者要執(zhí)行很長時(shí)間才能真正找到它的路徑。

          03、A*尋路

          A*尋路從任意一點(diǎn)開始的時(shí)候,把它四周的幾個(gè)點(diǎn)放到open表里,然后從open表里取出估價(jià)函數(shù)最小的點(diǎn),同時(shí)更新open表和close表。其中的close表負(fù)責(zé)存儲考察過的點(diǎn),open表儲存已生成而未考察的點(diǎn)。

          估價(jià)函數(shù): f(n)=g(n)+h(n)

          g(n)就是起點(diǎn)到當(dāng)前點(diǎn)的代價(jià);

          h(n)是當(dāng)前點(diǎn)到終點(diǎn)的代價(jià)。

          04、導(dǎo)航網(wǎng)格尋路

          大平原地圖是由很多小格子組成的,如果尋路時(shí),還需要去遍歷每個(gè)小格子的話,那么大量的時(shí)間會浪費(fèi)在每個(gè)小格子的計(jì)算中。

          這時(shí),可以讓導(dǎo)航網(wǎng)格預(yù)處理,把地圖大平原切割成一個(gè)個(gè)凸的多邊形。多邊形之間,會通過一定的數(shù)據(jù)結(jié)構(gòu)聯(lián)合組織起來,在這個(gè)多邊形中再通過A*去尋路,這樣就可以一下子跳過很多格子,一次就找到目的地。

          我們在游戲里面不是只有一種尋路算法,一般來說,首先看直線尋路能不能到達(dá),如果可達(dá)就直接返回了,如果失敗,再嘗試尋找更復(fù)雜的一條路徑,會依次地去嘗試貪心尋路、A*尋路、導(dǎo)航網(wǎng)格尋路等方法,直到找到可以到達(dá)目的地的路徑。

          相關(guān)新聞
          ?游戲狗 Gamedog.cn 北京手游天下數(shù)字娛樂科技股份有限公司 版權(quán)所有
          安全百店 ANVA自律組
          游戲狗微信關(guān)注游戲狗訂閱號
          主站蜘蛛池模板: 国产成人免费网站在线观看| 精品无码一区二区三区| 日本韩国一区二区| 另类图片亚洲校园小说区| yy6080午夜一级毛片超清| 欧美色图亚洲图片| 国产xxxxx在线观看| Channel| 最近更新中文字幕影视| 国产一区二区精品| 222www免费视频| 日本福利一区二区| 亚洲熟妇少妇任你躁在线观看| 老熟女高潮一区二区三区| 在线观看免费午夜大片| 亚洲va成无码人在线观看天堂| 窝窝午夜看片成人精品| 国产精品久久久久久一区二区三区 | 榴莲下载app下载网站ios| 国产zzjjzzjj视频全免费| 天堂资源中文在线| 奇米影视77777| 中文字幕精品亚洲无线码一区| 特级毛片全部免费播放a一级 | 国产成人精品动图| 一区五十路在线中出| 欧美亚洲综合在线| 免费va在线观看| 久久国产精品99精品国产987| 女人战争之肮脏的交易| 亚洲中文字幕无码一久久区| 老师我好爽再深一点视频| 国产爆乳无码一区二区麻豆| 一级一级女人18毛片| 日韩在线视频免费观看| 免费大香伊蕉在人线国产| 调教贱奴女警花带乳环小说| 在线精品自拍亚洲第一区| 中国china体内裑精亚洲日本| 日韩人妻无码一区二区三区久久99| 亚洲国产日产无码精品|