前言
字節跳動旗下游戲業務品牌朝夕光年(全球品牌名:Nuverse)成立于2019年,面向全球用戶與開發者開展游戲研發與發行業務。目前,朝夕光年已在中國國內和海外發行及研發了包含MMORPG、ARPG、MOBA、自走棋、策略卡牌類、競技體育等類型在內的多款手游,未來也將在游戲研發與發行領域持續投入,為全球玩家帶來更多優質產品。
朝夕光年無雙工作室成立于2016年,于2019年加入字節跳動,工作室以創造品類標桿為目標,努力給玩家帶來有趣和激動人心的游戲體驗。作為字節游戲全球戰略布局的重要一環,無雙工作室承擔了朝夕光年自研中重度手游的使命,努力為玩家打造感動你我的游戲。
游戲品類
無雙工作室自成立以來就對自己的賽道品類有清晰的認識和堅持,基于對“高品質ARPG”的長期積累和熱愛,著力發揮在ACT、卡通、IP等領域優勢,研發出品過包括《全民無雙》《擇天記》《航海王熱血航線》(與中手游聯合出品)多款手游,打造產品的同時也積累了研發經驗、歷練了團隊。《航海王熱血航線》在上線之初就保持5天免費榜榜首,最高暢銷榜第3的優異市場表現。
隨著在ACT領域的深耕,工作室通過技術中臺與項目的相互促進,通過在卡通、二次元渲染、影視動畫工作流、工具集成、AI落地游戲開發應用等方向進行大膽技術嘗試。本文將著重分享工作室在AI技術賦能游戲研發方向的技術實踐,講述AI在此品類游戲下的應用效果和價值。
AI賦能游戲
對戰AI
基于機器學習技術,我們與字節游戲AI團隊合作研發了競技場AI機器人,機器人可以設置不同的難度,根據玩家的段位,為玩家匹配段位合適的AI機器人,并且我們的AI機器人同時擁有更類似真人行為的表現,讓玩家能夠感受到和真人玩家一樣的對局體驗。AI機器人可以提升玩家的在競技場玩法的整體體驗,避免因連續挫敗感造成的玩家流失。
AI機器人實現的核心技術是大規模分布式深度強化學習。在1vs1 3D格斗競技場中,AI機器人可以從多達數十個的伙伴中隨機選擇,進行對抗,這些伙伴擁有完全不同的技能和戰斗機制。 游戲環境在大量的CPU上加速運行,AI不斷與自己及過去的自己進行自對弈(self-play),通過大量的自對弈對戰數據,AI模型可以逐步提高自己的水平。 在自研強化學習平臺的支持下,幾千個游戲環境可以同時運行,每天完成千萬數量級的對局。
我們的AI機器人在智能涌現過程中,隨時訓練時間的增長,機器人的風格和水平也出現了不斷的變化,大致可以分為五個階段。
直接攻擊:一開始AI風格很直接,就是追著對手攻擊,正面硬碰硬
攻擊后躲避:AI成功攻擊建立血量優勢后,會選擇躲避對手,在對手無法追上的情況下,耗完時間就可以取得勝利
躲避能追上:AI學會了有效的追擊方式和移動壓制能力,簡單的攻擊后躲避已經無法取得最終的勝利。同時,這個階段的AI在移動上更加靈活
動態游走:AI在移動的選擇上更加自由,擅長躲避對方的遠程攻擊,在近距離移動上,閃避技能使用得更加游刃有余
處變不驚:AI已經不再頻繁的跑動,而是學會了靜觀其變,在關鍵時刻出手一擊。并且,這一階段的AI學會了位置上的壓制,可以在移動中逐漸逼迫對手落入競技場邊緣以便最后的攻擊
經過不斷訓練,AI能夠在不斷的自對弈中不斷提升智能水平,發現很多新的技巧,逐漸成為一個絕世高手。然后我們通過延遲操作輸出、減少連招次數、降低技能使用概率等手段劃分出不同難度的AI,提供給不同段位的玩家匹配使用。并且我們也將AI適配到不同的玩法之中,比如《航海王熱血航線》中的烈焰對決玩法中的噩夢難度AI。
從一開始的技術突破,到后來的在產品中落地使用,我們在這過程不斷地積累經驗、迭代模型、拓寬我們的技術應用,讓AI能夠更好地服務于產品。我們在打造新手陪玩AI、挫敗溫暖AI以此提升留存的同時,也會繼續制作人機挑戰AI等全新游戲玩法,讓玩家體驗人工智能的魅力,提升玩家游戲的樂趣。我們會在關注提升競技性的同時,也會更多關注擬人性,提高玩家體驗。
數值平衡性測試
數值平衡性對游戲來說,也很重要,我們在這個應用場景希望解決的問題是,不希望出現某個卡牌角色/某組角色組合陣容過于強大,出現版本通吃的情況(這會降低玩家對其他角色的養成,變相降低游戲收入),以及能為策劃提供更有力的決策依據。
首先,回顧一下傳統的平衡性測試流程:
跑大量的對局
這里通常要考慮戰前陣容,這個數量非常大(全排列4,389,446,880種),傳統的做法是,策劃或者測試同學給出一些常見的陣容搭配或者某些搭配規則,將全排列數量降至幾萬種級別,然后兩兩對戰100局。
自動戰斗
在跑大量的對局中,對戰過程需要決策,所以一般情況是策劃配置行為樹(后面簡稱BT),作為戰中模擬玩家的決策。
戰中數據記錄
我們需要記錄每局戰斗過程中的關鍵事件/數據,比如擊殺、增益buff次數、治療量、抗傷量等等數據,以便后面做數據分析
數據分析
經過上面三部,有了大量的對局數據,就可以通過數據統計,分析出每個角色的一些數據,為策劃提供決策依據。
從上面的過程中,可以看到,有兩個地方有一定的弊端,一個是陣容選擇,策劃或者測試同學篩選出的陣容,未必是真正的強勢陣容,可能會忽略掉更有潛力的陣容。二個是自動戰斗AI,使用BT編輯,通常策略較單一、簡單,而無法發揮某些組合的真正能力。
為此,我們希望用強化學習,嘗試解決上述兩個問題,因為強化學習就是擅長決策最優選擇去實現收益最大化,可以打出策劃意想不到的套路。我們分為了兩步來進行對比驗證:
訓練局內對戰AI,來代替BT
結論:【隨機陣容 + 局內AI模型】vs【隨機陣容 + 內置BT】前者平均勝率59%。這個結論說明AI模型能力要強于BT。
訓練陣容選擇AI,來代替預先固定陣容
結論:【陣容AI模型 + 局內AI模型】vs【人工篩選強勢陣容 + 內置BT】前者平均勝率96%。結合第一步結果,能說明陣容的重要性,且AI更能發揮陣容/角色的能力。
所以,我們使用了這兩個模型代替了陣容選擇,和戰中決策BT,其他過程不變。在自研的某游戲平衡性測試過程中,我們做了個對比,發現一個有趣的現象:AI輸出的結果中,某個定位前排角色,勝率較高,而傳統測試輸出他的勝率平平。后來發現是因為策劃在配置BT策略的時候,有意的把一些稀缺資源,配置給其他角色,這樣導致戰斗過程中,這個定位前排的角色,拿不到稀缺資源,就無法發揮出應有的實力。
基于AI的Markerless動作捕捉
隨著游戲日益精品化,加之動捕是3A游戲的必備工藝,工作室也開始建設動捕能力,我們在調研了傳統的慣捕、光捕之外,決定在傳統捕捉方案之外,將基于AI的視頻動作捕捉也作為一種動捕能力一起建設。
我們把基于AI的Markerless動作捕捉技術,方案命名為AIMocap,目前具備以下特性
無需穿戴任何設備(Markerless)
普通攝像機(多視角)
離線/實時視頻捕捉(30fps)
支持多人同時捕捉
主要流程如下:
同時為了提升捕捉效率和效果,我們又做了以下優化:
計算效率
模型使用TensorRT加速推理
CPU與GPU之間并行
GPU內并行(CudaStream)
升級硬件rtx2070s->rtx3090
效果優化
因為是Markerless的,純靠AI模型推理,得到的點還是會有誤差,會產生抖動,所以進行了3D空間點平滑處理
減少滑步,實時判斷腳部是否接觸地面,然后用IK,把腳固定到地面上
動捕數據的自動清洗
動捕能極大的提升動畫生產效率,增加動作的逼真度,然而,動捕最大的弊端之一便是動捕數據清理所帶來的巨大工作量,目前大部分的動捕廠商對這一步的處理還都限于使用其專業軟件依賴人工進行數據修復和清洗,在整個流程中成本占比也最高。即便在精度較高的光捕技術上,也依然存在依賴人力修復數據的問題。
我們在建設無雙工作室動捕實驗室的過程中,通過探索,針對光學動捕數據,做自動的數據清洗,和姿態解算。
基于業界的理論研究《Robust Solving of Optical Motion Capture Data by Denoising》、《 AMASS: Archive of Motion Capture as Surface Shapes 》、《MoCap-Solver:A Neural Solver for Optical Motion Capture Data》等論文的工作。
處理流程如下
訓練過程如下
Learned Motion Matching
從目前來看,能夠很好的利用動捕數據,使動畫表現更加自然真實,還是需要Motion Matching,然后在此基礎上應用AI技術,在保證原有Motion Matching效果的前提下,解決Motion Matching的內存占用過大問題。
我們總體分為兩步走:
構建一個基礎的motion matching系統
基于此,實現Learned Motion Matching
主要參考育碧的《 Learned Motion Matching 》
核心思路就是通過訓練三個神經網絡,來取代Motion Matching中的動畫數據庫和feature數據庫。達到降低內存使用的目的。
Decompressor部分
首先訓練一個類似AutoEncoder網絡,主要用于動畫壓縮,將原始動畫序列轉化為抽象特征z的序列,運行時只使用Decompressor部分
Stepper部分
主要目的是為了避免存儲上面的抽象特征z序列,現在只需要為每段動畫存儲一個初始的x和z,就可以用stepper網絡輸出下一幀的x和z,然后通過上面的Decompressor來還原動畫。
Projector部分
這部分的主要目的是代替MotionMatching中的matching feature搜索部分,從而取消存儲x序列。
最終流程
對AI未來規劃的思考
隨著AI技術的發展,以及越來越多的AI在游戲中的應用案例,讓我們看到了AI在游戲中應用的無限可能。“科技是第一生產力”,作為一家有追求的游戲公司,為了將最高品質的游戲,提供給玩家,我們需要對前沿技術保持高度的敏感,勇于嘗試將技術落地到游戲中,做好技術/人才的儲備,才能保持公司的核心競爭力。
正視AI能力
首先,要正視AI這項技術,我發現有一部分人對AI的理解,并不是很準確,這部分人的觀點通常分為兩類:
一類是認為AI無所不能,針對某一個問題,可以找到一個使用AI的解決方案,把整個問題全部解決,自己可以當甩手掌柜。這種認知是有偏差的,AI更擅長的是解決某一個單一的問題,快速、高效、準確的解決某一個復雜方案中的某一個子問題。比如在數值平衡性測試過程中,AI也只是替代了BT和陣容選擇,并沒有說,訓練一個模型,直接可以把策劃的配置表數值,改變成平衡的。
另一類是覺得AI目前效果還不好,達不到實際使用需求、行業對AI過度吹捧。不否認有些AI應用為了追逐資本可能過度宣傳,然而最終難落地被打臉,從而導致某一部分人認為這是普遍現象,但是實際情況并不全是這樣。
所以,要正視AI的能力,過高的期望,可能會讓我們在落地的過程中更具挫敗感。過低的期望,可能會讓我們在決策時錯失嘗試新技術的機會。畢竟技術進步是第一生產力,不能因為對AI理解的不到位,而錯失一些有價值的技術。
那如何能提升正視AI的能力呢,可以平時多了解AI的技術原理,多關注各種應用場景,一些前沿的技術論文等,提高對AI能力的認知,才能方便我們在技術決策時,做出相對較為合理的預期和決策。
拓展AI賦能范圍
朝夕光年無雙工作室會以更務實的態度面對AI在游戲方向的應用,一方面會迭代上述已落地的AI在游戲上的應用;同時將繼續拓展AI技術在以下領域助力游戲內容生產:
面部/口型動畫生成
智能對話
PCG內容生成
柯潔在與AlphaGo交戰之后說:“在AlphaGo沒有出現前,我覺得自己對圍棋已有了五成認知。AlphaGo讓我對圍棋,甚至人生的看法有了巨大改變,讓我認識到了自己的不足。圍棋的變化太多,我了解的還是太有限了”, AlphaGo讓我們看到AI在游戲上的更多可能性,也深知探索的路程必將“路漫漫其修遠”,也歡迎有識之士加入,讓我們為AI在游戲上的應用“上下求索”。