深度強化學習的人工智慧在遊戲中的運用:遊戲AI入門及AI優化指南

2020-12-27 GameRes遊資網

文/淚的天堂

前言:

現如今,所有電子遊戲都離不開AI的運用,對於遊戲策劃而言AI是什麼,AI又是如何運作,可以說是面試時的加分項,本文在這裡不探討理論的AI(採用深度強化學習的智能AI,如騰訊AI Lab、網易伏羲AI等),旨在分享現遊戲領域廣泛運用的AI,給新人策劃針對遊戲AI、遊戲腳本有一個初步的了解。

(本文接下來不包括AI底層代碼,AI工具開發等程序向內容,該部分在網絡上已經有很多教程大家可以去學習,個人認為策劃對於底層AI的具體實現是不需要了解的,而對於AI製作與優化是需要學習的。)

本文的具體結構

一、AI的應用場景

人工智慧開發是遊戲研發中最具挑戰性的任務之一[1],那麼遊戲中AI的具體使用場景在哪裡呢?

英雄聯盟裡怪物戰鬥AI、場景AI(作用於野怪刷新)、人機挑戰中機器人戰鬥AI

除了大家熟知的LOL,3A大作裡AI一般運用到哪裡呢?

巫師3中的NPC AI,怪物AI等AI運用基本可以囊括現有AI的運用場景

從上面舉的兩個例子,已經可以看出現在製作遊戲離不開AI。

二、AI通過什麼方式進行設計?

現有遊戲AI基本通過下面兩個方式進行實現:行為樹(Behavior Tree)與有限狀態機(Finite State Machines),那麼下面我們就對於這兩個實現方式進行探討。

2.1 什麼是有限狀態機

「狀態機」是一種表示狀態並控制狀態切換的設計模式,常常用於設計某種東西的多個狀態。而有限狀態機是指遊戲內的條件邏輯封裝到各個狀態類裡。例如一個人有站立狀態,跑動狀態,走路狀態,蹲下狀態,開火狀態等[2],當一個事件發生,將會觸發一個動作,或者執行一次狀態的遷移。

但卻有兩個缺陷:

1. 各個狀態類之間互相依賴很嚴重,耦合度很高。

2. 結構不靈活,可擴展性不高,難以腳本化/可視化。

下圖是遊戲中怪物入戰的有限狀態機,如果我們想對攻擊敵人/追擊敵人狀態進行修改,是需要程序給我進行狀態類中內容修改的。

那如果我們可以把本來的巡邏、追擊敵人、攻擊敵人等狀態先進行更細分的封裝,是不是更好呢?那你就可以見到狀態機如下圖一樣的混亂,後期的維護基本很難進行。

結合前面兩種情況,我們又可以發現,使用有限狀態機,策劃不能充分參與其中,只能由程式設計師來完成,這會增加程式設計師的工作量。

綜上所述:在遊戲開發中使用狀態機顯然不失為一種選擇,首先它的概念並不複雜,其次它的實現也十分簡單而直接,所以當一個簡單的npc所需AI,使用狀態機是完全可行的。

但它的缺點卻也十分明顯,例如難以復用,因為它往往需要根據具體的情況來做出反應,當然當狀態機的模型複雜到一定的程度之後,也會帶來實現和維護上的困難。

而現在行為樹比有限狀態的幾個優勢:

1. 行為樹提供了強大的靈活性,很容易更改行為樹的結構,也易於後期的維護與擴展;

2. 在程序開發了元件後,邏輯層面全部交給了策劃,減少程式設計師工作量的同時,讓策劃也可以進行AI問題的初步排查。

正好彌補了我們上面所說的狀態機的缺點,那麼接下來我們就著重介紹行為樹吧。

2.2 行為樹

行為樹就是一棵節點層次分明的樹,控制著AI物體的一系列決定。從樹延伸出的葉子節點,執行控制AI物體的指令。各種工具節點組成樹的分支,來控制AI指令的走向以形成一系列的指令,這樣來滿足遊戲需要。

