我的遊戲開發研究歷程3:遊戲中的人工智慧是怎樣的?

2017/05/16

如果您對此類文章有興趣,請務必關注科技曲奇。

隨著如今計算機算力的發展,曾經被一度拋棄的神經網路演算法被重新拾起。自深度神經網路在圖片預測上極大超越了原有機器學習演算法后,人工智慧便依靠著神經網路的發展而蓬勃了起來。互聯網、物聯網和大數據,都使現實世界中的人工智慧得到了飛速發展。

但是在遊戲方面的人工智慧呢?其實遊戲中的人工智慧並不能都算得上真正意義上的人工智慧,主要原因是因為它沒有學習能力,並且不會從已有數據中分析和自我優化。目前雖然有利用人工智慧進行早期版本星際爭霸的對戰,並使機器不斷學習獲得勝利的例子,不過也是逐幀圖像分析,在處理了極大數據過後的。

為什麼遊戲中的人工智慧會很落後呢?我的看法如下

其一,學習和行為反應是多層次的,比如受到攻擊后逃跑,是最底層的;而受到攻擊后是否要給隊友拖時間,又是另一個層次的;以及受到攻擊后是否會影響全局,又是更高一個層次的,遊戲中的AI很難兼顧,一般層次都比較低。而神經網路正好可以覆蓋多層的特徵,這就是為什麼在AI上表現較佳。

其二,一般遊戲根本用不到太高層的AI,不需要具有全局統籌能力,只需要集中個體打敗玩家即可,也就是說,AI很少有群體行為。或是以個體行為為主,構成群體行為,這樣的話,個體的AI最終能構成怎樣的群體行為,就需要一些試驗模擬嘗試了。當然,如果能設計群體行為樹的話就更好了。

實際上,在我看來,遊戲中的AI實現比現實中容易多了,其一,遊戲中的數據獲得十分簡單,只需要找找所需要的類和變數就行了,並且數據也是結構化的。其二,遊戲中的數據非常單純、有限,相比現實世界簡單多了。

這裡我以虛幻4引擎的一個非常經典的AIBehaviorToolKit包講解AI的個人行為樹,這個行為樹的總體是這樣的:

左上分支。

這個AI行為樹是針對Owner個體的,實現的內容基本上就是:

1、檢測距離觸發條件是否滿足?滿足過後,轉到切換行為這個service,這個service會根據玩家設置的條件(後面會講到)進行行為切換,改變移動速度,重置delay trigger等,並把切換后的變數寫在AI樹對應的黑板上(黑板就是一個變數存儲工具)

2、根據黑板上的變數進行判斷,部署下一步行為,比如,如果變數是至idle(空閑),根據設置切換至隨機行走、工作、和靜止。如果是AttckMelee(近戰攻擊),就執行相應的動畫。

接著就是行為樹上的擴展,我的一個拓展思路如下:

首先創建一個包含此行為樹的NPC實例,然後創建子類並調整參數(如武器Mesh和攻擊動畫、傷害、頻率等),建立一系列兵種。在兵種下再創建子類,建立具有成套行為的多個NPC(如中立、敵方、盟友、平民和夥伴)。最後根據需要建立獨特的子類,用來調整特殊的參數(如陣營等)。

接著簡要講一下中立生物、守衛和平民基於上面AI樹的實現:

中立生物:初始是空閑行為,在受到攻擊后,將攻擊者的tag加入近戰或遠程攻擊的tag中,並切換到攻擊行為。

守衛:初始是空閑或者巡邏行為,看到敵方後會觸發攻擊行為,並設置2秒的delay trigger(意思是經過兩秒之後),切換回空閑和巡邏,(此時如果再次遇到敵方又會觸發攻擊)。

這裡另外提到一個區域Message的概念:比如玩家攻擊過後,會在原地一定半徑內生成一個傳遞「攻擊」Message的區域,所有在這個半徑之內的AI都會接收到這個內容為「攻擊」的Message,接著就需要設置一下行為,比如守衛接收到這個Message就切換成攻擊;平民接收到這個Message就切換成逃跑。

