AI 比人還會玩。
譯 / 依光流
在今年日本 CEDEC 開發者大會上,《學園偶像大師》(後簡稱學馬仕)開發商 QualiArts,以及 QualiArts 母公司 CyberAgent,共同分享了他們對于 AI 技術在遊戲平衡性優化方向上的應用實例。
在上一篇分享中,我們聊到學馬仕的 3D 技術和細節打磨,如果說 3D 技術并非适用所有遊戲,那麽今天要聊的 AI 技術則更具備普适性。
學馬仕的玩法比較獨特,它的系統框架是類似《賽馬娘》的養成模式,但在具體的每個養成環節中,學馬仕又加入了名爲訓練課程,實爲卡牌構築(DBG)的模式。
DBG 玩法的魔性,自《殺戮尖塔》走紅以後就爲人熟知,學馬仕的微創新玩法,自然也讓粉絲和玩家爲之着迷。當然,從開發的角度來看,作爲一款需要長期更新的網遊,勢必要在基礎的 DBG 過程中不斷加入新卡,那麽卡牌的平衡性調整就會面臨快速增長且長期的壓力。
所以學馬仕項目組借助深層強化學習開發了兩套卡牌遊戲 AI,以及一套平衡性調整支持系統,來解決遊戲加入新卡牌後的平衡問題。
左:CyberAgent 遊戲和娛樂部門 AI 戰略總部研究工程師伊原滉也;右:QualiArts 那須勇彌。
具體來說「平衡性調整的難點」。
學馬仕裏玩家需要先構築卡組,在養成環節的課程玩法中,從牌山裏抽取手牌并打出,同時卡牌産生的效果也會随情況而變化。
因此根據卡牌組合情況的不同,即使卡組裏存在所謂破壞平衡的卡牌,開發組也很難通過人力準确地找到它。
制作組的應對方法,一是用灰盒最佳化技術,生成能夠在龐大的組合當中尋找最強卡組的「卡組探索 AI」,二是用深層強化學習技術,生成可以嘗試各種對局的「課程 AI」。兩者協同之下,就能解決對應問題。
由于學馬仕要考慮到長線運營,所以短期内增加的新卡牌也是一種挑戰。畢竟,每個月都要實裝新卡的工作流程裏面,如果 AI 的學習時間在 10 天以上,那麽平衡性調整之後連驗證時間都留不下來。
所以,制作組對指定學習模型,嘗試了一種将追加數據進行轉移學習的方法。這種方法的效率遠比重複「從頭開始學習」的效率更高,把超過 10 天的學習過程,縮減到 10 個小時的水準。同時催生了「允許策劃方完成模拟的平衡調整支持系統」。
其中,QualiArts 負責開發遊戲内邏輯,并爲平衡調整支持系統構建 Web 應用程序 / 基礎設施,而 CyberAgent 負責開發卡組探索 AI 和課程 AI。
01
什麽是平衡調整支持系統?
如上所述,可成 AI 僅在第一次生成的時候使用從頭學習創建的模型,然後會在添加主數據時執行遷移學習。這之後,AI 會圍繞新追加的卡牌構築牌組,并于反複模拟和确認結果之後,如果沒有問題就正式上線實裝新卡。
關于從頭學習和遷移學習,遊戲大緻可以按照角色屬性「意義」和「邏輯」分開進行。
如下圖的這些控制台管理元數據,實際模型保存在 W&B(開發人員協作平台)中。無需輸入參數,這是機器學習的典型特點,即使沒有配套知識也很容易使用。
學習執行的核心邏輯在 Unity 存儲庫中實現,并且設計和實裝也可以兼容在 .NET 運行時上的運行。于是,通過 Python 實裝的課程 AI,就可以通過 socket 通信來進行播放(學習)。
以這種方式管理人工智能模型和執行學習的問題在于,開發者很難理解模型學到了什麽,也很難理解模型本身的強度(即可靠性)。
解決前一個問題,需要顯示學習前新學習目标的技能卡和物品的效果差異。解決後一個問題,通過與「能确切産生較高分數的方法(MCTS)」進行比較來實現。
順便一提,所有學馬仕的卡牌效果說明,都是根據相關主數據自動生成的,因此可以動态檢測其差異。
在工作流程中的「卡組探索」功能,采用了以 Google Cloud 的 Cloud Run/Batch 爲中心的無服務器架構。
這個架構能實現并行執行,并允許在需要的時候靈活地進行重新縮放。
此外,卡組信息和課程 AI 的遊玩日志都會被儲存下來,并可以使用電子表格數據連接器進行同步。這使得遊戲策劃可以使用他們習慣的電子表格來随意處理和分析數據。
通過以上技術,項目組實現了以下結果:
通過在遊戲上線前運行上述系統,可以在上架前模拟超過 1 億套卡組,累計課程訓練次數超過 10 億次。如果用真人來嘗試做到這個結果,即使每次可成隻算一分鍾,也需要大約 1900 年才能搞定。
通過這麽多次的模拟,制作組也能夠發現在設計或測試遊戲時沒有注意到的細節,從而對平衡性調整産生很大的幫助。
具體的例子包括「防止頂級玩家的牌組變得相似」和「防止技能卡組合出現循環」。此外,一個衍生的好處,是這套技術也能幫忙檢測遊戲 BUG。
02
「課程 AI」的訓練
項目組對于「課程 AI」的要求如下:
1. 任何情況下都可以打出任何牌;
2. 每次遊玩的時間小于 0.1 秒;
3. 從添加新卡到确認結果的時間在 36 小時以下。
換句話說,AI 需要以最高效率、最快速度爲目标,在更改主數據後 36 小時内進行學習,并生成易于理解的模拟結果。
學馬仕的課程玩法,可以看做馬爾可夫決策過程(MDP)來進行建模。這個模型會根據當前的「狀态」和「行動」,精确得出下一個「狀态」。
将上述模型與蒙特卡羅樹方法(MCTS)的博弈樹搜索方法相結合,我們可以不斷接近更精确的最優行爲。順便一提,其背後的原理與計算機讀取将棋或圍棋的走法相同。
但上述方法的問題是計算時間較長,執行一個包含 9 個回合的課程,平均消耗的時間爲 1416.2 秒。
作爲解決方案,制作組采用了一種旨在使用「深度強化學習」來近似最佳遊戲行爲的方案。簡而言之,就是讓人工智能體驗各種情況并通過反複試驗來學習。
結果來看,制作組得到的 AI,可以打出與 MCTS 相當的分數,并且打一局牌的時間可以控制在 0.1 秒以内。如下圖,雖然平均成績稍低,但平均單局時長符合 0.1 秒的要求,相當于相同時間内,可以利用 AI 進行 14000 倍以上的對局測試。
此外,在不斷添加新卡的運營情況下,制作組必須解決課程 AI 的學習時間問題。這是因爲,要達到上述性能水平,AI 需要對局至少 3 億次,相當于耗時 300 小時。
然而,随着新卡數量的不斷增加,這種機制将達到上限,因此制作組使用大規模語言模型(LLM,據說使用了 OpenAI 的 Embeddings API)中的文本嵌入來表達狀态。
通過使用卡牌效果文本而不是遊戲内的結構數據,該系統可以無視産品畫面樣式的變化,并且具有無需額外學習即可引入新卡牌的優點。
結果來看,前文提到的遷移學習能在更短的時間内完成,相比在相同時間内使用從頭學習的模式,也能獲得更精确的對局過程。
經過上述方式訓練出來的課程 AI,玩起遊戲來已經與不遜色于人類,甚至與人類十分接近了。
即使與制作組内熟悉學馬仕的成員相比,課程 AI 有時在分數上還能勝過這些玩家,而且哪怕打法上的差别雖然隻是一招,帶來的差距也十分明顯。
03
卡組構築 AI 對 LLM 的應用
開發「卡組構築 AI」的目的,是爲了發現可以破壞遊戲平衡的得分最高的卡組。制作組認爲,當 AI 打出極端高分的時候,往往會關聯到太強的卡牌或卡組。
哪怕按照遊戲剛上線時的卡牌和道具來算,其組合數也十分龐大(超過 10 的 20 次方),并且每次更新時都重新計算和排查一遍的做法也很不切實際。
因此,制作組沒有使用暴力解決問題的「黑盒優化」技術,而是采用了與問題部分關聯的「灰盒優化」技術。此外,這裏還采用了使用 LLM 的文本嵌入技術。
卡組探索算法采用了遺傳算法。這個算法機制,會将兩個卡組組合起來生成子代卡組,而後評估高分解法,再将優秀解法繼續組合生成下一代,并在其中通過引起突發變化來尋找(近似)最佳解。
該算法一般用作黑盒優化的框架,但這次通過引入 LLM 向量化的卡牌信息,實現爲灰盒優化算法。
具體來說,是在卡組集合中構建函數分布,并從高斯分布中進行點的采樣,再根據有空位的點附近尋找卡牌,而後将卡牌加入卡組。如果方差大,則生成結果接近随機選擇,如果方差小,則生成結果是親代子代卡組相近。
以上嘗試的結果如下:
讓一個經過遷移學習的 AI 執行卡組探索時,設定卡組總數爲 20~30 張牌、玩家初始卡組數量爲 6~8 張牌、課程進行 12 輪,能看到,相比完全随機采樣算法,生成的結果效率提高了約 15%。
通過使用這些平衡調整支持系統,學馬仕自服務開始以來,已經模拟了超過 1 億套卡組和 10 億次課程。給項目組帶來的好處,是調整和優化了很多人力無法顧及的卡組和流派。
如今,絕大多數遊戲對 AI 的應用還是停留在 AIGC 生成資源的方面,而我們從學馬仕的案例來看,AI 對于遊戲優化測試、平衡性調整,也有不小的幫助。
且不論此前業内「AI 将淘汰 99% 從業者」的論斷,至少當下來看,掌握更多的 AI 技術,确實也能幫我們提高研發效率,優化遊戲素質。
文章來源:
https://www.4gamer.net/games/778/G077853/20240822052/
遊戲葡萄編譯整理
遊戲葡萄招聘内容編輯,