SimulatorX編年史|RM模擬器的前世今生

各位 RMer 和關(guān)注者們:
大家好呀!我是華南虎模擬器組組長黃揚(yáng)。第一次在b站專欄跟大家見面,來聊一聊華南虎 RoboMaster 模擬器的前置開發(fā)故事。

# 先從比賽本身講起。
自2015年開辦以來,RoboMaster一直關(guān)注參賽隊(duì)伍的機(jī)器人自主研發(fā)硬實(shí)力。每屆比賽中都會涌現(xiàn)一批設(shè)計(jì)精巧、功底扎實(shí)的技術(shù)方案,參賽隊(duì)伍一次又一次刷新著參賽技術(shù)的上限。
相較于硬技術(shù),參賽隊(duì)伍的戰(zhàn)術(shù)布置和操作水平顯得相對沒有那么重要。一些比賽中,雙方機(jī)器人技術(shù)實(shí)力的差距讓比賽很難具有懸念,而精彩的戰(zhàn)術(shù)博弈和極限翻盤等賽況,在實(shí)力相仿的隊(duì)伍間才較多出現(xiàn)。這樣的比賽定位讓大多數(shù)隊(duì)伍將精力投入到了機(jī)器人研發(fā)中,在操作手訓(xùn)練方面則沒有系統(tǒng)的計(jì)劃和工具。
# 我們的模擬器計(jì)劃。
隨著比賽和隊(duì)伍的發(fā)展,部分隊(duì)伍和參賽隊(duì)員開始進(jìn)行操作手訓(xùn)練方式的探索。2020年,華南虎便開始嘗試研發(fā) RoboMaster 比賽模擬器。
最初模擬器軟件的設(shè)計(jì)目的非常簡單,就是讓操作手能夠提前熟悉場地、預(yù)演戰(zhàn)術(shù)布置——類似電子沙盤的作用。

由于缺乏聯(lián)機(jī)游戲開發(fā)經(jīng)驗(yàn),對 Unity 引擎的熟悉程度也不高,我們在2020年6月制作出的第一版模擬器軟件——RoboSim。它在可用性、仿真性甚至穩(wěn)定性上都存在著較大問題:車輛手感不真實(shí),場地建筑物缺失、裁判系統(tǒng)未能搭建實(shí)現(xiàn)……
這個版本連隊(duì)內(nèi)測試都沒成功進(jìn)行,但我們沒有放棄。
為解決第一個版本存在的車輛手感問題,我們開始嘗試各種方案,以尋找模擬車輛底盤的最佳方式,并在?20 年10月左右制作出了一個新版本的模擬軟件:Realive。

在這個版本中,我們暫時擱置了裁判系統(tǒng)的邏輯實(shí)現(xiàn),專注于還原車輛的運(yùn)動功能和操作方式。一鍵調(diào)頭、小陀螺等車輛特性在這個版本中第一次被加入。在網(wǎng)絡(luò)聯(lián)機(jī)方面,這個版本也終于能夠穩(wěn)定支持六位操作手同時操控步兵機(jī)器人跑場。盡管它缺少了戰(zhàn)術(shù)推演所需的比賽邏輯,它還是華南虎模擬器研發(fā)過程中的重要進(jìn)展之一。
# 逐步完善。
不過,要讓模擬器具有基本的可用性,更豐富的車輛種類和完整的比賽邏輯必不可少。在上版運(yùn)動模型的基礎(chǔ)上,我們增加了英雄、工程和無人機(jī)三個兵種的機(jī)器人,并更新了 UI 界面。在?2021 年春節(jié)之后,制作出了第三版模擬器Simulator?的雛形:

這時的模擬器已初步具備跑場功能,但在聯(lián)機(jī)時還是會經(jīng)常出現(xiàn)各種意外狀況,測試隊(duì)員和開發(fā)人員都被折騰得不輕。
在忙于修復(fù)邏輯Bug的同時,場地模型的精度問題也一直未能解決。由于當(dāng)時團(tuán)隊(duì)里沒有負(fù)責(zé)美工的同學(xué),車輛和場地的建模都使用了從CAD軟件導(dǎo)出的方式,這直接導(dǎo)致機(jī)器人面數(shù)過高,場地精度又不足。直到四月份,我們使用論壇上官方發(fā)布的場地模型進(jìn)行減面、填色處理后,模擬器觀感才得到了一些提升:


