Skip to content

系统架构 ​

text
Electron 桌面窗口
  └─ React / Three.js / WebGL 2
       └─ HTTP + WebSocket → 本机 Python / FastAPI
                               ├─ Rust / Rapier 仿真进程
                               ├─ Python 策略进程(或 Docker 容器)
                               └─ 用户数据目录

桌面版复用浏览器版的生产构建,不分叉渲染器、不压缩纹理或简化模型。抗锯齿、阴影、 像素比、色调映射和曝光由现有 frontend/src/ArenaScene.tsx 统一定义。

Rust 物理仿真采用 120 Hz 内部步进,对外每 0.05 秒更新一帧,策略每两帧决策一次。 随机种子、规则与引擎指纹随回放保存。跨架构的数值结果仍需通过 CI 与同轨迹对比验证, 不能仅凭相同种子假定所有构建逐字节一致。

两个赛季怎样贯穿系统 ​

rmuc_arena/seasons.py 读取同一份 config/rules.json,2027 是默认赛季;2026 保留原有规则与场地。赛季决定地图、位置与兵种、合法型号、默认阵容和策略的规则标识。

  • 界面选地图与阵容时过滤相应策略和合法型号。
  • 任务生成器按赛季输出规则、SDK 数据和每个位置的硬件说明。
  • 服务端和引擎再次检查阵容,2027 还限制每队最多一套空中机器人系统。
  • 回放保存比赛时的场景和元数据,不随界面当前赛季转换。

2027 不能只当作 2026 的地图替换:重型、自动哨兵、机库、控制点、装炮与终局判据都有相应规则。面向使用者的差异见赛季对照。

桌面进程生命周期 ​

Electron 启动打包后的 Python,后者原子绑定一个可用的本机端口,再初始化服务。 父进程核验实例标识和健康状态后加载界面,避免误连接到已存在的其他服务。 应用退出时通过标准输入通知后端正常结束;父进程连接断开也触发后端退出。

默认使用可信本地模式。Docker 模式保持原有网络、文件系统、进程和资源隔离规则。 两者不会静默互相降级。

平台适配 ​

  • 引擎响应通过读取线程与队列传递,兼容 Windows 子进程管道。
  • 注册表使用 POSIX flock 或 Windows 字节范围锁,防止多进程更新丢失。
  • 本地策略退出使用对应系统的进程树清理方式。
  • Windows 使用 .exe 与 .venv/Scripts 路径。
  • 资源位于安装包中,训练、提交及回放写入每个用户独立的数据目录。

目录 ​

目录用途
desktopElectron 窗口、菜单和后端生命周期
rmuc_arena服务、策略执行、训练、提交和回放
simulationRust 仿真与物理测试
frontendReact / Three.js 界面与资源
assetsBlender 与音频生成源
examples可运行的策略与展示文件
testsPython 回归与接口测试
scripts构建、验证和跨平台开发命令
siteGitHub Pages 文档站
docs完整规则手册、硬件设计和实现审计

仅限非商业学习使用 · 商业用途需事先书面授权