平民:除了上面說的收到「攻擊」Message會逃跑外,逃跑也有一定距離,距離結束之後切換成空閑狀態。

AI行為大概就是這些了。

值得一提的是,上面的所有參數都是值得去構建一個反饋系統的,比如,平民在逃跑之後並沒有傷亡,下次可以把逃跑距離設置更低一點兒。設置玩家殺死敵方單位平均執行的攻擊次數/世界平均攻擊次數這個值,轉換成敵方單位以玩家不可追上的速度逃跑的概率,可以動態調整平衡。

可以說,比起真正的人工智慧來講,把玩家創造的數據用起來,再反饋到遊戲世界中,形成一個動態平衡,比前者實現起來更容易也更有效。

筆者是想到哪就寫到哪,思路有些不連貫,有什麼問題還請各位讀者提出。對此類文章有興趣的,請務必關注科技曲奇。

本文由 一點資訊 提供 原文連結

立即按讚,感謝大大無私地分享
寫了5860430篇文章,獲得22560
Line

熱門推薦

精彩推薦

在寧波奇點機器人體驗館,機器人正與一位觀眾現場圍棋「對弈」。 不久前,成都某公司開發的機器人和聯考狀元展開了一場解答聯考數學題的較量,雖然機器人最終落敗,但其理解語義、邏輯分析以及快速學習的能力令人讚歎...
在2016年下半年遊戲行業的買量推廣開始火爆起來,隨著遊戲聯運渠道格局越來越穩定,遊戲發行商們開始想盡各種辦法尋找新的獲取用戶渠道,這時,以廣州遊戲圈的同行為代表,通過各大廣告平台,自主買量推廣遊戲的...
Really Interactive工作室展示了他們最新的科幻冒險解謎遊戲《托蘭(Toran)》。 玩家在遊戲中扮演一名科學家,他在遙遠的月球上意外的發現了一個用於在恆星之間穿梭的飛船,然而人類的科學技術還無法造出這種...
腦海中想象的,一堆機器人集合在一起的場景,都是什麼呢?不是《終極者》裡面的天網,就是《我,機器人》的機器人反叛大軍吧。不過現實裡面,最早出現的機器人大軍,可是在跳廣場舞的時候。最近,一個新的世界紀...
提起人工智慧,不免總與各種高大上的神經網路、深度學習、邏輯演算法等辭彙聯繫在一起,而遊戲總是被認為是小孩子們的玩物,可實際上,人工智慧與遊戲的關係一直非常親密。人工智慧是具有自主認知能力,能夠模擬...
文丨遊戲陀螺 Hadoken熱成狗的玩家導語:最近的天氣真是熱成狗了。 好像炎熱的天氣,都會導致人火氣特別煩躁,當然這也會在不知不覺中影響到玩家周末在家打遊戲時的狀態和心情,雖然陀螺君相信大部分的玩家應該都...
相信大家上周都被 柯潔 和 AlphaGo 的烏鎮舉行的世紀大對決所刷屏了吧。我們的「柯大魔王」,三戰三敗,甚至在賽后的發布會上,忍不住一度哽咽,流淚......能和 AlphaGo 比賽,對我的意義超出以前所有比賽。今天...
雷鋒網按:每當談起遊戲中的人工智慧,我們通常會想到更加逼真的敵人,也就是那些不會傻獃獃等著挨打的 NPC。不過新研究顯示,神經網路驅動的人工智慧還能在複雜的遊戲環境中實時調整玩家角色動作的真實度,即使...
《遊戲開發物語》這款遊戲是讓自己做一個遊戲公司的老闆,既然是老闆,就要想盡各種辦法讓自己的遊戲公司良好的運轉起來。那麼,我們要怎麼做才能賺到錢呢?開羅大編今天就是特地來為你解讀《遊戲開發物語》的賺...
則回覆