它可以是一棵很高的樹,可以具有完成特定功能的子樹,開發者可以創建行為庫並把它們適當地連接起來以達到非常真實的AI行為。開發過程是高度可迭代的,你可以先排出一個基礎的行為樹,然後創建新的分支來處理各種達到目標的可選方案,這些分支按照它們的優先級排列,這樣AI在一個特定的行為失敗可以回溯到另一個策略,這是行為樹巨大優勢所在。[3]

現在的很多項目就是Lua做邏輯開發,下圖分享一下項目中使用的Lua版本行為樹。

Lua行為樹執行上圖狀態機的相同AI功能:

如果對於上圖,一個簡單的行為樹看不懂的話,可以閱讀行為樹的工作原理:

在例子中,行為樹的優點是邏輯直觀、一目了然,策劃可以藉助工具直接配置,不需要程序介入。而缺點則是樹分支數量龐大,每次遍歷尋找合適節點的過程消耗高。

三、如何優化AI中的設計

如果僅僅只是講述前面兩點事實,這篇文章就沒有什麼意義,接下來分享一些自己對於AI方面的經驗,也希望在你優化AI的時候,這一部分能夠起到幫助。

3.1 NPC AI

在RPG遊戲發展的過程中,NPC擺脫了原本傻站原地,無腦發放任務的基本模式,融入了各種各樣的AI來豐富行為,《巫師3》中,白天開業的商人,巡邏街道的衛兵;《刺客信條》中,圍成一團的群眾,穿梭街道的小孩;《如龍0》中讓玩家印象深刻的勒索哥等等,這些遊戲中NPC AI的加入讓整個遊戲世界更加的真實,也讓玩家的沉浸感有著質的提升。

拿《逆水寒》NPC來舉例:

1.天氣影響:下雨時,NPC會自己打傘,或奔跑到屋簷下避雨,天氣放晴又會自動收起雨傘。

2. 互動:撞擊NPC可以觸發奇遇,與NPC好感度不同所進行交流的內容不同。

3. 行為:NPC有自己的活動路線,他們有自己的生活區域。

其實在NPC中還有很多其他的內容,更多的天氣感應、更多種類的職業配置,工作任務配置等等,都是讓遊戲內場景顯得更鮮活的方式,在AI中實現NPC具體的功能很簡單,這裡我們分析一下在AI拿到相應的行為前,是如何判定的。

NPC行為類型可以為兩類:

1.外部互動(玩家進行碰撞NPC等)

2.系統變化(天氣、時間等的變化引發NPC行為變化)

而一個NPC的智能行為過程主要分為三步:

1.事件觸發檢測

2.觸發響應得到候選的可執行行為

3.決斷出最終行為並通知AI

事件觸發

外部互動行為本身就是一個事件,所以當客戶端上傳外部事件消息時,直接處理就行了。系統變化是一個值變化事件,例如天氣值從原來的1(晴天)變為現在的4(小雨),這時系統特徵變化事件被觸發。

觸發響應

1.優先級高的行為觸發時,將打斷當前正在執行的低優先級行為。

2.優先級相同的行為觸發時,根據設定的行為類型優先級進行判定,如躲雨被撞擊,觸發外部互動。

3.當前幀在觸發過程中產生的新的觸發,會在下一幀執行,防止循環觸發。

行為決斷

通過觸發響應,得到了對應的候選可執行行為,此時我們就需要根據當前狀態得到最終執行的行為:

1.排除與當前正在執行的行為互斥的行為(行為互斥機制)。

2.優先挑選可持續的行為。

3.進行行為的更新。

在這樣一套流程下來後,AI就可以拿到NPC相應的Action,而具體需要觸發喊話,還是打傘,躲雨等動作,簡單的寫出行為子圖即可。

3.2 機器人AI

機器人AI,在這裡不是指傳統Robot的AI,而是指遊戲中各種活動需要,而生成的玩家鏡像機器人的AI。

