您當(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)注游戲狗訂閱號
          主站蜘蛛池模板: 黄色软件app大全免费下载2023| 少妇中文字幕乱码亚洲影视| 天堂精品高清1区2区3区| 亚洲精品成人久久| www.日韩在线| 欧美日韩一级二级三级| 国产成人午夜性a一级毛片| 丰满人妻一区二区三区视频53| 精品不卡一区中文字幕| 国产精品自在线观看剧情| 久久精品人妻一区二区三区| 精品福利视频一区二区三区| 国产高清视频网站| 久久天天躁狠狠躁夜夜| 相泽亚洲一区中文字幕| 国产精品v欧美精品∨日韩| 久久丫精品久久丫| 理论秋霞在线看免费| 国产欧美久久久精品影院| 中文字幕乱码系列免费| 正在播放黑人巨大视频| 国产成人无码一二三区视频| 99视频精品全部免费观看| 最漂亮夫上司犯连七天| 又污又爽又黄的网站| 398av影院视频在线| 日b视频在线观看| 免费黄色app网站| ww4545四虎永久免费地址| 成年男女男精品免费视频网站| 亚洲毛片av日韩av无码| 调教女m视频免费区| 坐公交车弄了2个小时小视频| 久久精品国产亚洲7777| 欧美日韩精品福利在线观看| 国产乱人伦av在线a| AV无码精品一区二区三区宅噜噜| 打桩机和他宝贝124是哪一对| 亚洲日本va中文字幕久久| 色狠狠狠狠综合影视| 国产精品资源一区二区|