游戏AI探索之旅:从AlphaGo到MOBA游戏
背景:7月28日,騰訊云在北京舉辦云+社區(qū)沙龍,邀請(qǐng)來(lái)自騰訊與四川云檢科技的五位AI技術(shù)專家,分享他們?cè)趯I(yè)領(lǐng)域的AI開發(fā)經(jīng)驗(yàn),幫助開發(fā)者在具體行業(yè)場(chǎng)景中實(shí)踐AI技術(shù)。本文根據(jù)王亮在【7.28日騰訊云+社區(qū)技術(shù)沙龍-AI技術(shù)全面場(chǎng)景化落地實(shí)踐】現(xiàn)場(chǎng)演講內(nèi)容整理而成。
王亮,騰訊AI高級(jí)研究員。2013年加入騰訊,從事大數(shù)據(jù)預(yù)測(cè)以及游戲AI研發(fā)工作。目前主要從事MOBA類游戲AI相關(guān)的研發(fā)工作。
今天分享的課題是游戲AI探索之旅。本次分享分為四部分:
第一部分,什么是游戲AI,游戲AI為什么對(duì)現(xiàn)在的游戲非常重要;
第二部分,業(yè)界和工業(yè)界對(duì)于做游戲AI主要的方法,以及現(xiàn)在業(yè)界一些主流的游戲上的進(jìn)展。
第三部分,結(jié)合基于公司自有的MOBA游戲,分享一下我們做的一些探索研究及現(xiàn)在的進(jìn)展;
第四部分,會(huì)簡(jiǎn)單介紹一下基于深度學(xué)習(xí)方法來(lái)做游戲AI,對(duì)于游戲開發(fā)者來(lái)說(shuō)需要提供哪些環(huán)境便于AI的開發(fā)。希望通過(guò)今天的分享能給大家之后工作或者接下來(lái)學(xué)習(xí)上帶來(lái)一些的啟發(fā)和思考。
什么是游戲AI
什么是游戲AI,對(duì)于游戲開發(fā)者而言是要增進(jìn)用戶體驗(yàn),提升游戲玩家的活躍度,方法主要是基于一些人工規(guī)則的方式。而對(duì)于學(xué)術(shù)界來(lái)說(shuō)目標(biāo)是最大化贏的概率,而現(xiàn)在主要是基于學(xué)習(xí)的方法。
幾乎每款游戲都有自己的游戲AI。棋牌類的(深藍(lán)、Alphago)、體育類的足球籃球、角色扮演類游戲……越復(fù)雜的游戲?qū)I的依賴程度越高。AI在游戲中常用的方式:人機(jī)對(duì)戰(zhàn):AI為游戲提供一種玩法,玩家可以選擇與游戲AI對(duì)戰(zhàn)去熟悉游戲;平衡性測(cè)試:輔助游戲設(shè)計(jì)開發(fā),如:游戲數(shù)值改變,AI可以用于驗(yàn)證測(cè)試數(shù)值變化帶來(lái)的影響;對(duì)于射擊類的游戲,AI可以用于探索地圖的探索等。
通用的游戲AI的設(shè)計(jì),包含三部分: 感知系統(tǒng)、決策系統(tǒng)、導(dǎo)航系統(tǒng);游戲AI的決策操作基于一定的時(shí)間粒度進(jìn)行循環(huán)工作。
業(yè)界和工業(yè)界對(duì)于做游戲AI主要的方法
接下來(lái)介紹一下常用的游戲AI方案,游戲AI常用方法分為三類:1) 工業(yè)界常用的行為樹、有限狀態(tài)機(jī)及勢(shì)力圖,優(yōu)點(diǎn):實(shí)現(xiàn)邏輯清晰,不足:固定邏輯執(zhí)行,容易被玩家識(shí)破,復(fù)雜邏輯難實(shí)現(xiàn); 2) search方法,常用的方法:遺傳算法、蒙特卡洛搜索樹方法等; 3) 基于learning的方法: 監(jiān)督學(xué)習(xí)算法、強(qiáng)化學(xué)習(xí)算法;
監(jiān)督學(xué)習(xí)算法:基于訓(xùn)練數(shù)據(jù),難點(diǎn)是抽象狀態(tài)環(huán)境以及執(zhí)行操作Action,通常Action的定義直接影響模型的上限;對(duì)于復(fù)雜游戲來(lái)講,對(duì)于狀態(tài)s很難定義最優(yōu)的Action操作。
強(qiáng)化學(xué)習(xí)回避SL中如何確定“正確”A的問(wèn)題,轉(zhuǎn)而定義reward(例如贏一場(chǎng)比賽reward=10,擊殺對(duì)方英雄reward=1, 自身死亡reward=-5);強(qiáng)化學(xué)習(xí)通常用于序列操作決策問(wèn)題,對(duì)于強(qiáng)化學(xué)習(xí)來(lái)說(shuō),特別是復(fù)雜游戲,遇到的挑戰(zhàn):1) exploration和exploitation的問(wèn)題, 2) 對(duì)于游戲玩法時(shí)間較長(zhǎng),如何解決reward delay問(wèn)題。
談到游戲AI探索研究,目前很多研究者在星際2上探索,目前星際上AI采用目前最強(qiáng)的StarCraftAI由hard-coded程序和learning程序共同實(shí)現(xiàn),且hard-coded部分占大部分;目前最強(qiáng)的StarCraft AI還不能戰(zhàn)勝業(yè)余的中上水平。星際游戲較為復(fù)雜,通用設(shè)計(jì):將AI根據(jù)決策時(shí)間長(zhǎng)短,分為:strategy,tactics, reactive control 進(jìn)行分層優(yōu)化。
Alphago掀起了游戲AI的浪潮,它成功超越了人類,它的算法主要由Supervised learning +Reinforcement learning +Monte Carlo tree search三部分組成,它的線下訓(xùn)練需要大量的計(jì)算資源。目前DeepMind跟暴雪已經(jīng)合作開發(fā)了一個(gè)開放平臺(tái),模擬器是非常重要的,如果要做游戲AI相關(guān)開發(fā),模擬器是必要的環(huán)境,通過(guò)模擬器獲取數(shù)據(jù)以及提供一些操作指令能直接操作游戲AI。
今年在游戲界或者在游戲AI行業(yè)里最有影響力的就是Dota2了,在5個(gè)特定英雄等限制條件下AI能力能夠超過(guò)90%的玩家(截至2018.6.25)。采用的是強(qiáng)化學(xué)習(xí)的方法。線下訓(xùn)練所使用的資源遠(yuǎn)遠(yuǎn)大于Alphago在圍棋上使用的資源:12W+CPU,256GPU。
? ??
MOBA游戲AI的研究與探索接下來(lái)介紹我們?cè)贛OBA游戲上的AI研究與探索。王者榮耀是一款即時(shí)戰(zhàn)略游戲,與Dota,LoL是同類型游戲。MOBA游戲特點(diǎn):注重英雄的操作,英雄設(shè)計(jì)較為復(fù)雜。
介紹AI技術(shù)方案之前,首先我們來(lái)看下做MOBA類游戲難點(diǎn)在哪:
強(qiáng)化學(xué)習(xí)在圍棋上成功的應(yīng)用,為什么Moba類游戲AI還沒有戰(zhàn)勝人類的職業(yè)選手?以王者榮耀這款游戲來(lái)分析,從狀態(tài)訓(xùn)練空間來(lái)看,王者的操作基本是在102000,圍棋只有10170。操作序列空間也存在巨大差別,導(dǎo)致計(jì)算會(huì)非常非常大。
我們?cè)倏匆幌峦跽邩s耀跟圍棋存在什么樣的差異:從AI的個(gè)數(shù)上來(lái)說(shuō),圍棋只有一個(gè)AI,只需關(guān)注黑白子。對(duì)于王者來(lái)而言卻是有多種對(duì)戰(zhàn)情況的,5V5,3V3,是多個(gè)AI的操作。其次就是確定性的問(wèn)題,下圍棋落子即定,不存在下完還可能下不成功的問(wèn)題。而對(duì)于戰(zhàn)略性游戲卻是非確定的操作,即使發(fā)出了技能也有可能被人打斷,所以是非確定性的操作。對(duì)于狀態(tài)可觀測(cè)性,圍棋可以看到整體的情況,而王者地圖對(duì)于玩家而言是部分可見,只能看到友方的視野,這樣就會(huì)涉及到博弈問(wèn)題:如何去預(yù)測(cè)敵方的位置。
接下來(lái)我們?cè)倏聪履繕?biāo)學(xué)習(xí)問(wèn)題。目標(biāo)學(xué)習(xí)是非常重要的,首先需要解決每個(gè)英雄要去哪里的問(wèn)題,對(duì)每個(gè)英雄或者對(duì)每類英雄要去的位置和出場(chǎng)是不一樣的。其次就是選目標(biāo)的問(wèn)題:游戲中有七十多個(gè)英雄,每一局英雄可能不一致,如何解決英雄不一致的問(wèn)題?因?yàn)锳I學(xué)的是用戶的操作,每個(gè)英雄技能設(shè)計(jì)不一樣,有的是方向型的技能,有的是指向型技能,有的是位置型技能。
第三個(gè)難點(diǎn)是知識(shí)表達(dá)的問(wèn)題。如果對(duì)于一個(gè)復(fù)雜英雄如:露娜,李白,玩家沒有熟悉一百場(chǎng)練習(xí)很難熟練操作這復(fù)雜英雄。露娜無(wú)限連怎么打,關(guān)羽的無(wú)限推,李白四字真言,諸葛亮大招躲避。另外每個(gè)英雄有一些技能狀態(tài)變化的設(shè)計(jì),例如說(shuō)花木蘭,它的技能會(huì)隨著三技能的變更,前兩個(gè)技能效果也會(huì)變。這些如何表示?對(duì)于人來(lái)說(shuō)是游戲常識(shí),難點(diǎn)在于對(duì)于AI如何進(jìn)行表達(dá)。
對(duì)于遇到的主要問(wèn)題我們的解決方案:第一是引入框架進(jìn)行分層,任務(wù)分層場(chǎng)景切分。對(duì)于知識(shí)表達(dá),引入了多模態(tài)的特征表達(dá)方式:卷積特征+向量特征+ 時(shí)序特征;模型采用多深度學(xué)習(xí)模型結(jié)合。
接下來(lái)介紹下王者AI的主要技術(shù)解決方案。框架設(shè)計(jì)主要包含兩大組成部分:游戲分析和策略模塊。游戲分析模塊主要包含:英雄搭配問(wèn)題,裝備策略的分析等。策略執(zhí)行模塊用以解決:接下來(lái)去做什么,到達(dá)對(duì)應(yīng)地點(diǎn)后如何進(jìn)行對(duì)戰(zhàn)的問(wèn)題。
大局觀設(shè)計(jì),大局觀是解決下一時(shí)刻位置問(wèn)題。具體來(lái)說(shuō)對(duì)于英雄它下一次的熱點(diǎn)在哪里?下一次的戰(zhàn)斗位置在哪兒?或者它下一次蹲草叢在哪個(gè)位置。微操的設(shè)計(jì),微操解決的是場(chǎng)景發(fā)生戰(zhàn)斗的問(wèn)題。我們特征采用多模態(tài)方式組織:位置相關(guān)信息通過(guò)imagelike特征組織,屬性信息通過(guò)向量特征表征,采用深度學(xué)習(xí)的Multi-task模型。
整體來(lái)說(shuō)隨著強(qiáng)化學(xué)習(xí),深度學(xué)習(xí)方向進(jìn)展,以前主要是基于規(guī)則,現(xiàn)在主要是基于學(xué)習(xí)方式來(lái)研究AI。如果采取基于學(xué)習(xí)的方式研究AI對(duì)于開發(fā)者而言需要提供相關(guān)的環(huán)境便于開發(fā)者進(jìn)行迭代調(diào)試。總而言之,MOBA類游戲AI研發(fā)遇到很多困難與挑戰(zhàn),但也充滿了機(jī)會(huì)。
這是今天的分享,謝謝大家。
?
在后臺(tái)直接回復(fù)“游戲AI”,可獲得本次分享的PPT。
總結(jié)
以上是生活随笔為你收集整理的游戏AI探索之旅:从AlphaGo到MOBA游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 我不是码神!Serverless真的可以
- 下一篇: 解决多进程模式下引起的“惊群”效应