在製作機器人AI,首先要知道機器人AI設計的主要目標:

◆ 模擬玩家進行對戰,用於PVP破冰和體驗提升。

◆ 新手過渡,讓玩家體驗活動時,培養成就感,避免尚未熟悉遊戲導致的挫折流失。

◆ 陪伴玩家,用強度合理的AI來陪伴玩家參與活動,減少玩家單人參與的有損體驗。

那麼機器人AI所需要參考的具體內容是哪些呢?

如果按照功能點維度,遊戲中運用到的機器人戰術一般分為三種:

◆ 單體戰術AI——AI的戰鬥細節

◆ 事件響應AI——AI對於事件的響應

◆ 協同戰術AI——AI能夠互相配合

而機器人本身一般需要涵蓋以下特性:

◆ 流暢性——技能釋放與銜接,追擊與逃跑等戰鬥效果。

◆ 擬真度——符合常識的PK反饋,讓玩家沒有違和感。

◆ 環境適應——機器人能夠適應遊戲內不同情境/活動的需要(機器人的廣度)。

◆ 難度可調——機器人的難度(戰鬥能力)可調(機器人的深度)。

那麼你具體的優化方向就可以往三種戰術、四種特性上擴展,以《英雄聯盟》與《逆水寒》為例:

《英雄聯盟》[4]

單人戰術:瀕死逃亡,當電腦在較低血量會逃走。

事件響應:尾刀響應,玩家殘血時,電腦會感知到,並使用全圖技能進行攻擊;推塔響應:玩家推完一塔後,二塔電腦玩家都會響應前來防守;換線響應,上路機器人來中路補線的時候,原本中單機器人會前往上路。

協同戰術:Gank行為:電腦幫助其他線玩家進行多打少局部戰鬥。

在上面的三種戰術的具體實行中,單人戰術大多僅需簡單的配置,而像事件響應與協同戰術需要更豐富的底層機制去支撐,一個協同戰術就需要:Group機制(可以通過發送Message來控制)、目標選擇機制、追擊與逃跑機制等的支撐。

《逆水寒》

雖然逆水寒機器人是深度學習AI進行控制,但其表現仍然可以用在很多先用的MOMORPG之中。

逆水寒機器人中一些出彩的機器人AI

以上就是機器人AI部分的分享,具體機器人AI的Lua行為樹該怎麼寫,這個反而應該是很簡單的存在,並且所需篇幅較長,這裡就不再拓展。

3.3 怪物AI

怪物AI整體的含義很寬泛,這裡不做過多的設計方面的分享,有太多的關卡/戰鬥策劃有自己的真知灼見,這裡就不獻醜,只在AI邏輯中進行一個分享。

前提:一個分為簡單、困難兩個難度的BOSS,擁有普通攻擊1、技能2,50%血量觸發的技能3,困難模式30%血量才有的技能4,撰寫簡單的Lua行為樹。(你可以思考一下打開的行為樹邏輯方式,甚至自己寫一些具體幾個節點的框架)

下圖,是上述BOSS AI子圖中的一部分,這裡為了方便閱讀並理解其中邏輯含義省去了很多重複的邏輯元件運用(castSkillAll應該為一張子圖,這裡就簡單合併為一個元件)。

一個簡單的BOSS AI子圖

在上圖中,需要注意以下幾點對你撰寫AI子圖會邏輯清晰以及方便很多:

1.returnBattle,在我們平時撰寫AI中,我們總會把線遷回到一開始,完成一個閉環,讓整個怪物AI循環起來,這樣做法沒有錯,但是循環再複雜BOSS本身會造成難以閱讀、修改等成本,讓程序直接創建一個回到戰鬥的元件,整個流程圖線性鋪開,十分利於閱讀。

2.putNewAction,有的怪物AI會把不同血量怪物掌握的不同技能再寫一遍,這樣的作法十分冗餘,也讓AI邏輯不利於閱讀,利用插入優先行為的形式,在技能達到觸發條件時,插入到怪物的技能列表裡,讓整個怪物邏輯更加清晰。

