忍不住啊。既然已经超过晚上十点了,就再推进一下项目吧。
本篇需要解决的是实现规则的架构问题。除了实现比赛规则,还要高效运行,尽可能的不使用managed Component,使用burstCompile,还需要尽可能照顾ml-agents。
需要根据以上需求设计system与component。
比赛规则可通过官方获取。
记阅读规则的批注:
规则总结
为聚焦半自动控制,开发仅包含地面机器人。即是取消空中机器人、飞镖系统以及雷达。
比赛规则的目录已很好的归类规则:扣血机制、回血与复活机制、增益机制、前哨站相关、哨兵前哨站与基地相关、经济体系、经验及性能体系、机器人相关机制、操作方式和获胜条件。
得益于DOTS的特性,这些可以通过一个system来完成。为提高可维护性,模块化可通过分job来完成。不同功能通过不同job来完成,在system内分配并调整依赖。
不同机制所需要的数据
扣血机制
- 子弹初速度
- 枪口热量
底盘功率- 攻击伤害或撞击
- 兵种类型
- 受击装甲板类型
- 受击装甲板法相方向
回血与复活机制
- 比赛时间
- 补给点占领情况
- 脱战状态
- 血量上限
底盘功率上限
特殊:远程兑换血量生效时间在6s后,期间死亡或罚下均会导致失效
复活机制
- 比赛时间
- 累计兑换和死亡数量
- 补给站占领情况
- 发射机构锁定情况
- 血量上限
- 兵种类型
底盘功率- 无敌增益情况
增益机制
能量机关
- 旋转方向
- 旋转速度
- 比赛时间
- 能量机关激活状态
- 能量机关受击情况
- 经验
- 防御增益
- 能量机关激活点占领情况
- 兵种类型
场地相关
- 场地增益点类型
- 兵种类型
- 增益类型
- 增益点占领情况
- 比赛时间
前哨站相关
- 旋转方向
- 旋转速度
- 旋转状态
- 比赛时间
- 基地状态
- 伤害来源
- 经验
哨兵前哨站和基地
- 血量
- 无敌增益情况
- 前哨站状态
- 比赛时间
- 哨兵巡逻区占领情况
- 哨兵是否存在
经济体系
- 比赛时间
- 兵种类型
- 矿石兑换情况
- 允许发弹量
- 脱战情况
特殊:远程兑换6s后生效