王亮游戲AI探索之旅——從alphago到moba游戲

王亮游戲AI探索之旅——從alphago到moba游戲的圖1

今天分享的課題是游戲AI探索之旅。本次分享分為四部分,第一部分,什么是游戲AI,游戲AI為什么對現在的游戲非常重要;第二部分,業界和工業界對于做游戲AI主要的方法,以及現在業界一些主流的游戲上的進展。第三部分,結合基于公司自有的MOBA游戲,分享一下我們做的一些探索研究及現在的進展;第四部分,會簡單介紹一下基于深度學習方法來做游戲AI,對于游戲開發者來說需要提供哪些環境便于AI的開發。希望通過今天的分享能給大家之后工作或者接下來學習上帶來一些的啟發和思考。

什么是游戲AI,對于游戲開發者而言是要增進用戶體驗,提升游戲玩家的活躍度,方法主要是基于一些人工規則的方式。而對于學術界來說目標是最大化贏的概率,而現在主要是基于學習的方法。

幾乎每款游戲都有自己的游戲AI。棋片卑類的(深藍、Alphago)、體育類的足球籃球、角色扮演類游戲……越復雜的游戲對AI的依賴程度越高。AI在游戲中常用的方式:人機對戰:AI為游戲提供一種玩法,玩家可以選擇與游戲AI對戰去熟悉游戲;平衡性測試:輔助游戲設計開發,如:游戲數值改變,AI可以用于驗證測試數值變化帶來的影響;對于射擊類的游戲,AI可以用于探索地圖的探索等。

王亮游戲AI探索之旅——從alphago到moba游戲的圖2

通用的游戲AI的設計,包含三部分: 感知系統、決策系統、導航系統;游戲AI的決策操作基于一定的時間粒度進行循環工作。

王亮游戲AI探索之旅——從alphago到moba游戲的圖3

接下來介紹一下常用的游戲AI方案,游戲AI常用方法分為三類:1) 工業界常用的行為樹、有限狀態機及勢力圖,優點:實現邏輯清晰,不足:固定邏輯執行,容易被玩家識破,復雜邏輯難實現; 2) search方法,常用的方法:遺傳算法、蒙特卡洛搜索樹方法等; 3) 基于learning的方法: 監督學習算法、強化學習算法;

王亮游戲AI探索之旅——從alphago到moba游戲的圖4

監督學習算法:基于訓練數據,難點是抽象狀態環境以及執行操作Action,通常Action的定義直接影響模型的上限;對于復雜游戲來講,對于狀態s很難定義最優的Action操作。

王亮游戲AI探索之旅——從alphago到moba游戲的圖5

強化學習回避SL中如何確定“正確”A的問題,轉而定義reward(例如贏一場比賽reward=10,擊殺對方英雄reward=1, 自身死亡reward=-5);強化學習通常用于序列操作決策問題,對于強化學習來說,特別是復雜游戲,遇到的挑戰:1) exploration和exploitation的問題, 2) 對于游戲玩法時間較長,如何解決reward delay問題。

王亮游戲AI探索之旅——從alphago到moba游戲的圖6

談到游戲AI探索研究,目前很多研究者在星際2上探索,目前星際上AI采用目前最強的StarCraft AI由hard-coded程序和learning程序共同實現,且hard-coded部分占大部分;目前最強的StarCraft AI還不能戰勝業余的中上水平。星際游戲較為復雜,通用設計:將AI根據決策時間長短,分為:strategy,tactics, reactive control 進行分層優化。

王亮游戲AI探索之旅——從alphago到moba游戲的圖7

Alphago掀起了游戲AI的浪潮,它成功超越了人類,它的算法主要由Supervised learning + Reinforcement learning +Monte Carlo tree search三部分組成,它的線下訓練需要大量的計算資源。目前DeepMind跟暴雪已經合作開發了一個開放平臺,模擬器是非常重要的,如果要做游戲AI相關開發,模擬器是必要的環境,通過模擬器獲取數據以及提供一些操作指令能直接操作游戲AI。

王亮游戲AI探索之旅——從alphago到moba游戲的圖8

今年在游戲界或者在游戲AI行業里最有影響力的就是Dota2了,在5個特定英雄等限制條件下AI能力能夠超過90%的玩家(截至2018.6.25)。采用的是強化學習的方法。線下訓練所使用的資源遠遠大于Alphago在圍棋上使用的資源:12W+CPU,256GPU。