3.SkillFlag,起到的是保護作用,設置這樣一個參數,是為了當新技能不會被重複加入,第一次加入技能後,該參數自動變化,後面不會再插入該技能。

當然,在怪物 AI的子圖中還有很多小細節需要注意,但篇幅有限,僅先展開到這裡。

四、深度強化學習的人工智慧在遊戲中的運用。

這一部分僅僅作為簡單的分享,本人也並沒有製作深度強化學習人工智慧的能力,在與該類AI合作的過程中,能夠知道現在這類理論AI在遊戲中能運用到什麼水平。

4.1 深度學習的應用場景

深度學習機器人需學習、調整3個月左右(參照簡單RPG角色,時間受角色信息、樣本數量、場地因素等等多方面限制),能夠達到單人優秀玩家的水平。

如果想見識AI能達到的水平,可以參考逆水寒的流派挑戰

至於簡單的多人合作也可以做到,但是複雜場景中理論AI的運用會受到很高的局限性。

所以AI在遊戲中以Lua行為樹的形式存在應該還要很久,當然你也可以採用理論AI配合腳本AI的形式,所有玩法形式都由腳本控制,載入戰鬥狀態時調用理論AI即可。

PS:本文只是淺度分析了一下遊戲中的AI,具體AI的設計還是需要你自己接手項目,頻繁練習後方能有更深的感觸,這裡也只做拋磚引玉,歡迎堅持閱讀到這裡的朋友們在下方評論交流~

