在3D生存類遊戲中加入人工智慧

遊資網發表於2019-12-12
2016年AlphaGo的橫空出世,吹響了人工智慧在遊戲領域攻城掠地的號角。短短三年間,星際、Dota2、德州撲克、麻將相繼被AI攻克。隨著OpenAI Five和AlphaStar血洗天梯競技場,遊戲領域似乎已經被AI完全拿下。

然而,還是有兩個懸而未決的問題始終縈繞。

其一是環境的複雜度問題。電子遊戲作為「第九藝術」的最大魅力在於虛擬世界對現實世界的模擬模擬。但是,目前AI已攻克的遊戲,大部分是執行在2D空間內。即使是3D空間的DeepMind雷神之錘3 AI,也是基於上世代的遊戲核心,地圖簡單、智慧體數量少。這裡的遊戲AI能力能否遷移到現實世界是存疑的。

其二是AI的擬人度問題。現有的遊戲AI清一色以競技為目的,追求更高的勝率和段位。但從開發商和玩家的角度,AI並不只是越強越好,還要求越像人越好。以射擊遊戲為例,簡單幾行程式碼寫出的AI就可以輕鬆碾壓人類,但誰會自討沒趣找一個自瞄鎖頭的AI對戰呢?

基於上述兩點,我們判斷具有複雜3D環境、要求多人線上的3D生存類遊戲將成為AI的下一大挑戰。在西山居研發中的新遊戲《榮耀之海》裡,我們訓練了名為“獵戶座α”的AI智慧體。可以看到,AI已經具備了複雜3D環境感知、物資搜尋/使用、作戰、團隊配合等全方位的能力。

這是一款什麼遊戲

《榮耀之海》是西山居自主研發的新一代多人線上戰術競技遊戲。遊戲主打時下最火熱的“吃雞”玩法,百名玩家通過海上與陸上的大逃殺決出勝者。

在遊戲中,25支四人小隊通過跳傘降落到某個區域,玩家需要在海洋與島嶼間蒐集武器、防具、道具等各種資源。隨著遊戲的進行,地圖上的安全區域將逐漸縮小,戰鬥爆發得也更加頻繁,玩家需要配合隊友,通過靈活多變的海陸策略,擊殺其他隊伍的玩家、生存到最後。

在3D生存類遊戲中加入人工智慧
遊戲中元素與真實物理世界非常接近

問題有多複雜

《榮耀之海》作為一款3D遊戲,複雜度相比一般2D遊戲已經上了一個臺階,而吃雞類遊戲的超大地圖、百人同局等要素又進一步增加了技術難度。

具體來說,AI需要處理的挑戰包括:

1)實時性與長期性

玩家不僅要做出實時的操作決策,還要做出長期的規劃決策,平衡兼顧兩者。為了最終獲勝,整局遊戲通常需要進行30分鐘以上,對應的決策步數在7000步以上。

2)非完美資訊

在3D遊戲中,玩家只能看到一定視角範圍內的資訊,並且無法看到被障礙物遮擋住的資訊。因此,玩家需要有效探索不可見的資訊,並具備記憶能力。

3)複雜的狀態空間

3D環境比2D環境包括更多的資訊,例如帶深度的複雜空間結構、龐大的地圖(10公里*10公里)、眾多的玩家(100人)、豐富的元素(大量建築、障礙、物資等),對環境感知和探索提出了巨大挑戰。

4)複雜的動作空間

玩家需要同時操作移動方向、視角方向、攻擊、姿態(站、蹲、趴、跳)、互動(拾取、打藥、換彈)等一系列操作,產生複雜的組合動作空間。我們估算離散化後的可行動作數量在10^7這個數量級。

5)戰略與戰術

玩家需要對瞬息萬變的環境和局勢做出快速準確的判斷,採取豐富的戰略和戰術,例如火力掩護、拉槍線、搶點、卡毒圈、封煙救援等等。

6)多人博弈

玩家不僅需要與隊友進行密切的合作和通訊,還需要與其他隊伍在資源蒐集、武裝交火時進行對抗。與兩人博弈相比,多人博弈的情況會更加複雜多變。

上述這些難點也是導致行為樹AI不可能做出複雜、擬人操作的主要原因。

我們在本階段的研究聚焦於一個迷你對局(mini-game)——在230米*230米島嶼上、時限6分鐘內、組隊2V2,最終存活的一方獲勝。除這些限制外,其他遊戲元素與完整遊戲完全相同。

我們的實現路徑

“獵戶座α”採用了深度強化學習方法,從零開始,通過與環境的互動和試錯,學會觀察世界、執行動作、合作與競爭策略。AI沒有使用任何人類玩家的對戰資料,完全基於自我對戰(self-play)的方式進行學習。

AI觀測的狀態資訊包括玩家/物資的實體資訊、深度圖、雷達圖、小地圖,以及巨集觀標量資訊。與人類一樣,AI觀測到的狀態是非完美的——即只能看到一定視角範圍內的資訊,看不到視野外或是被障礙物遮擋住的資訊。與直接用RGB影象作為特徵相比,我們的方式省去了影象目標檢測和識別的過程,專注在AI的決策過程。此外,雷達圖和小地圖相當於自動駕駛中的高精度地圖,深度圖相當於深度攝像機捕捉到的資訊。

