SimulatorX编年史|RM模拟器的前世今生

各位 RMer 和关注者们:
大家好呀!我是华南虎模拟器组组长黄扬。第一次在b站专栏跟大家见面,来聊一聊华南虎 RoboMaster 模拟器的前置开发故事。

# 先从比赛本身讲起。
自2015年开办以来,RoboMaster一直关注参赛队伍的机器人自主研发硬实力。每届比赛中都会涌现一批设计精巧、功底扎实的技术方案,参赛队伍一次又一次刷新着参赛技术的上限。
相较于硬技术,参赛队伍的战术布置和操作水平显得相对没有那么重要。一些比赛中,双方机器人技术实力的差距让比赛很难具有悬念,而精彩的战术博弈和极限翻盘等赛况,在实力相仿的队伍间才较多出现。这样的比赛定位让大多数队伍将精力投入到了机器人研发中,在操作手训练方面则没有系统的计划和工具。
# 我们的模拟器计划。
随着比赛和队伍的发展,部分队伍和参赛队员开始进行操作手训练方式的探索。2020年,华南虎便开始尝试研发 RoboMaster 比赛模拟器。
最初模拟器软件的设计目的非常简单,就是让操作手能够提前熟悉场地、预演战术布置——类似电子沙盘的作用。

由于缺乏联机游戏开发经验,对 Unity 引擎的熟悉程度也不高,我们在2020年6月制作出的第一版模拟器软件——RoboSim。它在可用性、仿真性甚至稳定性上都存在着较大问题:车辆手感不真实,场地建筑物缺失、裁判系统未能搭建实现……
这个版本连队内测试都没成功进行,但我们没有放弃。
为解决第一个版本存在的车辆手感问题,我们开始尝试各种方案,以寻找模拟车辆底盘的最佳方式,并在 20 年10月左右制作出了一个新版本的模拟软件:Realive。

在这个版本中,我们暂时搁置了裁判系统的逻辑实现,专注于还原车辆的运动功能和操作方式。一键调头、小陀螺等车辆特性在这个版本中第一次被加入。在网络联机方面,这个版本也终于能够稳定支持六位操作手同时操控步兵机器人跑场。尽管它缺少了战术推演所需的比赛逻辑,它还是华南虎模拟器研发过程中的重要进展之一。
# 逐步完善。
不过,要让模拟器具有基本的可用性,更丰富的车辆种类和完整的比赛逻辑必不可少。在上版运动模型的基础上,我们增加了英雄、工程和无人机三个兵种的机器人,并更新了 UI 界面。在 2021 年春节之后,制作出了第三版模拟器Simulator 的雏形:

这时的模拟器已初步具备跑场功能,但在联机时还是会经常出现各种意外状况,测试队员和开发人员都被折腾得不轻。
在忙于修复逻辑Bug的同时,场地模型的精度问题也一直未能解决。由于当时团队里没有负责美工的同学,车辆和场地的建模都使用了从CAD软件导出的方式,这直接导致机器人面数过高,场地精度又不足。直到四月份,我们使用论坛上官方发布的场地模型进行减面、填色处理后,模拟器观感才得到了一些提升:


随着机器人自瞄、哨兵自动击打、前哨站基地联动等功能的添加,模拟器开始初具可玩性。
2021年5月,第三版模拟器的测试结果终于开始稳定,开局即胜利、开局变哨兵、无法连接服务器等严重影响使用的Bug被一个个修复,队里终于可以尝试使用模拟器进行战术推演。
当然过程中果然出现了更多奇怪的Bug→_→:

# 稳定版本。
2021年5月31日,之前收到模拟器安装包的兄弟队伍野狼战队,与我们分享了一段内测使用视频。在视频中,对战双方全阵容出战,在五分钟内没有出现机器人掉线等恶性情况,最终也以红方胜利的结果成功结算。

这是模拟器第一次稳定完赛的记录,从此,华南虎终于可以将模拟器作为稳定的训练工具,通过队内切磋、战术推演和友谊赛提升操作手的熟练度。2021年6月4日,华南虎与野狼战队成功进行了第一次跨校模拟器友谊赛。随着比赛的成功结束,Simulator也升级到了 1.0 版本。

在赛季开始前,我们再对 Simulator 进行了一些细节调整。但由于项目开发后期较为混乱,难以继续维护,没有能够再增加新的功能。
21赛季全国技术交流结束后,华南虎在论坛开源了 Simulator 最终版 061521 ,希望能够与更多感兴趣的大佬们切磋交流。

不过,由于开源和后续的模拟器重构计划,虽然此版本的客户端和服务端软件都开放使用,但未来华南虎无法再对该版本软件提供相关技术支持,请大家理解。
# 新的开始。
故事到这里还没有结束。虽然 Simulator 模拟器已经实现了大多数赛制规则和机器人功能,但作为操作手训练工具,它还有很多问题。不管是部署和使用流程的繁琐,还是网络带宽占用大、车辆属性不可调整等等,都是非常致命的缺点。同时,由于项目后期为了赶上业务需求,我们在项目规范性方面做得并不理想,直接导致项目可维护性低下。
为了解决上述问题,我们开始了新一代模拟器的设计工作。

在项目管理、代码规范、美工设计等方面,我们都开了不小的脑洞。一方面想规避上一代模拟器的缺陷,也想做出更多实用的新功能。在2021年的招新中,模拟器开发组第一次作为单独的组别参与了招新工作,新同学的加入带来了更多新奇想法的同时,也引出了项目管理方面的挑战。

好在,在数月的培训和开发工作之后,新版模拟器 SimulatorX 终于在 RM 2022 线上操作手联赛中,以公测形式与大家见面了!

除去正经的开发和debug,在 RMUL模式的基础上,我们还尝试推出了无限火力玩法,探索模拟器作为游戏的可能性。
联赛结束后,SimulatorX - RMUC内容的开发重新回到正轨,后续我们也会有 RMUC 内容公开使用的相关计划,敬请期待,届时欢迎各位捧场交流!

2022/4/15
模拟器技术顾问 黄扬
文案 / 黄扬 徐心卓
编辑 / 徐心卓
视频 / 蛋~
审核 / 徐心卓


