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

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

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

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

          感知:是指?jìng)蓽y(cè)周?chē)h(huán)境變化的能力,如玩家進(jìn)入視野、受到攻擊等;

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

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

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

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

          01、樸素的AI-Hard Code

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

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

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

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

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

          03、行為樹(shù)

          行為樹(shù)里面有一個(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)會(huì)根據(jù)返回結(jié)果執(zhí)行下一步動(dòng)作。

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

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

          01、直線(xiàn)尋路

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

          02、貪心尋路

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

          03、A*尋路

          A*尋路從任意一點(diǎn)開(kāi)始的時(shí)候,把它四周的幾個(gè)點(diǎn)放到open表里,然后從open表里取出估價(jià)函數(shù)最小的點(diǎn),同時(shí)更新open表和close表。其中的close表負(fù)責(zé)存儲(chǔ)考察過(guò)的點(diǎn),open表儲(chǔ)存已生成而未考察的點(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è)小格子的話(huà),那么大量的時(shí)間會(huì)浪費(fèi)在每個(gè)小格子的計(jì)算中。

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

          我們?cè)谟螒蚶锩娌皇侵挥幸环N尋路算法,一般來(lái)說(shuō),首先看直線(xiàn)尋路能不能到達(dá),如果可達(dá)就直接返回了,如果失敗,再?lài)L試尋找更復(fù)雜的一條路徑,會(huì)依次地去嘗試貪心尋路、A*尋路、導(dǎo)航網(wǎng)格尋路等方法,直到找到可以到達(dá)目的地的路徑。

          相關(guān)新聞
          ?游戲狗 Gamedog.cn 北京手游天下數(shù)字娛樂(lè)科技股份有限公司 版權(quán)所有
          安全百店 ANVA自律組
          游戲狗微信關(guān)注游戲狗訂閱號(hào)
          主站蜘蛛池模板: 国产东北老头老太露脸| 中文字幕一二三区| 欧美视频亚洲视频| 午夜免费福利在线| 野花视频在线官网免费1| 国产私人尤物无码不卡| 97国产在线播放| 天天爱天天色天天干| 中文字幕亚洲精品资源网| 日本精品一区二区三区在线视频一 | 日本高清在线不卡| 亚洲s色大片在线观看| 欧美欧美欧美欧美| 亚洲第一页中文字幕| 用劲好爽快点要喷了视频| 凹凸在线无码免费视频| 老司机aⅴ在线精品导航| 国产乱妇乱子在线播视频播放网站 | 亚洲偷自精品三十六区| 国内精品久久久久久| a级毛片免费看| 女人说疼男人就越往里| 一区二区三区日本电影| 成av免费大片黄在线观看| 中文成人无字幕乱码精品区| 日本大胆欧美艺术337p| 久久精品岛国av一区二区无码| 欧日韩不卡在线视频| 国精产品一区一区三区有限公司 | 四虎国产精品永久地址入口| 被夫上司持续入侵大桥未久| 国产在线观看免费视频软件| 欧美色图在线播放| 国产真实乱人偷精品| 香蕉视频黄色在线观看| 国产精品美女一级在线观看| 91久久另类重口变态| 国产美女一级特黄毛片| 91chinese在线| 国产精品永久在线观看| 2021韩国三级理论电影网站|