相關焦點

  • 斯坦福初創公司發力AI硬體,DeepMind刪除神經元了解深度學習
    utm_campaign=Revue%20newsletter&utm_medium=Newsletter&utm_source=The%20Wild%20Week%20in%20AI簡單隨機搜索可以在MuJoCo等基準問題上超越強化學習算法嗎? 答案是肯定的。
  • 創維ai晶片電視怎麼樣 創維ai晶片電視優勢介紹【詳解】
    近幾年AI技術是被很多人提起的話題,為了讓人們真正感受到它的神奇,很多品牌會將其運用在自家產品上,其中創維新推出的ai電視就是運用了這一項科技,在發布會當天就引起了人們的極大興趣,這是一次跨越性的挑戰,意味著電視再一次進入了換新的時代。
  • 夏日專刊AI產品上新升級集錦,50餘項軟硬能力加速場景落地
    內容審核平臺:不斷優化文本、圖像審核能力,持續豐富審核維度、提升識別精度 文本審核:模型全面升級,準確率+10%對涉黃、涉政、暴恐、辱罵、廣告、灌水6個維度的模型進行閾值調優和效果優化,提升模型在社交、資訊、遊戲、電商等典型場景下的識別精度,例如:廣告模型的召回率提升至97%以上
  • Roblox收購3D虛擬化身應用公司Loom.ai
    12月15日青亭網報導,風靡全球的數字創作平臺廠商Roblox,近期宣布收購3D虛擬化身應用平臺:Loom.ai。據了解,Loom.ai最初亮相於2016年,由夢工廠和盧卡斯影業從事視覺工作的專業員工創辦。
  • 深度強化學習試金石:DeepMind和OpenAI攻克蒙特祖瑪復仇的真正意義
    本文作者長期從事深度強化學習研究,他認為DeepMind和OpenAI攻克蒙特祖瑪的復仇並沒有看上去意義那麼重大,深度強化學習的長期目標是讓智能體具備先驗知識,可以從零開始玩遊戲。他們這些宣稱很重要,因為《蒙特祖瑪的復仇》這個遊戲對於AI研究來說很重要。與街機學習環境(Arcade Learning Environment,ALE)裡的絕大多數遊戲不同,大多數遊戲現在很容易被利用深度學習的agent解決掉,達到超越人類水平的表現。但《蒙特祖瑪的復仇》一直沒有被深度強化學習方法解決,而且被一些人認為在未來的幾年裡都無法解決。
  • VR社交遊戲平臺Roblox收購Loom.ai IPO或延期至明年
    據外媒報導,業內著名VR社交遊戲平臺Roblox已正式收購了Loom.ai,並希望此次收購能給用戶創造更加逼真的3D頭像。不過,具體的收購價格並未披露,同時華爾街日報也就此事進行了報導,表示Roblox的首次公開募股將推遲到明年。
  • 網易伏羲首席遊戲AI技術專家陶建容:AI賦能遊戲創造價值
    2019年,遊戲在全世界範圍內產生了大概1200億美元的總收入。隨著越來越多的玩家加入,遊戲所需要的內容也就越來越多。在遊戲中,玩家和機器共同設計和創造出了非常多的內容,同時也產生了大量玩家體驗和行為的數據。同時,遊戲也在驅動AI幾乎所有核心領域的發展,包括強化學習、圖形圖像、自然語言、用戶感知、信號處理等等。
  • 百度IDL傑出科學家徐偉出走加入地平線 擔任通用AI首席科學家
    今天凌晨,百度深度學習實驗室(IDL)傑出科學家徐偉正式宣布離職,加入地平線機器人(horizon.ai)擔任通用AI首席科學家,在矽谷建立General AI Lab,目標是做出具有人類這樣的學習能力的機器。   據了解,徐偉今天凌晨在朋友圈發布消息稱:「開啟新的旅途。
  • 推薦|「讓電影音效強化的SURROUND:ai,所有電影都要重新看一遍了」YAMAHA RX-A3080 AV放大器!​
    日本Yamaha山葉就在同行中率先推出具有學習功能的「SURROUND:ai」技術的AV產品,前年A系列所發布的旗艦前級處理器CX-A5200和合併式功放RX-A3080就率先應用了這個技術。而「SURROUND:ai」就特別針對這個問題,設計了一套人工智慧的程序,配合電影的聲音信號,機器內部就會自動「創造音場」,電影的情境、場景都會隨著劇情不斷改變,「SURROUND:ai」會智能地檢測到電影音效中的環繞聲情況
  • 全球三十大最佳 AI 創業公司公布
    4、Drive.ai(GGV紀源資本被投企業) Drive.ai 成立於 2015 年,是一家位於矽谷的自動駕駛公司,其主要成員來自史丹福大學人工智慧實驗室。公司專注研究深度學習在自動駕駛中的應用,致力於通過工具包將普通汽車變為無人車。
  • 打「王者」的AI拿下了足球世界冠軍 騰訊研發「AI+遊戲」意欲為何?
    騰訊方面表示,「AI+遊戲」是騰訊攻克AI終極研究難題——通用人工智慧(AGI)的關鍵一步。從圍棋機器人「絕藝」到「絕悟」,不斷讓AI從0到1去學習進化,未來有望在醫療、製造等領域帶來更深遠影響。 早在2016年,騰訊AI Lab就已開始了「AI+遊戲」的研究之路。當時研發的圍棋AI「絕藝」相繼在UEC杯、AI龍星戰以及圍棋人工智慧大賽等頂級賽事中三次奪冠,並成為中國國家隊圍棋訓練專用AI。圍棋AI的難點在於大規模離散決策空間探索,突破強化學習理論實踐瓶頸,探索超過人類的優化策略。
  • DeepMind秀出最強遊戲AI!57場Atari遊戲超過人類,復盤遊戲AI進化史
    在維基百科上,智能代理被解釋為「一個可以觀察周遭環境並做出行動以達到目標的自主實體」,具有深度強化學習(reinforcement learning)能力。通常來說,智能代理的形態是軟體程序。而要衡量代理的深度強化學習能力,就需要一套普適的測試流程與劃分標準。1、遊戲環境是絕佳測試場地研究人員認為,遊戲是測試自適應算法的絕佳選擇。
  • 都在說GPT-3和AlphaFold,2020沒點別的AI技術突破了?
    曉查 蕾師師 發自 凹非寺量子位 報導 | 公眾號 QbitAI2020年在緊張的防疫工作中悄然過去。這一年,人工智慧卻從來沒有停下前進的腳步。這一年人工智慧行業有哪些新進展?為全球疫情做了哪些貢獻?明年趨勢又將如何?
  • 我的深度學習入門路線
    前言說實話,紅色石頭也是一個美劇迷,特別是一些燒腦的美劇,更是一追再追。前段時間,《西部世界》第二季也完結了。紅色石頭一鼓作氣,看完之後,大呼過癮,深深地被其中栩栩如生的人工智慧機器人所吸引。不禁感嘆:現實世界真的會出現這樣厲害的人工智慧嗎?這雖然是一個看似遙遠的事情,但也真的不好說沒有可能!縱觀這幾年,深度學習發展非常迅速,發展勢頭一直高歌猛進。
  • 讓神經網絡給符號AI「打工」,MIT和IBM聯合解決深度學習痛點,未來...
    小鴨毫不費力地做的事情對於人工智慧來說是很難的,尤其是深度神經網絡這一AI分支。如果交給符號AI,它會怎麼做?符號AI會處理物體的名稱作為知識庫,並給「相似」做出定義作為命題。Lake和Wang分別用兩種不同方式來訓練遊戲AI。一種是監督學習,向神經網絡展示棋盤和人類提出的好問題。最終神經網絡學會了提問,但是很少有創造力。另一種是強化學習。
  • Xilinx、Spline.AI、AWS 推出 X 射線分型深度學習模型和參考設計
    賽靈思公司宣布推出全功能醫療 X 射線分型深度學習模型和參考設計套件,這是賽靈思與 Spline.AI 及亞馬遜網絡服務(AWS)強強攜手共同取得的合作成果。
  • 基於PPO強化學習算法的AI成功拿下29個關卡!
    不過,遺憾的是第4、7、8場景中的第4關卡未通過。Viet Nguyen使用的強化學習算法正是OpenAI研發的近端策略優化算法(Proximal Policy Optimization,簡稱PPO),他介紹,此前使用A3C代碼訓練馬裡奧闖關,效果遠不及此,這次能夠達到29關也是超出了原本的預期。
  • 被AI改變的真實世界
    但如果BTS使用我們的技術,用於製作遊戲、有聲讀物或是動畫配音上,他們就未必需要親自錄製了」。Supertone的聲音合成技術,是讓AI聆聽多首帶有相關音符和歌詞的樂曲,通過不斷學習合成目標的聲音。Choi透露,AI先是學習了來自20位歌手的100首歌曲,再學習了金光石的10首歌曲。「現在AI已經對金光石的聲音非常了解,它完全可以模仿金光石的獨特風格和發音。」Choi說。
  • 麻將AI超越99%人類玩家:專業十段,學習能力堪比阿法狗
    從最早的AI(人工智慧)在西洋棋中戰勝人類開始,中國象棋、德州撲克、圍棋等智力遊戲相繼淪陷,在DOTA、星際爭霸等電子遊戲中也表現亮眼,但是AI在麻將領域卻一直沒有突破。據介紹,開始階段研究員們利用天鳳平臺的公開數據得到一個初始模型,並在模型基礎上用自我博弈的方式進行強化學習訓練。研究員開發了丟牌模型、立直模型、吃牌模型、碰牌模型以及槓牌模型等五大模型,專門訓練「超級鳳凰」的打牌策略。這五大模型都基於深度殘差卷積神經網絡,並一一應對麻將複雜的決策類型。
  • 《逃離塔科夫》12口徑爆頭任務怎麼做 海岸線ai位置介紹
    > 逃離塔科夫 > 正文 《逃離塔科夫》12口徑爆頭任務怎麼做 海岸線ai位置介紹 2020-03-18 14:38:29 第一人稱射擊FPS 人氣值:加載中...