百万局对战教AI做人,技术解读FPS游戏中AI如何拟人化
作者:johnxuan,騰訊 TEG 應用研究員
FPS 游戲 AI 是騰訊 AI Lab 的一大重要研究方向,其擬人化 AI 也在 FPS 手游《穿越火線-槍戰王者(CFM)》春節期間上線的全新劇情玩法「電競傳奇」中得到了應用。這些學習了 CFM 職業玩家行為方式的 NPC 引發了游戲圈的熱議,甚至一些職業玩家也踏上戰場與「自己」槍戰了一把。
游戲已經成為了 AI 領域最重要的研究場景之一,國際象棋、圍棋、Atari 游戲、《星際爭霸》等 RTS 游戲和《王者榮耀》等 MOBA 游戲都被視為 AI 研究之路上的重要里程碑,而且這些里程碑的達成標準往往都是達到或超過人類水平。
但在《穿越火線》和《使命召喚》之類的 FPS 游戲(第一人稱射擊游戲)中, AI 研究卻并不總以超越人類職業玩家水平為目標。畢竟以計算機程序的反應速度和精度,AI 在射擊類游戲中達成槍槍爆頭也實非難事。真正難的是讓 AI 的行為表現與人類玩家不可區分。
AI 擬人化作為研究目標具有非常重要的意義。首先在游戲領域本身,更擬人化的 AI 可以顯著提升玩家的游戲體驗。對許多玩家來說,勢均力敵的戰斗之后的勝利才是最快樂滿足的。為此 AI 既不能強如開掛,也不能呆若木雞。試想一下,當你帶著走位犀利的自信與一個 NPC(非玩家角色,俗稱人機)遭遇而屢屢被一槍爆頭時,你一定會產生一股想要摔手機或罵人的沖動。反過來,如果你正想表演一套犀利的操作時卻發現 NPC 只是一動不動地站在那里或漫無目標地放空槍,那么就算你擊敗了它也不會有什么成就感。為了在強弱之間找到一個合理的平衡,需要對 AI 的開火率、命中率、擊殺數/死亡數等指標之間進行調整,使之接近對應難度下玩家的水平。
同時在游戲領域之外,FPS 游戲擬人化 AI 也具有非常重要的研究價值。不同于總是通過俯視角進行的棋盤游戲和 MOBA 游戲等游戲類別,FPS 等第一人稱游戲往往采用了三維立體的游戲場景,更類似于人類實際所處的真實世界。在這樣的環境中訓練出的擬人化 AI 更能反映人類在真實環境下的表現,從而可以幫助 AI 理解人類在真實環境中的行為,為以后的實際應用鋪路。
FPS 游戲 AI 是騰訊 AI Lab 的一大重要研究方向,此前與清華大學 TSAIL 合作開發的 VizDoom AI 曾獲得了該賽事歷史上首個中國區冠軍的好成績。擬人化 AI 也在 FPS 手游《穿越火線-槍戰王者(CFM)》春節期間上線的全新劇情玩法「電競傳奇」中得到了應用,這些學習了 CFM 職業玩家行為方式的 NPC 引發了游戲圈的熱議,甚至一些職業玩家也踏上戰場與「自己」槍戰了一把。
觀看視頻:CF 職業玩家阿康對戰 AI 阿康
騰訊 AI Lab 如何養成了這樣的擬人化游戲 AI?下面我們就來一探究竟。
擬人化 NPC 養成之路
NPC 對游戲的重要性是不言而喻的,傳統 NPC 的行為模式大都基于人工編寫的規則,即在什么情況下給出怎樣的反應都是預先設計好的。這樣的 NPC AI 實現起來比較簡單,但也讓 NPC 的行為表現顯得非常單調,玩家一旦摸索熟悉了它們的模式,就能通過「卡 bug」的方式輕松獲勝,玩家甚至還能通過預測 NPC 的行為來「調戲」它們——這雖然也算得上游戲的樂趣之一,但這樣的 NPC 終究行為單調,很容易讓玩家生厭,無法持續獲得良好的游戲體驗。但同時,如果要通過人工編寫規則的方式讓 AI 具備擬人化的行為方式,將需要投入大量人力和時間成本才有可能實現,但這樣的投入對于游戲行業而言是很不現實的。
近年來興起的機器學習技術為游戲 AI 開發帶來了新的思路:AI 可以通過學習人類玩家的數據來模擬人類玩家的操作,從而讓 NPC 展現出更多樣、更動態的行為模式。
方法選擇
具體來說,騰訊 AI Lab 訓練 CFM 游戲 AI 時采用了監督學習方法,即通過分析大量實際的游戲對局脫敏數據,分析人類玩家在不同的游戲場景輸入下進行的操作(輸出)。通過學習這些輸入與輸出之間的對應模式,AI 可以學會在不同的場景下以不同的概率采取不同的行為方式——有的行為模式更優,有的則是敗筆,但它們綜合起來卻能讓 NPC 表現得就像是另一個人類玩家一樣。
由于騰訊 AI Lab 的目標不是打造競技性 AI,而是擬人化 AI,所以沒有必要使用游戲畫面為圖像的輸入,直接接入游戲引擎會更加方便,因為游戲引擎可以提供地圖、模式、玩家的操作、屬性等關于游戲的全部信息。至于輸出,很自然就對應于游戲界面上的各種操作(即動作空間),如下圖所示:
動作空間可以看到,CFM 游戲界面上存在多個可以同時進行的操作,包括左側的移動和蹲伏操作,右側的方向調整、開火、跳躍、扔雷等操作;因此,為了更優地同時完成各種任務,騰訊 AI Lab 采用了多任務學習方法。
輸出有了,也確定了監督式多任務學習的方法,接下來就需要定義具體的特征,即輸入數據中的各種變量。騰訊 AI Lab 將這些特征分成了兩大類:屬性特征和交互特征。游戲中的活動單元稱為 unit(單位)。屬性特征是指每個單位的狀態,交互特征則用來描述單位之間的相互關系。特別地,單位與游戲中的環境之間的相互關系也歸為交互特征。游戲中的掉落物,如敵人被擊殺后掉到地上的武器,屬于環境的一部分。
狀態空間最后也可能是最難的一步準備工作是確定擬人化的評估指標。不同于以勝負評定優劣的指標,擬人化并不存在單一的量化指標。為了讓 AI 具備與人類玩家更相似的行為,騰訊 AI Lab 整合采用了多個維度的指標:
擬人化指標舉例模型學習
準備工作就緒之后,騰訊 AI Lab 首先在 1v1 對戰模式驗證了該思路的可行性。訓練過程使用了幾十萬真實玩家對局數據(已脫敏),并采用了如下網絡結構:
1v1模型結構所得到的模型在行走、跳躍、開火方面的行為與人類相似,但是在同一環境下的表現總是一樣,缺乏多樣性。通過采用一種概率分布采樣法,讓 AI 在相同情況下也有不同的概率選擇其它不同的操作,從而解決了這一問題。
1v1 對戰模式取得了初步的成果后,戰場被轉移到 5v5 團戰中。相比于 1v1,團戰的環境更為復雜。主玩家有 4 個隊友和 5 個敵人,涉及到攻擊/躲避目標的選擇,甚至還有和其它隊友的協作。為此,騰訊 AI Lab 增加了隊友、敵人特征(血量、位置等),玩家分別和隊友、敵人的交互特征(與目標距離、視角角度等),期望模型可以學習到游戲數據中的真人操作。
模型的訓練采用了上百萬局訓練數據(已脫敏),并使用了以下經過改進的網絡結構:
5v5模型結構可以看到,相比于 1v1 模型,5v5 模型增加了用于選擇敵人的模塊,該模塊還添加了歷史信息,使 NPC 能更加適當地應對當前的狀況,比如重點關注當前視野內的敵人、在受到視野外敵人的攻擊時會轉身對敵。
模仿職業玩家的 NPC
在「電競傳奇」玩法中,你能看到一些 CFM 職業玩家的名字,比如國寶、蠻蠻、阿康,但當然你的對手自然不是真正的國寶、蠻蠻、阿康,而是學習了這些職業玩家玩法的 NPC。
不同于上面訓練 1v1 和 5v5 模型使用了數十萬乃至上百萬局游戲脫敏數據,蠻蠻的替身 AI 只用到了幾局數據。
首先,騰訊 AI Lab 分析了這幾局數據中蠻蠻的行為特點,比如點位分布:
蠻蠻的點位分布,這是分屬兩邊陣營時的情況
由于數據較少,騰訊 AI Lab 還從已有數據中選取了類似行為模式的數據而對其進行了擴充,使得擴充后的數據模式與蠻蠻的相似。然后再基于這些數據訓練得到了「AI 蠻蠻」,下面是 AI 蠻蠻的實戰表現:
觀看視頻:CFM 職業玩家蠻蠻對戰 AI 蠻蠻
實戰評價
在實戰測評中,我們在體驗服上組織核心玩家群體進行了“行為測試”,新 AI 在射擊水平、走位、躲避等多樣化的行為等緯度為玩家帶來了驚喜,AI的綜合行為表現擊穿了玩家對于傳統FPS機器人的刻板印象,帶來的實際體驗遠超玩家預期。
2020 年春節,以新AI表現為基石,推出的全新的劇情玩法「電競傳奇」首日用戶滲透率、首日留存創近兩年新高。AI 國寶、AI 蠻蠻等話題也在 CF 手游社區成了熱門討論話題。
總結
CFM 的擬人化 NPC 雖然備受好評,但還遠不夠完美,不管是在訓練方法還是指標選取上都有進一步的優化空間。另外,騰訊 AI Lab 也在探索能否在《使命召喚》等大型開放式地圖中訓練出擬人化 FPS 游戲 AI,這種 AI 不僅需要學會剛槍,還要學會觀察地圖地形、跑圖、合理搭配裝配、使用載具以及進行攻擊或躲藏的策略等。也許未來帶你猥瑣發育、“狗”「吃雞」的隊友就是一個看起來與人類玩家別無二致的 AI。
今日直播預告:《健康碼背后,騰訊慧眼高可用架構設計》
騰訊“防疫健康碼”于2月9日率先落地深圳后,一個月累計訪問量破60億。而民眾申領健康碼過程中的“人臉識別登錄驗證”,有著高準確率的要求。在如此大流量高準確率的要求下,騰訊慧眼高可用架構是如何設計的呢?架構如何分層?如何容災兜底?如何提升引擎準確率?引擎中臺在其中扮演著怎樣的角色?
云+社區沙龍online將在4月23日晚上8點直播,為您揭曉答案!
點擊圖片進入直播間
總結
以上是生活随笔為你收集整理的百万局对战教AI做人,技术解读FPS游戏中AI如何拟人化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保护1000万篇原创文章,区块链技术如何
- 下一篇: 微信扫一扫识物的技术揭秘:抠图与检索