本文主筆:Jian
廣河網(wǎng)站建設公司創(chuàng)新互聯(lián),廣河網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為廣河上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的廣河做網(wǎng)站的公司定做!其他作者:John、Booker
一、前言
FPS(第一人稱射擊游戲)中的 AI 實現(xiàn)多年來一直沿用著狀態(tài)機和行為樹。策劃和程序員充分利用這兩個工具,做出了大量玩法,創(chuàng)造了許多新穎而有趣的模式。但絕大多數(shù)的 FPS 類游戲都是偏競技的。而競技類的游戲是零和的游戲,有人贏,就必然有人輸。絕大部分的玩家不可能像職業(yè)玩家那樣不停地訓練和比賽來不斷提升自己的技術水平;基本上是技術練到一定的階段后,就處于長期停滯狀態(tài)。挑戰(zhàn)高手會被虐得很慘,玩弄新手實在沒有什么成就感。游戲高峰過去后,想要隨時找到水平相當?shù)年犛押蛯κ郑际潜容^困難的事情。在水平不等的情況下,游戲的樂趣會逐漸降低,逐漸地玩家開始流失。
為此,各項目都做過很多嘗試。一是優(yōu)化匹配算法,高峰期效果不錯,但在低谷期,由于整個游戲池中的總玩家數(shù)不足,匹配到水平相當?shù)膶κ趾芾щy。二是在匹配無法平衡時,補充一些機器人到比賽房間中。常規(guī)的技術還是利用行為樹來模擬玩家,策劃的同學往往要寫大量的行為樹偽代碼來實現(xiàn)一個模式或一張地圖。然而行為樹是一種基于規(guī)則的算法,即使加上一些隨機擾動,這些規(guī)則都很容易被玩家發(fā)現(xiàn)。往往行為樹版本的擬人機器人上線后會被玩家吐槽,他們會認為自己被欺騙了。
有沒有新的方法來提升機器人的表現(xiàn),從而提升玩家的滿意度呢?我們把方向瞄準了最近幾年蓬勃發(fā)展的深度學習。
近年來,隨著人工智能的發(fā)展,深度學習技術已成功應用于圖像、語音、自然語言等領域。比如基于 ImageNet 進行的圖片分類比賽 [ 7 ] ,基于人臉識別的智能安防系統(tǒng),Google 利用深度學習技術降低 Android 系統(tǒng)語音識別錯誤率,提升機器翻譯的流暢度等等。
深度學習技術應用于游戲領域,業(yè)界也有不少成功的例子,比如 DeepMind 開發(fā)的 Atari 游戲 AI 能夠同時掌握 7 種游戲的玩法,并在 3 種游戲中超過人類專業(yè)玩家 [ 1 ] ;DeepMind 開發(fā)的 StarCraft II 游戲 AI AlphaStar 在 2019 年 1 月成功挑戰(zhàn)職業(yè)選手 [ 2 ] ;OpenAI 開發(fā)的 Dota2 游戲 AI OpenAI Five 在 2019 年 4 月戰(zhàn)勝職業(yè)選手 [ 3 ] ;Tencent 開發(fā)的王者榮耀游戲 AI 絕悟在 2019 年 8 月通過電競職業(yè)水平測試 [ 4 ] 。但是這些游戲中的場景都是 2D 的,而 FPS 類游戲通常都是 3D 的。FPS 類游戲與這些游戲的不同之處,以王者榮耀為例,總結(jié)如圖 1。
圖 1:FPS 類游戲與 MOBA/RTS 類游戲的區(qū)別
FPS 類游戲為非完全視野,且存在多個敵人和多個隊友,視野內(nèi)敵人和視野外敵人如何建模?敵人從視野內(nèi)短暫消失,玩家在視野外受到傷害時,敵人的特征如何表達?和隊友之間如何配合?怎么在高效的表示 3D 環(huán)境信息的同時降低計算復雜度?AI 的動作空間如何設計?這些都是值得思考的問題。
業(yè)界和學術界有一些將深度學習應用于 FPS 類游戲的例子,比如由 Poznan University of Technology 舉辦的 Vizdoom 比賽 [ 5 ] ,DeepMind 開發(fā)的 Quake III Arena 游戲 AI [ 6 ] 。但是它們的輸入都是純圖像,而且評價標準是競技。對于 FPS 類游戲來說,如果只是追求競技的勝利是非常容易的,只要計算好自己的槍口和敵人頭部之間的一個三維向量,就可以槍槍爆頭,這樣 AI 就變成外掛了。因此,我們提出 FPS 類游戲 AI 的評價標準是擬人,即希望 AI 能像人一樣和環(huán)境發(fā)生合理的交互,比如利用地形、障礙物,根據(jù)對手和同伴的狀態(tài)決定后續(xù)操作等等。
能否將深度學習技術應用于 FPS 類游戲,來幫助策劃和程序員高效地制作出不容易被玩家發(fā)現(xiàn)的擬人化 AI,是一個我們希望去解決的問題。
二、初步嘗試
2018 年下半年,項目組和 AI 平臺部基于全軍出擊手游開始了第一次嘗試。這次嘗試基于 5km * 5km 的全軍出擊地圖進行,如圖 2 所示。采用基于圖像和屬性特征相結(jié)合的監(jiān)督學習方案。
圖 2:全軍出擊地圖
這是 AI 在 FPS 的初步嘗試,實話實說,當時項目組和 AI 同學都沒有明確 FPS AI 的方向是什么,根據(jù)業(yè)界的經(jīng)驗,大家的目標還是偏向于競技和勝利。
采用的基于圖像識別的方法需要采集從客戶端的圖像數(shù)據(jù)處理后得到游戲的狀態(tài),這個過程過于復雜,消耗的資源也很多,整個項目迭代很慢。加上后來業(yè)務調(diào)整,沒能積累足夠的數(shù)據(jù)來支撐模型的訓練,以及問題復雜度確實太高 ,嘗試終止。
問題復雜度高有幾個方面引起:一是地圖范圍太大,對深度神經(jīng)網(wǎng)絡的表達與記憶能力有很大的挑戰(zhàn);二是環(huán)境復雜,地圖中有大量動態(tài)物體,如汽車、摩托車、船、包裹等等,對環(huán)境和物體的特征表示,挑戰(zhàn)也很大;三是巨大的動作空間,由于戰(zhàn)術競技復雜的游戲邏輯,真實的物理場景,需要 AI 對環(huán)境做出大量不同的反應,如開門、關門、開車、游泳、蹲、跑、爬等等。
三、新方案
2019 年春節(jié)后,項目組正式和 AI 平臺部 / 智能 NPC 中心開始新的一輪深度學習在游戲中落地的嘗試??偨Y(jié)了一些之前的經(jīng)驗。首先明確了幾個規(guī)則:
項目共同開發(fā),代碼開源共享;
項目組開發(fā)的 FPS 游戲是基于全服務器信任的,服務器擁有所有的游戲信息,包括地圖,模式,玩家的移動,開火,命中并做結(jié)果判定 ; 無需使用客戶端圖形進行間接分析和判斷。這樣可以大量地減少圖像處理對資源的消耗。同時 AI 可以獲得全局信息,而不是僅僅只有單個玩家的信息(后期會限制 AI 獲得非相關信息);
第一目標是擬人化,優(yōu)先采用監(jiān)督學習方案;
基于全軍出擊的復雜度問題,這次確定的方案是地圖由小到大,玩法從簡單到復雜。因此選擇了 CFM 團隊模式中的運輸船作為基準地圖(地圖大小:10m * 32m)。這是一張 5v5 小型地圖,玩法相對簡單,地圖是一個相對封閉的空間,沒有載具,在團隊模式中使用率高;
由于 CFM 已經(jīng)穩(wěn)定運行多年,并且日常開發(fā)工作繁重,游戲玩法邏輯服務器 DS 代碼接近 100w 行,如果再整合 AIServer 為一體,則無法保證系統(tǒng)的穩(wěn)定性和可靠性。因此,決定將 AI 作為一個 客戶端 接入到游戲服務器,而不是將 AI 整合到游戲服務器中?,F(xiàn)有的游戲邏輯服務器僅僅需要做極輕微的改動就可以接入 AI。當然,我們需要開發(fā)一些附加的獨立模塊來支持 AI。
圖 3:系統(tǒng)架構(gòu)圖
其中:
GameD 作為一個模擬客戶端加入 DS 的房間;
將 DS 發(fā)送給客戶端的協(xié)議轉(zhuǎn)換為 AI Server 的協(xié)議;
AI Server 加載訓練好的模型,根據(jù) GameD 發(fā)送的協(xié)議和自己需要的其他信息提取特征數(shù)據(jù),預測后將結(jié)果返回給 GameD;
預測的結(jié)果是 8 個方向的移動,上下左右視角變化,跳躍,蹲下,開火,換槍等基本操作;
GameD 把這些基本操作和地圖信息一起進行物理計算后,轉(zhuǎn)換為相應的協(xié)議發(fā)送給 DS。
四、第一次 5V5 的開發(fā)
項目在 2019 年 3 月初立項,設定的目標是希望在 4 月能夠搭建好完整的離線流程,實現(xiàn)基礎版 demo;5 月能夠?qū)崿F(xiàn)具有躲閃、跳躍、扔雷等高級操作的優(yōu)化版 demo。
4.1 建模
我們直接基于真實的 5v5 模式進行設計、建模,搭建相關的數(shù)據(jù)處理、模型訓練流程。問題的動作空間、狀態(tài)空間的建模如圖 4、5 所示,其中所有的子任務都建模為分類問題。
圖 4:動作空間建模
圖 5:狀態(tài)空間建模
4.2 業(yè)務流程的建立
在搭建模型的同時,其他配套系統(tǒng)也在同時并行開發(fā),包括日志處理、 GameD 開發(fā)、客戶端日構(gòu)建接入、回放工具等。整個流程逐步建立。同時在 3 個月的時間內(nèi)積累了 100w 對局日志。
4.3 效果不佳
5 月份,完成了第一個 5v5 版本,視野全透視,不考慮障礙物遮擋,經(jīng)過策劃同學的幾輪體驗后,總結(jié)了這個版本。
優(yōu)點:
已經(jīng)展現(xiàn)了初步的擬人功能,主要表現(xiàn)為:
利用掩體躲閃,
順利跳上箱子,
在箱子后預判穿箱開火,
在高頻對射點預瞄敵人,
在蹲人點等待敵人。
缺點也很明顯:
存在透視現(xiàn)象
對敵人尸體開火
存在視野內(nèi)有多個目標時來回切換
對視野外的傷害感知弱
敵人擦肩而過無感知等明顯問題
項目組經(jīng)過分析后找到問題所在:5v5 對戰(zhàn)變量太多,直接訓練 5v5 模型對于初期的擬人化目標而言還是太復雜。
五、基礎的 1V1
根據(jù) 5v5 版本出現(xiàn)的問題,我們決定暫停 5v5,轉(zhuǎn)移到更基礎 1v1。著重解決單個 AI 的擬人化表現(xiàn),通過 1 個真人玩家反復觀察和互動,逐步解決 AI 出現(xiàn)的問題。同時簡化了槍械,只支持步槍,暫時屏蔽狙,投擲和近戰(zhàn)武器。
5.1 模型的調(diào)整
沿用前面對動作空間、狀態(tài)空間的建模方式,同時將視野設置為考慮障礙物遮擋的 360 度可見,針對 1v1 模式,設計了如圖 6 所示的模型結(jié)構(gòu)。
圖 6. 1v1 模型結(jié)構(gòu)
對于狀態(tài)空間,使用了多條 3D 實時射線來感知周圍的環(huán)境,包括靜態(tài)環(huán)境和動態(tài)環(huán)境(敵人),輸入使用單幀輸入,不考慮歷史信息。
由于整個對局只存在 1 個敵人不存在多目標選擇的問題,且使用了考慮障礙物遮擋的 360 度可見,AI 對視野外傷害,和擦肩而過感知等問題得到明顯改善,但是也出現(xiàn)了新的問題。例如:徘徊問題。
基于真實玩家的 30w 對局數(shù)據(jù)進行了模型訓練,存在太剛、特定情況下長時間左右徘徊的問題。對于前者,我們通過優(yōu)化樣本數(shù)據(jù)進行了緩解;對于后者,通過分析,我們發(fā)現(xiàn)是因為輸入的特征出現(xiàn)了周期性變化,同時模型對于相同的輸入只會產(chǎn)生相同的輸出,導致視角子任務的輸出無法打破循環(huán)。
AI 在同一個狀態(tài)下存在多個合理的決策,如圖 8 所示,在狀態(tài) A,為了繞過障礙物樹,既可以通過右轉(zhuǎn)到狀態(tài) B 實現(xiàn),也可以通過左轉(zhuǎn)到狀態(tài) C 實現(xiàn)。視角子任務與其類似,這種問題被稱為多值問題。
圖 7:多值問題示意圖
對于多值問題,混合密度網(wǎng)絡 [ 8-10 ] 是一個比較優(yōu)雅的解決方案。通過將視角子任務的建模方式由分類任務替換為多個高斯分布建模,預測時按分布概率采樣,增加 AI 行為的多樣性,模型表現(xiàn)沒有明顯的問題,得到策劃的認可。
隨著問題的逐步解決,AI 的表現(xiàn)越來越好。
5.2 復雜問題逐步解決
通過 1v1 模式的解決,初步驗證了問題建模的有效性,包括動作空間、狀態(tài)空間等。接下來我們重新去應對 5v5 模式。與 1v1 模式相比,5v5 模式有如下明顯的不同。
表 1. 5v5 模式 vs 1v1 模式
針對上面的不同,我們設計了如圖 8 所示的模型結(jié)構(gòu)。
圖 8. 5v5 模型結(jié)構(gòu)
基于百萬級別的對局數(shù)據(jù),1v1 中使用 360 度視野規(guī)避了視野外傷害無感知和敵人擦肩而過無感知的問題。在 5v5 中這種視野建模方式不再有效,主要原因有:
1)從訓練數(shù)據(jù)上來看,玩家主要關注的是正前方的敵人,而非背后的敵人。
2)背后受到傷害特征只會持續(xù)一幀,AI 無法持續(xù)決策轉(zhuǎn)身攻擊。
3)為此,AI 視野建模改為真實玩家視野建模,同時在數(shù)據(jù)層面刪除了受到傷害短時間死亡的幀,在模型層面引入了目標選擇輔助任務,在特征層面加入了對歷史信息的建模,基本解決了視野內(nèi)有多個目標時來回切換,對視野外的傷害無感知,敵人擦肩而過無感知等問題。
模型效果在 7 月中旬得到了策劃的認可。后續(xù)我們又增加了對多武器的支持,比如狙擊槍、手雷等。到 7 月底,包含多武器的模型效果得到策劃的認可。
5.3 擴展和上線之路
5v5 模式的效果得到認可后,我們決定將新 AI 上線,接受更多真實玩家的體驗。
經(jīng)過 1 個多月的準備、測試,基于運輸船開發(fā)的新 AI 于 9 月 14 日上線千人體驗服。86.6% 的玩家認為新 AI 比行為樹 AI 的體驗更好,多樣化的行為讓玩家比較驚喜。
圖 9. 體驗服玩家反饋
為了驗證整套方案的擴展性,又經(jīng)過將近 2 個月的開發(fā)、優(yōu)化、測試,我們完成了基于中型地圖恐龍博物館(地圖大小:20m * 40m)的新 AI 構(gòu)建,并和運輸船一起于 11 月 22 日上線正式服,全量替換行為樹 AI。玩家對局次數(shù)、對局時長分別提升 34%、29%,40% 左右的玩家 認為 AI 局沒有 AI(真人局中有 30% 的玩家認為有 AI)。
在 2020 春節(jié)版本中,我們又擴展了 4 張地圖:清新椰島、巷戰(zhàn) TD、沙漠對決、軍事基地,而且基于沙漠對決地圖構(gòu)建了一個明星 AI。
玩家水平處于游戲中的 top 30%,對 AI 比較敏感,投放會面向大量中低端玩家。
5.4 工具建設
對局日志回放工具,用于確認數(shù)據(jù)選取、模型表現(xiàn)是否有問題
選點定位工具,用于進行區(qū)域數(shù)據(jù)分析,如下圖
圖 10. 選點定位工具
標簽分布工具,用于標簽不平衡直觀觀察
圖 11. 單任務標簽分布
六、展望
6.1 強化方案
由于 CFM 有幾十上百張地圖,不是每張地圖都有足夠的玩家數(shù)據(jù)用來支撐監(jiān)督學習的訓練。基于純玩家數(shù)據(jù)的訓練時間和人力成本太高。為此,我們探索了基于強化學習,輔以少量玩家數(shù)據(jù)的方案,目前也取得了不錯的效果。為后續(xù)覆蓋更多地圖提供了另一種選擇。
6.2 更多的玩法支持
FPS 玩法眾多,后續(xù)規(guī)劃了爆破,生化,生存等模式。
6.3 預測性能的優(yōu)化
預測目前使用的是 python 方案。Python 在線上性能不佳,單反服務器的承載非常有限。項目組和 AI 平臺部團隊正合作開發(fā)高性能的 Ai Server,2020 一季度可以上線。
經(jīng)過近 1 年的努力,我們基于穿越火線手游,探索了一套可行的在 FPS 類游戲中構(gòu)建擬人化 AI 的方案,并得到真實玩家的認可。這是業(yè)內(nèi)第一個深度學習在 FPS 游戲中實際上線的案例。同時,由于技術的突破,給產(chǎn)品帶來了更多的拓展空間。
有幾點經(jīng)驗分享給正在或是準備進行 AI 落地的項目同學:
明確 AI 在項目中的作用;
選擇合適的技術,不一定是最前沿或最先進的;
從最簡單的地方開始,逐步深入;
項目組和 AI 團隊開源協(xié)同,發(fā)揮各自所長;
工具建設要跟上;
工程落地最終還是要考慮效率和成本。
最后,歡迎大家來體驗 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
關于騰訊游戲?qū)W院專家團
如果你的游戲也富有想法充滿創(chuàng)意,如果你的團隊現(xiàn)在也遇到了一些開發(fā)瓶頸,那么歡迎你來聯(lián)系我們。騰訊游戲?qū)W院聚集了騰訊及行業(yè)內(nèi)策劃、美術、程序等領域的游戲?qū)<遥覀儗槿澜绲膭?chuàng)意游戲團隊提供專業(yè)的技術指導和游戲調(diào)優(yōu)建議,解決團隊在開發(fā)過程中遇到的一系列問題。
申請專家資源請前往:https://gwb.tencent.com/cn/tutor
本文標題:如何提升游戲中機器人的表現(xiàn)?
路徑分享:http://m.rwnh.cn/article18/cpdcdp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、營銷型網(wǎng)站建設、用戶體驗、網(wǎng)站設計公司、搜索引擎優(yōu)化、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)