隨著機(jī)器人自瞄、哨兵自動擊打、前哨站基地聯(lián)動等功能的添加,模擬器開始初具可玩性。
2021年5月,第三版模擬器的測試結(jié)果終于開始穩(wěn)定,開局即勝利、開局變哨兵、無法連接服務(wù)器等嚴(yán)重影響使用的Bug被一個個修復(fù),隊(duì)里終于可以嘗試使用模擬器進(jìn)行戰(zhàn)術(shù)推演。
當(dāng)然過程中果然出現(xiàn)了更多奇怪的Bug→_→:

?# 穩(wěn)定版本。
2021年5月31日,之前收到模擬器安裝包的兄弟隊(duì)伍野狼戰(zhàn)隊(duì),與我們分享了一段內(nèi)測使用視頻。在視頻中,對戰(zhàn)雙方全陣容出戰(zhàn),在五分鐘內(nèi)沒有出現(xiàn)機(jī)器人掉線等惡性情況,最終也以紅方勝利的結(jié)果成功結(jié)算。

這是模擬器第一次穩(wěn)定完賽的記錄,從此,華南虎終于可以將模擬器作為穩(wěn)定的訓(xùn)練工具,通過隊(duì)內(nèi)切磋、戰(zhàn)術(shù)推演和友誼賽提升操作手的熟練度。2021年6月4日,華南虎與野狼戰(zhàn)隊(duì)成功進(jìn)行了第一次跨校模擬器友誼賽。隨著比賽的成功結(jié)束,Simulator也升級到了?1.0 版本。

在賽季開始前,我們再對 Simulator 進(jìn)行了一些細(xì)節(jié)調(diào)整。但由于項(xiàng)目開發(fā)后期較為混亂,難以繼續(xù)維護(hù),沒有能夠再增加新的功能。
21賽季全國技術(shù)交流結(jié)束后,華南虎在論壇開源了?Simulator 最終版 061521?,希望能夠與更多感興趣的大佬們切磋交流。

不過,由于開源和后續(xù)的模擬器重構(gòu)計(jì)劃,雖然此版本的客戶端和服務(wù)端軟件都開放使用,但未來華南虎無法再對該版本軟件提供相關(guān)技術(shù)支持,請大家理解。
?
# 新的開始。
故事到這里還沒有結(jié)束。雖然 Simulator 模擬器已經(jīng)實(shí)現(xiàn)了大多數(shù)賽制規(guī)則和機(jī)器人功能,但作為操作手訓(xùn)練工具,它還有很多問題。不管是部署和使用流程的繁瑣,還是網(wǎng)絡(luò)帶寬占用大、車輛屬性不可調(diào)整等等,都是非常致命的缺點(diǎn)。同時,由于項(xiàng)目后期為了趕上業(yè)務(wù)需求,我們在項(xiàng)目規(guī)范性方面做得并不理想,直接導(dǎo)致項(xiàng)目可維護(hù)性低下。
為了解決上述問題,我們開始了新一代模擬器的設(shè)計(jì)工作。

在項(xiàng)目管理、代碼規(guī)范、美工設(shè)計(jì)等方面,我們都開了不小的腦洞。一方面想規(guī)避上一代模擬器的缺陷,也想做出更多實(shí)用的新功能。在2021年的招新中,模擬器開發(fā)組第一次作為單獨(dú)的組別參與了招新工作,新同學(xué)的加入帶來了更多新奇想法的同時,也引出了項(xiàng)目管理方面的挑戰(zhàn)。

好在,在數(shù)月的培訓(xùn)和開發(fā)工作之后,新版模擬器?SimulatorX?終于在 RM 2022 線上操作手聯(lián)賽中,以公測形式與大家見面了!

除去正經(jīng)的開發(fā)和debug,在 RMUL模式的基礎(chǔ)上,我們還嘗試推出了無限火力玩法,探索模擬器作為游戲的可能性。
聯(lián)賽結(jié)束后,SimulatorX - RMUC內(nèi)容的開發(fā)重新回到正軌,后續(xù)我們也會有 RMUC 內(nèi)容公開使用的相關(guān)計(jì)劃,敬請期待,屆時歡迎各位捧場交流!

2022/4/15
模擬器技術(shù)顧問 黃揚(yáng)
?
文案 / 黃揚(yáng) 徐心卓
編輯 / 徐心卓
視頻 / 蛋~
審核 / 徐心卓


