機(jī)器學(xué)習(xí)如何優(yōu)化策略游戲
為營(yíng)造積極的游戲體驗(yàn),游戲設(shè)計(jì)者通常會(huì)反復(fù)調(diào)整游戲中的平衡性:
- 通過(guò)測(cè)試用戶成千上萬(wàn)次的游戲會(huì)話進(jìn)行壓力測(cè)試
- 整合反饋,重新設(shè)計(jì)游戲
- 重復(fù)步驟 1 和 2,直到游戲測(cè)試人員和設(shè)計(jì)者都滿意為止
這個(gè)過(guò)程不僅耗時(shí),而且明顯存在不足:游戲越復(fù)雜,細(xì)微的缺陷就越容易被忽視。當(dāng)游戲中有多個(gè)可供扮演的角色和大量相互關(guān)聯(lián)的技能時(shí),要達(dá)到平衡便更為困難。
今天,我們將介紹一種機(jī)器學(xué)習(xí) (ML) 方法:訓(xùn)練模型充當(dāng)游戲測(cè)試人員來(lái)調(diào)整游戲平衡,并在數(shù)字卡牌游戲原型 Chimera 上演示這種方法。先前,我們也用相同的測(cè)試平臺(tái)演示了 ML 生成的藝術(shù)。這種基于 ML 的游戲測(cè)試方法使用訓(xùn)練好的智能體 (Agent) 通過(guò)數(shù)百萬(wàn)次模擬收集數(shù)據(jù),讓游戲設(shè)計(jì)者可以更高效地將游戲打造得更有趣、更平衡的同時(shí)也符合設(shè)計(jì)預(yù)期。
Chimera
https://www.youtube.com/watch?v=hMWjerCqRFA&t=239s
Chimera
我們開發(fā)的 Chimera 是一個(gè)游戲原型,在開發(fā)過(guò)程中依賴了大量的機(jī)器學(xué)習(xí)。對(duì)于游戲本身,我們有針對(duì)性地設(shè)計(jì)了規(guī)則,擴(kuò)大了可能性空間,使得很難通過(guò)傳統(tǒng)的人工構(gòu)建的 AI 來(lái)進(jìn)行游戲。
Chimera 的玩法圍繞奇美拉(Chimera,神話生物)展開,這些生物混合體將由玩家強(qiáng)化和進(jìn)化。游戲的目標(biāo)是打敗對(duì)手的奇美拉。游戲設(shè)計(jì)中的關(guān)鍵點(diǎn)如下:
- 玩家可以:
- 操控生物,可發(fā)出攻擊(使用攻擊統(tǒng)計(jì),attack stat)或受到攻擊(減少生命統(tǒng)計(jì),health stat);
- 使用法術(shù),產(chǎn)生特殊效果。
- 生物被召喚到容量有限的生物群系,實(shí)際放置于牌桌空間。每個(gè)生物都有對(duì)應(yīng)的偏好生物群系,如果被放置于不正確的生物群系或超出容量的生物群系則會(huì)受到重復(fù)傷害。
- 玩家控制的是一只奇美拉,奇美拉最開始處于基本的“蛋”狀態(tài),通過(guò)吸收生物來(lái)進(jìn)化和強(qiáng)化。為此,玩家還必須通過(guò)各種游戲機(jī)制獲得一定的鏈接能量。
- 當(dāng)玩家成功將對(duì)方奇美拉的生命降至 0 時(shí),游戲就會(huì)結(jié)束。
學(xué)習(xí)玩 Chimera
Chimera 是一款具有較大狀態(tài)空間的不完美信息博弈 (Imperfect Information) 卡牌游戲,我們預(yù)計(jì)這會(huì)讓 ML 模型難以學(xué)習(xí),并且我們的目標(biāo)還是一個(gè)相對(duì)簡(jiǎn)單的模型。我們的方法受 AlphaGo 等早期對(duì)弈智能體使用的方法啟發(fā),其中卷積神經(jīng)網(wǎng)絡(luò) (CNN) 被訓(xùn)練來(lái)預(yù)測(cè)給定任意對(duì)弈狀態(tài)下的獲勝概率。在隨機(jī)移動(dòng)的對(duì)局上訓(xùn)練初始模型后,我們?cè)O(shè)置智能體與自己對(duì)戰(zhàn),反復(fù)收集對(duì)局?jǐn)?shù)據(jù),然后用于訓(xùn)練新的智能體。每次迭代后,訓(xùn)練數(shù)據(jù)的質(zhì)量都會(huì)提高,智能體的游戲能力也會(huì)增強(qiáng)。
隨著訓(xùn)練的推進(jìn),與性能最好的人工構(gòu)建的 AI 相比,ML 智能體的表現(xiàn)情況:最初的 ML 智能體(版本 0)隨機(jī)移動(dòng)
AlphaGo
https://deepmind.com/research/case-studies/alphago-the-story-so-far
對(duì)于模型接收為輸入的實(shí)際游戲狀態(tài)表征,我們發(fā)現(xiàn)將“圖像”編碼傳遞給 CNN 可獲得最佳表現(xiàn),結(jié)果超過(guò)了所有基準(zhǔn)程序智能體和其他類型的網(wǎng)絡(luò)(如完全連接)。選擇的模型架構(gòu)足夠小,可以在合理時(shí)間內(nèi)在 CPU 上運(yùn)行。我們因此能夠下載模型權(quán)重,并使用 Unity Barracuda 在 Chimera 游戲客戶端中實(shí)時(shí)運(yùn)行智能體。