王亮游戲AI探索之旅——從alphago到moba游戲的圖9

接下來介紹我們在MOBA游戲上的AI研究與探索。王者榮耀是一款即時戰略游戲,與Dota,LoL是同類型游戲。MOBA游戲特點:注重英雄的操作,英雄設計較為復雜。介紹AI技術方案之前,首先我們來看下做MOBA類游戲難點在哪:

王亮游戲AI探索之旅——從alphago到moba游戲的圖10

強化學習在圍棋上成功的應用,為什么Moba類游戲AI還沒有戰勝人類的職業選手?以王者榮耀這款游戲來分析,從狀態訓練空間來看,王者的操作基本是在102000,圍棋只有10170。操作序列空間也存在巨大差別,導致計算會非常非常大。

王亮游戲AI探索之旅——從alphago到moba游戲的圖11

我們再看一下王者榮耀跟圍棋存在什么樣的差異:從AI的個數上來說,圍棋只有一個AI,只需關注黑白子。對于王者來而言卻是有多種對戰情況的,5V5,3V3,是多個AI的操作。其次就是確定性的問題,下圍棋落子即定,不存在下完還可能下不成功的問題。而對于戰略性游戲卻是非確定的操作,即使發出了技能也有可能被人打斷,所以是非確定性的操作。對于狀態可觀測性,圍棋可以看到整體的情況,而王者地圖對于玩家而言是部分可見,只能看到友方的視野,這樣就會涉及到博弈問題:如何去預測敵方的位置。

王亮游戲AI探索之旅——從alphago到moba游戲的圖12

接下來我們再看下目標學習問題。目標學習是非常重要的,首先需要解決每個英雄要去哪里的問題,對每個英雄或者對每類英雄要去的位置和出場是不一樣的。其次就是選目標的問題:游戲中有七十多個英雄,每一局英雄可能不一致,如何解決英雄不一致的問題?因為AI學的是用戶的操作,每個英雄技能設計不一樣,有的是方向型的技能,有的是指向型技能,有的是位置型技能。

王亮游戲AI探索之旅——從alphago到moba游戲的圖13

第三個難點是知識表達的問題。如果對于一個復雜英雄如:露娜,李白,玩家沒有熟悉一百場練習很難熟練操作這復雜英雄。露娜無限連怎么打,關羽的無限推,李白四字真言,諸葛亮大招躲避。另外每個英雄有一些技能狀態變化的設計,例如說花木蘭,它的技能會隨著三技能的變更,前兩個技能效果也會變。這些如何表示?對于人來說是游戲常識,難點在于對于AI如何進行表達。

王亮游戲AI探索之旅——從alphago到moba游戲的圖14

對于遇到的主要問題我們的解決方案:第一是引入框架進行分層,任務分層場景切分。對于知識表達,引入了多模態的特征表達方式:卷積特征+向量特征+ 時序特征;模型采用多深度學習模型結合

王亮游戲AI探索之旅——從alphago到moba游戲的圖15

接下來介紹下王者AI的主要技術解決方案??蚣茉O計主要包含兩大組成部分:游戲分析和策略模塊。游戲分析模塊主要包含:英雄搭配問題,裝備策略的分析等。策略執行模塊用以解決:接下來去做什么,到達對應地點后如何進行對戰的問題。

大局觀設計,大局觀是解決下一時刻位置問題。具體來說對于英雄它下一次的熱點在哪里?下一次的戰斗位置在哪兒?或者它下一次蹲草叢在哪個位置。微操的設計,微操解決的是場景發生戰斗的問題。我們特征采用多模態方式組織:位置相關信息通過imagelike特征組織,屬性信息通過向量特征表征,采用深度學習的Multi-task模型。

王亮游戲AI探索之旅——從alphago到moba游戲的圖16

整體來說隨著強化學習,深度學習方向進展,以前主要是基于規則,現在主要是基于學習方式來研究AI。如果采取基于學習的方式研究AI對于開發者而言需要提供相關的環境便于開發者進行迭代調試??偠灾琈OBA類游戲AI研發遇到很多困難與挑戰,但也充滿了機會。這是今天的分享,謝謝大家。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP