找回密碼
 注冊帳號

掃一掃,訪問微社區

游戲新聞 如何提升游戲中機器人的表現?

0
回復
141
查看
打印 上一主題 下一主題
[ 復制鏈接 ]
排名
1
昨日變化

3622

主題

4256

帖子

1萬

積分

Rank: 16

UID
1
好友
26
蠻牛幣
12483
威望
10
注冊時間
2013-5-15
在線時間
4040 小時
最后登錄
2020-7-17

一貧如洗游戲蠻牛QQ群會員活力之星

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?注冊帳號

x
一、前言

FPS(第一人稱射擊游戲)中的 AI 實現多年來一直沿用著狀態機和行為樹。策劃和程序員充分利用這兩個工具,做出了大量玩法,創造了許多新穎而有趣的模式。但絕大多數的 FPS 類游戲都是偏競技的。而競技類的游戲是零和的游戲,有人贏,就必然有人輸。絕大部分的玩家不可能像職業玩家那樣不停地訓練和比賽來不斷提升自己的技術水平;基本上是技術練到一定的階段后,就處于長期停滯狀態。挑戰高手會被虐得很慘,玩弄新手實在沒有什么成就感。游戲高峰過去后,想要隨時找到水平相當的隊友和對手,都是比較困難的事情。在水平不等的情況下,游戲的樂趣會逐漸降低,逐漸地玩家開始流失。

為此,各項目都做過很多嘗試。一是優化匹配算法,高峰期效果不錯,但在低谷期,由于整個游戲池中的總玩家數不足,匹配到水平相當的對手很困難。二是在匹配無法平衡時,補充一些機器人到比賽房間中。常規的技術還是利用行為樹來模擬玩家,策劃的同學往往要寫大量的行為樹偽代碼來實現一個模式或一張地圖。然而行為樹是一種基于規則的算法,即使加上一些隨機擾動,這些規則都很容易被玩家發現。往往行為樹版本的擬人機器人上線后會被玩家吐槽,他們會認為自己被欺騙了。

有沒有新的方法來提升機器人的表現,從而提升玩家的滿意度呢?我們把方向瞄準了最近幾年蓬勃發展的深度學習。

近年來,隨著人工智能的發展,深度學習技術已成功應用于圖像、語音、自然語言等領域。比如基于 ImageNet 進行的圖片分類比賽[7],基于人臉識別的智能安防系統,Google 利用深度學習技術降低 系統語音識別錯誤率,提升機器翻譯的流暢度等等。

深度學習技術應用于游戲領域,業界也有不少成功的例子,比如 DeepMind 開發的 Atari 游戲 AI 能夠同時掌握 7 種游戲的玩法,并在 3 種游戲中超過人類專業玩家[1];DeepMind 開發的 StarCraft II 游戲 AI AlphaStar 在 2019 年 1 月成功挑戰職業選手[2];OpenAI 開發的 Dota2 游戲 AI OpenAI Five 在 2019 年 4 月戰勝職業選手[3];Tencent 開發的王者榮耀游戲 AI 絕悟在 2019 年 8 月通過電競職業水平測試[4]。但是這些游戲中的場景都是 2D 的,而 FPS 類游戲通常都是 3D 的。FPS 類游戲與這些游戲的不同之處,以王者榮耀為例,總結如圖 1。

圖 1:FPS 類游戲與 MOBA/RTS 類游戲的區別

FPS 類游戲為非完全視野,且存在多個敵人和多個隊友,視野內敵人和視野外敵人如何建模?敵人從視野內短暫消失,玩家在視野外受到傷害時,敵人的特征如何表達?和隊友之間如何配合?怎么在高效的表示 3D 環境信息的同時降低計算復雜度?AI 的動作空間如何設計?這些都是值得思考的問題

業界和學術界有一些將深度學習應用于 FPS 類游戲的例子,比如由 Poznan University of Technology 舉辦的 Vizdoom 比賽[5],DeepMind 開發的 Quake III Arena 游戲 AI[6]。但是它們的輸入都是純圖像,而且評價標準是競技。對于 FPS 類游戲來說,如果只是追求競技的勝利是非常容易的,只要計算好自己的槍口和敵人頭部之間的一個三維向量,就可以槍槍爆頭,這樣 AI 就變成外掛了。因此,我們提出 FPS 類游戲 AI 的評價標準是擬人,即希望 AI 能像人一樣和環境發生合理的交互,比如利用地形、障礙物,根據對手和同伴的狀態決定后續操作等等。