用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的示例游戲狀態(tài)表征
Unity Barracuda
https://github.com/Unity-Technologies/barracuda-release
除了為游戲 AI 做出決策,我們還使用該模型顯示玩家在游戲過(guò)程中的估計(jì)獲勝概率
平衡 Chimera
在相同時(shí)間內(nèi),模擬方法可比真實(shí)玩家能夠完成的對(duì)局多出數(shù)百萬(wàn)場(chǎng)。在收集了表現(xiàn)最好的智能體的游戲數(shù)據(jù)后,分析結(jié)果顯示出我們?cè)O(shè)計(jì)的兩種玩家卡組之間的不平衡。
首先,Evasion Link Gen 卡組的法術(shù)和生物能產(chǎn)生額外的鏈接能量進(jìn)化玩家的奇美拉。它還包含使生物能夠閃避攻擊的法術(shù)。相比之下,Damage-Heal 卡組的生物具有多種實(shí)力和專注于治療與造成輕微傷害的法術(shù)。雖然我們將這兩套卡組設(shè)計(jì)為具有相同的實(shí)力,但是 Evasion Link Gen 卡組在與 Damage-Heal 卡組對(duì)戰(zhàn)時(shí)取得了 60% 的勝率。
在我們收集與生物群系、生物、法術(shù)和奇美拉進(jìn)化相關(guān)的各種統(tǒng)計(jì)數(shù)據(jù)后,有兩個(gè)結(jié)果立刻浮現(xiàn)出來(lái):
- 進(jìn)化奇美拉可以帶來(lái)顯著優(yōu)勢(shì) - 奇美拉進(jìn)化次數(shù)更多的智能體更有可能贏得對(duì)局。然而,每場(chǎng)對(duì)局的平均進(jìn)化次數(shù)并沒(méi)有達(dá)到我們的預(yù)期。為了讓它成為更核心的游戲機(jī)制,我們要增加總體平均進(jìn)化次數(shù),同時(shí)保持其使用策略。
- 霸王龍生物過(guò)于強(qiáng)大。它的出現(xiàn)與勝利密切相關(guān),而且模型將始終選擇霸王龍,不考慮召喚到錯(cuò)誤或過(guò)度擁擠的生物群系的懲罰。
根據(jù)這些分析結(jié)果,我們對(duì)游戲做出了一些調(diào)整:
- 為了強(qiáng)調(diào)奇美拉進(jìn)化是游戲的核心機(jī)制,我們將進(jìn)化奇美拉所需的鏈接能量從 3 減少到 1。
- 我們還為霸王龍生物增加了一個(gè)“冷卻”期,使其從任何行動(dòng)中恢復(fù)的時(shí)間都增加了一倍。
使用更新后的規(guī)則重復(fù)“自我對(duì)局”訓(xùn)練程序,結(jié)果顯示這些調(diào)整將游戲推向了預(yù)期的方向 - 每局游戲的平均進(jìn)化次數(shù)有所增加,霸王龍的優(yōu)勢(shì)逐漸被削弱。
霸王龍平衡前后的影響力比較示例:圖表呈現(xiàn)了當(dāng)卡組發(fā)起特定法術(shù)互動(dòng)(如,使用“閃避”法術(shù)強(qiáng)化霸王龍)時(shí)獲勝(或失敗)的對(duì)局?jǐn)?shù)量。左:改動(dòng)前,霸王龍?jiān)谒袡z查指標(biāo)上都具有很強(qiáng)的影響力 - 最高的生存率,最有可能被無(wú)視懲罰地召喚,獲勝時(shí)吸收的生物最多。右:改動(dòng)后,霸王龍遠(yuǎn)不如先前強(qiáng)勢(shì)
霸王龍的削弱成功減少了 Evasion Link Gen 卡組對(duì)強(qiáng)勢(shì)生物的依賴。即便如此,兩套卡組的勝率依然是 60/40,而不是 50/50。經(jīng)過(guò)對(duì)各個(gè)游戲日志的深入研究,我們發(fā)現(xiàn)玩法的策略性通常低于預(yù)期。再次搜索收集的數(shù)據(jù)后,我們又發(fā)現(xiàn)幾個(gè)需要改動(dòng)的地方。
首先,我們?cè)黾恿藘蓚€(gè)玩家的初始生命值以及治療法術(shù)可以補(bǔ)充的生命值。這是為了鼓勵(lì)更長(zhǎng)時(shí)間的游戲,發(fā)展更多樣的策略。特別是這使 Damage-Heal 卡組能夠存活足夠長(zhǎng)的時(shí)間來(lái)發(fā)揮其治療策略。為了鼓勵(lì)符合設(shè)計(jì)的召喚和戰(zhàn)略性生物群系放置,我們提升了將生物放入不正確或擁擠生物群系時(shí)受到的懲罰。最后,我們通過(guò)小范圍的屬性調(diào)整,縮小了最強(qiáng)和最弱生物之間的差距。
在新的調(diào)整到位后,我們得出了這兩套卡組的最終游戲平衡數(shù)據(jù):
結(jié)論
通常,在新的原型游戲中找出不平衡可能需要幾個(gè)月的游戲測(cè)試。通過(guò)這種新方法,我們不僅能夠發(fā)現(xiàn)潛在的不平衡,還能在幾天之內(nèi)做出調(diào)整加以改良。
我們發(fā)現(xiàn),相對(duì)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)便足以在與人類和傳統(tǒng)游戲 AI 的競(jìng)爭(zhēng)中表現(xiàn)出較高的水準(zhǔn)。這些智能體還可以用于其他目的,例如指導(dǎo)新玩家或發(fā)現(xiàn)意外策略。我們希望這項(xiàng)成果能夠激發(fā)更多關(guān)于機(jī)器學(xué)習(xí)用于游戲開發(fā)的可能性的探索。