RoboSouls 利用内置裁判系统模块提供了 RM2026 规则体系的自定义客户端协议发布支持。提供了自定义客户端开发的全环境闭环,高效辅助了华南虎自定义客户端开发与场上呈现。
当前对应版本:V1.3.1
承载RoboSouls赛场数据的自定义客户端协议数据流
全程只需两步!告别mock时代!
打开 RoboSouls 2026uc 游戏!
打开mqttx(或任意mqtt客户端),连接 :3333
客户端使用标准 MQTT 3.1.1 协议直接连接即可,无需 TLS。连接时须指定 ClientId 字段为当前操作用户的选手端 ID。
完成!Happy protoing!
图传视频流发布
依旧两步完成!
在刚刚打开的RoboSouls,按P,点击 「开启串流」
在目标网络地址使用 vtstream-ffplay (或任意标准图传流接受端)监听,播放画面
完成!Happy streaming!
辅助工具
rmproto-recorder:将自定义客户端数据录制为 mcap 文件,任意复盘
待开源
效果图
rmproto-replay-server:在foxglove-studio中,一站式完成协议分析、时间轴跳转、mqtt数据回放订阅
https://github.com/OpenRoboSouls/rmproto-replay-server.git
vtstream-ffplay: 用于测试图传流的最简播放器桥接
https://github.com/OpenRoboSouls/vtstream-ffplay
备注
自定义客户端协议支持情况
RoboSouls 对齐官方协议 V1.3.1,自定义客户端 Topic 总数 33 个全部实现。以下按 Topic 列出与官方裁判系统的实际支持边界。
表头说明:「完整支持」= 该 Topic 所有字段与官方协议一致;「部分支持」= 个别字段因模拟环境限制存在差异;「不支持」= 未实现。
分类 | Topic | 支持状态 | 受影响的字段/类型 | 实际行为 | 说明 |
能量指标 | RobotStaticStatus | 部分支持 | max_chassis_energy | 不发布(默认值) | RoboSouls不支持 |
max_buffer_energy | 不发布(默认值) | 同上 | |||
RobotDynamicStatus | 部分支持 | current_chassis_energy | 不发布(默认值) | 同上 | |
current_buffer_energy | 不发布(默认值) | 同上 | |||
伤害统计 | RobotInjuryStat | 部分支持 | module_offline_damage | 始终 0 | RoboSouls不支持 |
offline_damage | 始终 0 | 同上 | |||
Buff | Buff | 部分支持 | 类型 1(攻击增益) | 已实现 | — |
类型 2(防御增益) | 已实现 | — | |||
类型 3(冷却增益) | 已实现 | — | |||
类型 4(能量增益) | 已实现 | — | |||
类型 5(回血增益) | 不支持 | 待更新 | |||
类型 6(弹药增益) | 不支持 | 同上 | |||
类型 7(地形增益) | 不支持 | 同上 | |||
比赛事件 | Event | 部分支持 | event_id = 1~13 | 已实现 | 死亡、击杀、能量机关、部署狙击、空中支援/反制、飞镖、基地、前哨站、装甲 |
event_id = 14(四级装配中断) | 不支持 | RoboSouls不支持 | |||
event_id = 15(装配成功) | 已实现 | — | |||
机关同步 † | TechCoreMotionStateSync | 完整支持 | — | — | — |
RuneStatusSync | 完整支持 | — | — | — | |
DartSelectTargetStatusSync | 完整支持 | — | — | — | |
其余 21 个 Topic | 全部 | 完整支持 | — | — | 与官方协议 V1.3.1 一致 |
连接鉴权
RoboSouls MQTT Broker 采用比赛绑定鉴权:仅允许当前对战房间内对应选手端的 ClientId 接入。在比赛未开始或 ClientId 与当前对局不匹配时,连接会被拒绝。无需额外用户名或密码。对齐官方客户端行为
连接流程:
在 RoboSouls 中创建对战房间,分配红/蓝双方席位。
选手端使用对应的 ClientId 连接 :3333。
连接后即可立即订阅和发布协议 Topic。