能否將深度學習技術應用于 FPS 類游戲,來幫助策劃和程序員高效地制作出不容易被玩家發現的擬人化 AI,是一個我們希望去解決的問題。

二、初步嘗試

2018 年下半年,項目組和 AI 平臺部基于全軍出擊手游開始了第一次嘗試。這次嘗試基于 5km * 5km 的全軍出擊地圖進行,如圖 2 所示。采用基于圖像和屬性特征相結合的監督學習方案。

圖 2:全軍出擊地圖

這是 AI 在 FPS 的初步嘗試,實話實說,當時項目組和 AI 同學都沒有明確 FPS AI 的方向是什么,根據業界的經驗,大家的目標還是偏向于競技和勝利。

采用的基于圖像識別的方法需要采集從客戶端的圖像數據處理后得到游戲的狀態,這個過程過于復雜,消耗的資源也很多,整個項目迭代很慢。加上后來業務調整,沒能積累足夠的數據來支撐模型的訓練,以及問題復雜度確實太高 ,嘗試終止。

問題復雜度高有幾個方面引起:一是地圖范圍太大,對深度神經網絡的表達與記憶能力有很大的挑戰;二是環境復雜,地圖中有大量動態物體,如汽車、摩托車、船、包裹等等,對環境和物體的特征表示,挑戰也很大;三是巨大的動作空間,由于戰術競技復雜的游戲邏輯,真實的物理場景,需要 AI 對環境做出大量不同的反應,如開門、關門、開車、游泳、蹲、跑、爬等等。

三、新方案

2019 年春節后,項目組正式和 AI 平臺部/智能 NPC 中心開始新的一輪深度學習在游戲中落地的嘗試。總結了一些之前的經驗。首先明確了幾個規則:

  • 項目共同開發,代碼開源共享;
  • 項目組開發的 FPS 游戲是基于全服務器信任的,服務器擁有所有的游戲信息,包括地圖,模式,玩家的移動,開火,命中并做結果判定; 無需使用客戶端圖形進行間接分析和判斷。這樣可以大量地減少圖像處理對資源的消耗。同時 AI 可以獲得全局信息,而不是僅僅只有單個玩家的信息(后期會限制 AI 獲得非相關信息);
  • 第一目標是擬人化,優先采用監督學習方案;
  • 基于全軍出擊的復雜度問題,這次確定的方案是地圖由小到大,玩法從簡單到復雜。因此選擇了 CFM 團隊模式中的運輸船作為基準地圖(地圖大小:10m * 32m)。這是一張 5v5 小型地圖,玩法相對簡單,地圖是一個相對封閉的空間,沒有載具,在團隊模式中使用率最高;
  • 由于 CFM 已經穩定運行多年,并且日常開發工作繁重,游戲玩法邏輯服務器 DS 代碼接近 100w 行,如果再整合 AIServer 為一體,則無法保證系統的穩定性和可靠性。因此,決定將 AI 作為一個“客戶端”接入到游戲服務器,而不是將 AI 整合到游戲服務器中。現有的游戲邏輯服務器僅僅需要做極輕微的改動就可以接入 AI。當然,我們需要開發一些附加的獨立模塊來支持 AI。


圖 3:系統架構圖

其中:

  • GameD 作為一個模擬客戶端加入 DS 的房間;
  • 將 DS 發送給客戶端的協議轉換為 AI Server 的協議;
  • AI Server 加載訓練好的模型,根據 GameD 發送的協議和自己需要的其他信息提取特征數據,預測后將結果返回給 GameD;
  • 預測的結果是 8 個方向的移動,上下左右視角變化,跳躍,蹲下,開火,換槍等基本操作;
  • GameD 把這些基本操作和地圖信息一起進行物理計算后,轉換為相應的協議發送給 DS。

四、第一次 5V5 的開發
項目在 2019 年 3 月初立項,設定的目標是希望在 4 月能夠搭建好完整的離線流程,實現基礎版 demo;5 月能夠實現具有躲閃、跳躍、扔雷等高級操作的優化版 demo。

4.1 建模