AI的動作輸出分為移動方向、水平/俯仰朝向、身體姿態、物資拾取/使用、武器切換、攻擊等任務,多個任務可以同時執行,形成巨大的複合動作空間。人類玩家在操作時,會存在反應時間的限制,APM(每分鐘操作次數)也會有上限。為了與人類一致,我們對AI也進行了相應限制。考慮到網路傳輸延時、特徵提取和模型預測的耗時,AI從“觀測到1幀狀態”到“產生1次動作”需要120ms的延時。在此基礎上,我們額外增加了100ms延時。同時,AI每秒最多執行4次動作、每次最多包含3個動作。

每個智慧體是一個深度神經網路模型,輸入狀態資訊,輸出預測的動作指令。我們通過Transformer模型處理玩家、物資等實體資訊,通過ResNet處理深度圖、雷達圖、小地圖等影象資訊,通過MLP模型處理巨集觀標量資訊,然後通過LSTM模型實現記憶能力。為實現多智慧體合作,我們採用了分散式的策略網路和中心式的價值網路,並引入了策略網路之間的通訊機制。

在3D生存類遊戲中加入人工智慧
AI模型結構示意圖

“獵戶座α”的訓練在我們自研的通用分散式強化學習引擎Delta上進行。該引擎通過大量彈性CPU資源產生訓練資料,通過GPU資源更新神經網路模型引數,並且可以通過監控元件監控AI的訓練過程。在該專案中,“獵戶座α”訓練一天相當於人類玩家打了10萬年。該引擎可以部署在任何公有云上,目前已經支援了多款遊戲的AI訓練。

在3D生存類遊戲中加入人工智慧
分散式強化學習引擎Delta架構示意圖

目前達到的效果

我們看到“獵戶座α”從零開始逐漸學會了在3D環境中生存所需的全方位能力。

AI學會了通過蒐集物資和跑毒來照顧好自己:

在3D生存類遊戲中加入人工智慧
AI出生後會快速蒐集物資,觀察到毒圈外有高階物資時,選擇快速出去拾取後再儘快返回安全區。

在3D生存類遊戲中加入人工智慧
AI具有避障導航能力,可以通過翻窗快速進出房屋蒐集物資。

AI也學會了通過尋找掩體、靈活走位、武器使用等方式,以及記憶認知能力,在競爭對抗中提升自己的生存能力:

在3D生存類遊戲中加入人工智慧
AI在對戰中會合理利用掩體,並保持靈活的走位躲避攻擊。

在3D生存類遊戲中加入人工智慧
進入肉搏後,AI會切換為近戰武器,拉開距離後再切換回遠端武器。

AI還學會了發揮團隊配合的力量,與隊友互相掩護,在不同的戰鬥環境中採取針對性的戰略戰術,最大化自身優勢:

在3D生存類遊戲中加入人工智慧
某個AI被擊倒後,AI隊友立刻實施救援,救活後會幫忙望風等隊友打藥。

在3D生存類遊戲中加入人工智慧
在團隊作戰中,AI分散站位並拉開槍線,集中火力優先消滅單個敵人。

在3D生存類遊戲中加入人工智慧
消滅敵人取得人數優勢後,AI強勢衝鋒,依次經過樓梯進入房間,擊殺剩餘敵人。

我們的開發人員也與“獵戶座α”進行了多次人機對戰測試,包括作為隊友和對手。

在3D生存類遊戲中加入人工智慧
人類玩家與AI的對戰測試

AI的進化過程

在AI的訓練過程中,我們還觀測到了許多與人類生存進化過程相似的地方。

人類在進化過程中,先學會採集食物補充能量、應對惡劣天氣,然後學會各種工具的使用,掌握記憶等高階認知能力,進而學會與族群內同伴分工合作、與其他族群競爭對抗。AI通過多智慧體的自我訓練的方式,也表現出了類似的進化現象。隨著訓練局數的增加,AI逐漸湧現出了物資蒐集、物資使用、空間感知、認知能力和複雜策略等智慧行為。

在3D生存類遊戲中加入人工智慧
AI的進化過程

下一步的工作

3D生存類遊戲給AI研究提出了非常巨大的挑戰。儘管我們取得了一定進展,但目前的方案還存在諸多限制和待解決的問題:例如,AI只能在單個島嶼上進行陸戰對抗;AI僅在2支隊伍之間進行博弈;AI掌握的物資和武器還比較有限。我們將逐步去掉上述限制,最終讓AI在完整地圖上進行100人的吃雞對戰。

在3D生存類遊戲中加入人工智慧
《榮耀之海》遊戲全景

展望未來

環顧我們生活的世界,智慧既存在於個體中,更存在於群體中。有著獨立目標的個體們聚集在一起,展現出了令人驚歎的群體智慧,這種能力被稱為“多智慧體學習”。每個智慧體必須既能獨立行動,又能與其他智慧體進行合作或競爭,在這個不斷變化的世界中適應與生存。

在目前的全部遊戲品類中,3D生存類遊戲可能是最接近真實物理世界的。我們有理由相信,AI智慧體在其中學到的能力,包括3D環境感知與理解、對複雜環境變化的適應、對不確定性的評估與推理、對各種戰略戰術的靈活應用,以及多智慧體間的競爭與合作等,一定能從虛擬反哺現實,在無人駕駛、智慧城市、醫療等更廣泛的領域帶來價值。

正如“獵戶座α”這個名字所代表的,我們希望遊戲AI的研究會如同浩瀚宇宙中的明亮星光,指引人類探索光年之外的未知空間,邁向通用人工智慧(AGI)的星辰大海。

我們期待與更多志同道合的人一起,「用進化演繹智慧,讓智慧造福人類」。


來源:超引數

相關文章