適合AI訓練的遊戲框架
在解答之前。需要解釋一下深度學習AI在遊戲中框架中的角色是什麼。可以先簡單的認為深度學習AI最終會是一個特殊“AI客戶端”的存在,它和傳統客戶端一樣,通過協議與伺服器通訊互動。它具體做的事,有點類似於遊戲裡實現“託管離線玩家”用的行為樹(Behaviour Tree)。它用神經網路的預測結果,對映成呼叫遊戲邏輯提供的基礎行為節點,適時的做出合理的行為。
我們先看傳統遊戲框架中最基礎的單機版遊戲的框架設計。會得到下面的結構。
上面的遊戲框架會有以下幾個部分:
- 遊戲核心邏輯:它負責響應使用者的輸入,以及自定義的Update邏輯。並返回運算結果,並以狀態的形式,給到遊戲的表現層展示出來。
- 遊戲圖形渲染:表現層的主要邏輯是通過這個部分展示。
- 輸入控制:專門響應玩家輸入的邏輯,並向核心邏輯傳送指令。
-
物理引擎(可選)。
使用者輸入可以彙總成:
- Move:移動玩家在遊戲中控制的角色。
- Attack:操控玩家在遊戲中的角色產生一個攻擊行為。
- UseProp:操作玩家在遊戲中的角色產生一個使用道具的行為。
等等行為。
狀態可以彙總成:
- Position:玩家操作的角色在遊戲世界中的位置。
- HP:玩家操作的角色血量。
- UnderAttackEvent:玩家操作的角色被攻擊了的事件。
等等狀態。
考慮到多人線上的遊戲設計,主流的設計思路,有幀同步和狀態同步兩個模式。
幀同步的模式,以王者榮耀等MOBA遊戲為代表。
相對單機的那個設計。主要是把使用者輸入的部分,變成了由專門的幀同步伺服器轉發廣播。這樣就能實現“多人遊戲”(當然實際的實現沒這麼簡單)。
狀態同步的模式,以魔獸世界等MMO遊戲為代表。
相對單機的設計。在伺服器接受到了使用者輸入後,會先把部分的核心邏輯在服務端處理(比如攻擊判定,扣血多少等等),最終直接把客戶端需要的狀態資訊同步下去。但不可避免的,依然會有一些操作,尤其是依賴物理引擎的部分,會交由客戶端處理。單機遊戲裡的核心邏輯就分散在了客戶端和狀態伺服器兩個部分裡面。
而更適合AI訓練的遊戲框架。是如下圖所示:
強調遊戲的伺服器端,要有遊戲全部的核心邏輯規則,甚至包括整合遊戲內的物理引擎(可選)。
1.支援到玩家各種行為的後續結果、反饋規則。比如玩家攻擊了一個玩家後,要怎麼扣血。
2.遊戲本身的基礎邏輯。比如玩家包裹裡的食物,會在幾天後會腐敗。
3.場景裡會定期會重新整理出現的道具。
等等,類似這些都是核心邏輯。但不用帶上表現層的部分。
- 而在介面層面,保持和傳統的C-S協議一致。接收來自客戶端以及AI線上決策伺服器的“使用者輸入”,返回同樣的狀態輸出。
- 和AI的連線可以用最簡單的TCP socket通訊。AI端做為Server,遊戲伺服器做為Client。這裡的考慮主要是為了利於AI端對於請求的負載均衡。
- 這樣的適配,最小程度修改了傳統的遊戲框架。
對於強調遊戲的伺服器端,要有遊戲的全套核心邏輯的原因,主要是AI端需要在沒有客戶端的情況下,傳送一個使用者的操作,但伺服器要能處理所有的後續邏輯。比如說AI端說向前跳躍,服務端需要檢測AI端的跳躍是否合法(有無體力,是否被禁錮等等),並且要在真實的物理層面支援跳躍是否中途被障礙物阻擋,落點在哪(可選)。這些都決定了,適合AI訓練的遊戲框架是這樣處理。
目前已知的,符合這種設計的遊戲引擎是Unreal。採用dedicated server的專案,基本上原生支援上述的要求。
以下是更詳細的描述了,做為在強化學習訓練中,做為環境一部分的遊戲伺服器,會被同時啟動大量的(1000+局)單局同時訓練。並且可以支援的不同緯度,更好的適配AI訓練。
監督學習的訓練相對簡單一些。主要是要通過遊戲伺服器,把單局裡的使用者輸入以及狀態的改變,都儲存成記錄(錄影),以便監督學習平臺訓練。常見的問題是傳統伺服器裡並沒有全量的狀態(比如fps遊戲裡玩家攝像機的朝向),會影響訓練效果。
上線後的階段和AI線上決策服是一樣的。
相關文章
- AI打遊戲-肆(模型訓練)AI遊戲模型
- AI打遊戲-貳(收集訓練圖片)AI遊戲
- 聯盟訓練在遊戲AI多樣化的探索遊戲AI
- 谷歌推出適合各種遊戲的通用AI代理:SIMA谷歌遊戲AI
- TODO 最適合練習主流框架的應用框架
- 適合新手的Java程式設計課程訓練網址Java程式設計
- 商湯原創AI訓練框架SenseParrots的成長之路AI框架
- 適合小白練習的幾個Python小遊戲專案-含開發思路Python遊戲
- Nature封面:AI訓練AI,越訓越離譜AI
- 「模型訓練」如何選擇最適合你的學習率變更策略模型
- 教育遊戲?是的,這裡有9款適合孩子的最好的教育遊戲遊戲
- “沒有劇情”的遊戲也許才是最適合改編的遊戲遊戲
- 長沙前端培訓機構:10個適合新手練手的前端專案前端
- 知物由學 | 更適合文字分類的輕量級預訓練模型文字分類模型
- 遊戲文案策劃——能力構成與訓練遊戲
- 遊戲AI:AI的遊戲還是遊戲的未來遊戲AI
- 物件導向綜合訓練物件
- 【AI】Pytorch_預訓練模型AIPyTorch模型
- 如何為遊戲預告片捕捉合適的畫面?遊戲
- iOS多包發行策略:適合輕遊戲與獨立遊戲iOS遊戲
- 哪些人適合去IT培訓?
- 適合凌晨兩點練習的小測驗
- 【AI】精妙的Pytorch訓練視覺化工具tensorboardXAIPyTorch視覺化ORB
- 哪些小說適合改編遊戲?這位“愛好文學”的遊戲製作人如是說遊戲
- 賽博朋克的火熱浪潮並不適合中國遊戲遊戲
- Flutter | 一些很適合新手練習的DemoFlutter
- Epoch AI:硬體佔訓練前沿AI模型成本的47-67%AI模型
- 祕籍在手,訓練不愁!特斯拉AI負責人Karpathy的超全神經網路訓練套路AI神經網路
- 如何挑選適合的網路安全培訓班?
- java培訓機構如何選擇適合自己的Java
- 認證類的TRIZ培訓適合企業嗎?
- 4分鐘訓練ImageNet!騰訊機智創造AI訓練世界紀錄AI
- 遊戲開發如何選擇合適的遊戲題材——以核心理念為整體遊戲開發
- 預訓練是AI未來所需要的全部嗎?AI
- 雲原生的彈性 AI 訓練系列之一:基於 AllReduce 的彈性分散式訓練實踐AI分散式
- 神經渲染與AI生成框架結合,5倍提升遊戲速度,英偉達是這樣做的AI框架遊戲
- 【ICDE 2022】稀疏模型訓練框架HybridBackend,單位成本下訓練吞吐提升至5倍模型框架
- [原始碼解析] 深度學習分散式訓練框架 horovod (13) --- 彈性訓練之 Driver原始碼深度學習分散式框架