我們直接基于真實的 5v5 模式進行設計、建模,搭建相關的數據處理、模型訓練流程。問題的動作空間、狀態空間的建模如圖 4、5 所示,其中所有的子任務都建模為分類問題。

圖 4:動作空間建模

圖 5:狀態空間建模

4.2 業務流程的建立

在搭建模型的同時,其他配套系統也在同時并行開發,包括日志處理、 GameD 開發、客戶端日構建接入、回放工具等。整個流程逐步建立。同時在 3 個月的時間內積累了 100w 對局日志。

4.3 效果不佳

5 月份,完成了第一個 5v5 版本,視野全透視,不考慮障礙物遮擋,經過策劃同學的幾輪體驗后,總結了這個版本。

優點:

已經展現了初步的擬人功能,主要表現為:

  • 利用掩體躲閃,
  • 順利跳上箱子,
  • 在箱子后預判穿箱開火,
  • 在高頻對射點預瞄敵人,
  • 在蹲人點等待敵人。

缺點也很明顯:

  • 存在透視現象
  • 對敵人尸體開火
  • 存在視野內有多個目標時來回切換



  • 對視野外的傷害感知弱


  • 敵人擦肩而過無感知等明顯問題



項目組經過分析后找到問題所在:5v5 對戰變量太多,直接訓練 5v5 模型對于初期的擬人化目標而言還是太復雜。

五、基礎的 1V1

根據 5v5 版本出現的問題,我們決定暫停 5v5,轉移到更基礎 1v1。著重解決單個 AI 的擬人化表現,通過 1 個真人玩家反復觀察和互動,逐步解決 AI 出現的問題。同時簡化了槍械,只支持步槍,暫時屏蔽狙,投擲和近戰武器。

5.1 模型的調整

沿用前面對動作空間、狀態空間的建模方式,同時將視野設置為考慮障礙物遮擋的 360 度可見,針對 1v1 模式,設計了如圖 6 所示的模型結構。

圖 6. 1v1 模型結構

對于狀態空間,使用了多條 3D 實時射線來感知周圍的環境,包括靜態環境和動態環境(敵人),輸入使用單幀輸入,不考慮歷史信息。

由于整個對局只存在 1 個敵人不存在多目標選擇的問題,且使用了考慮障礙物遮擋的 360 度可見,AI 對視野外傷害,和擦肩而過感知等問題得到明顯改善,但是也出現了新的問題。例如:徘徊問題。

基于真實玩家的 30w 對局數據進行了模型訓練,存在太剛、特定情況下長時間左右徘徊的問題。對于前者,我們通過優化樣本數據進行了緩解;對于后者,通過分析,我們發現是因為輸入的特征出現了周期性變化,同時模型對于相同的輸入只會產生相同的輸出,導致視角子任務的輸出無法打破循環。

AI 在同一個狀態下存在多個合理的決策,如圖 8 所示,在狀態 A,為了繞過障礙物樹,既可以通過右轉到狀態 B 實現,也可以通過左轉到狀態 C 實現。視角子任務與其類似,這種問題被稱為多值問題。

圖 7:多值問題示意圖

對于多值問題,混合密度網絡[8-10]是一個比較優雅的解決方案。通過將視角子任務的建模方式由分類任務替換為多個高斯分布建模,預測時按分布概率采樣,增加 AI 行為的多樣性,模型表現沒有明顯的問題,得到策劃的認可。

隨著問題的逐步解決,AI 的表現越來越好。

5.2 復雜問題逐步解決

通過 1v1 模式的解決,初步驗證了問題建模的有效性,包括動作空間、狀態空間等。接下來我們重新去應對 5v5 模式。與 1v1 模式相比,5v5 模式有如下明顯的不同。

表 1. 5v5 模式 vs 1v1 模式

針對上面的不同,我們設計了如圖 8 所示的模型結構。

圖 8. 5v5 模型結構

基于百萬級別的對局數據,1v1 中使用 360 度視野規避了視野外傷害無感知和敵人擦肩而過無感知的問題。在 5v5 中這種視野建模方式不再有效,主要原因有:

1)從訓練數據上來看,玩家主要關注的是正前方的敵人,而非背后的敵人。

2)背后受到傷害特征只會持續一幀,AI 無法持續決策轉身攻擊。

3)為此,AI 視野建模改為真實玩家視野建模,同時在數據層面刪除了受到傷害短時間死亡的幀,在模型層面引入了目標選擇輔助任務,在特征層面加入了對歷史信息的建模,基本解決了視野內有多個目標時來回切換,對視野外的傷害無感知,敵人擦肩而過無感知等問題。

模型效果在 7 月中旬得到了策劃的認可。后續我們又增加了對多武器的支持,比如狙擊槍、手雷等。到 7 月底,包含多武器的模型效果得到策劃的認可。

5.3 擴展和上線之路

5v5 模式的效果得到認可后,我們決定將新 AI 上線,接受更多真實玩家的體驗。

經過 1 個多月的準備、測試,基于運輸船開發的新 AI 于 9 月 14 日上線千人體驗服。86.6%的玩家認為新 AI 比行為樹 AI 的體驗更好,多樣化的行為讓玩家比較驚喜。

圖 9. 體驗服玩家反饋

為了驗證整套方案的擴展性,又經過將近 2 個月的開發、優化、測試,我們完成了基于中型地圖恐龍博物館(地圖大小:20m * 40m)的新 AI 構建,并和運輸船一起于 11 月 22 日上線正式服,全量替換行為樹 AI。玩家對局次數、對局時長分別提升 34%、29%,40%左右的玩家 認為 AI 局沒有 AI(真人局中有 30%的玩家認為有 AI)。

在 2020 春節版本中,我們又擴展了 4 張地圖:清新椰島、巷戰 TD、沙漠對決、軍事基地,而且基于沙漠對決地圖構建了一個明星 AI。

玩家水平處于游戲中的 top 30%,對 AI 比較敏感,投放會面向大量中低端玩家。

5.4 工具建設

對局日志回放工具,用于確認數據選取、模型表現是否有問題


選點定位工具,用于進行區域數據分析,如下圖

圖 10. 選點定位工具

標簽分布工具,用于標簽不平衡直觀觀察

圖 11. 單任務標簽分布

六、展望

6.1 強化方案

由于 CFM 有幾十上百張地圖,不是每張地圖都有足夠的玩家數據用來支撐監督學習的訓練。基于純玩家數據的訓練時間和人力成本太高。為此,我們探索了基于強化學習,輔以少量玩家數據的方案,目前也取得了不錯的效果。為后續覆蓋更多地圖提供了另一種選擇。

6.2 更多的玩法支持

FPS 玩法眾多,后續規劃了爆破,生化,生存等模式。

6.3 預測性能的優化

預測目前使用的是 python 方案。Python 在線上性能不佳,單反服務器的承載非常有限。項目組和 AI 平臺部團隊正合作開發高性能的 Ai Server,2020 一季度可以上線。

經過近 1 年的努力,我們基于穿越火線手游,探索了一套可行的在 FPS 類游戲中構建擬人化 AI 的方案,并得到真實玩家的認可。這是業內第一個深度學習在 FPS 游戲中實際上線的案例。同時,由于技術的突破,給產品帶來了更多的拓展空間。

有幾點經驗分享給正在或是準備進行 AI 落地的項目同學:

  • 明確 AI 在項目中的作用;
  • 選擇合適的技術,不一定是最前沿或最先進的;
  • 從最簡單的地方開始,逐步深入;
  • 項目組和 AI 團隊開源協同,發揮各自所長;
  • 工具建設要跟上;
  • 工程落地最終還是要考慮效率和成本。

最后,歡迎大家來體驗 CFM 新一代的 AI。

參考資料:

[1] https://deepmind.com/research/publications/playing-atari-deep-reinforcement-learning
[2] https://deepmind.com/blog/article/alphastar-mastering-real-time-strategy-game-starcraft-ii
[3] https://openai.com/projects/five/
[4] https://ai.tencent.com/ailab/zh/news/detial?id=27
[5] http://vizdoom.cs.put.edu.pl/
[6] https://deepmind.com/blog/article/capture-the-flag-science
[7] http://www.image-net.org/
[8] https://publications.aston.ac.uk/id/eprint/373/1/NCRG_94_004.pdf
[9] https://www.katnoria.com/mdn/
[10] https://www.katnoria.com/mdn/https://towardsdatascience.com/a-hitchhikers-guide-to-mixture-density-networks-76b435826cca

作者:Jian,John、Booker
來源:GWB-騰訊創意游戲合作計劃  
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊帳號

本版積分規則

神马电影34pp影视午夜