跳到正文
一支 T-90M 纵队沿乡间公路驶入战斗

一个机器人控制器,覆盖所有战场

单人模式和权威多人模式下的机器人共用同一套无渲染器决策逻辑。它们在带种子的战场图上导航、遵守队伍与可见性规则、选择可行的射击、利用车辆能力,并且无需 GPU 也可测试。

3 分钟

感知与目标选择

机器人使用与权威侧相同的队伍、可见性、距离、血量与车辆状态契约,不会读取渲染对象或仅客户端持有的隐藏坐标。候选目标根据当前战术状态打分,而不是仅凭场景接近度选取。

难度调整会改变反应速度、瞄准质量、交战距离与决策压力,而不会让机器人获得不应掌握的信息。

带种子的路线规划

每一场比赛从地形通过性、世界碰撞、开口、目标点和车辆能力构建一份类型化的可穿越栅格。规划器围绕被封堵的格子提供确定性路径,局部转向负责临时的对齐与避让。

路线决策可在 Node 中跨所有地图复现,包括重型车辆、履带损伤、陡坡与目标模式。

驶入战斗的 T-90M 纵队,每个机器人都保持自己的路线与间距
驶入战斗的 T-90M 纵队,每个机器人都保持自己的路线与间距

炮控与射击决策

控制器会遵守炮塔回转、俯仰、炮口遮挡、装填、弹仓、散布、弹速、穿深与目标运动。它在当前武器和角度使射击可信时,瞄准可击穿的装甲和内部弱点。

机关炮、单发炮、自动装弹机与制导武器共用同一条决策边界,但各自应用自己的节奏与弹药状态。

队伍安全与压力

友军车辆会被排除在有效射击路径之外,控制器也会避免隔着友军开火。机器人分散注意力、移动到有用的线路、支援目标点,并保持足够间距以免让友方集群变成障碍。

敌方机器人和友方机器人使用同一套逻辑。队伍归属改变目标与目标点,但不改变能力。

Type 90 与 Type 89 穿过农庄作战,在炮火下保持间距
Type 90 与 Type 89 穿过农庄作战,在炮火下保持间距

生存与恢复

机器人会综合考虑暴露、掩体、履带损伤、模块失效、维修机会、弹药状态和附近威胁。它们可以脱离不利角度、恢复机动、损毁后重新规划路线并继续贡献,而不是停在开阔地等待。

模式目标叠加在这些生存决策之上,使占领、防守、护送与无尽人海压力都不需要再为运动另设一套假系统。

验证

聚焦的 AI 测试覆盖瞄准、误伤规避、路线、难度、确定性决策与权威机器人集成。地图级的服务端测试在无渲染器的条件下运行控制器;浏览器战斗则验证可见的移动、开火与特效是否与这些决策一致。

机器人改动需运行 node src/game/ai.selftest.mjs、node src/sim/ai.aim.selftest.mjs、node src/sim/botRoutePlanner.selftest.mjs 与 node server/authoritativeBots.selftest.mjs。

Classic、Jev 与目标协作

友军与敌军的 Classic 和 Jev 共用本地驾驶、瞄准、可见性及车辆系统逻辑。Jev 增加有界的队伍级指令,不绕过侦察,也不替代物理驾驶。下一场战斗前可选择大脑类型和难度,友军不会因为与玩家同队就使用旧版行为。

夺旗队伍分配回收、护送与突袭任务。极速球会保留主攻手,让它有时间绕到球后方对准推进,并安排掩护和防守。区域队伍分散占领压力,机动单位可以包抄,支援单位持续施压。导航包含玩家优先通行、持续绕行决策,以及车辆互挡时的安全倒车。

烟幕、遥控武器与安全跳跃

机器人在撤退、受压或装填时可使用已配备的烟幕,并用遥控自动武器攻击合适的可见敌人。只有模式允许且预期着陆代价可承受时才请求跳跃。悬崖与桥梁入口需要有效路线,直线指向目标并不等于可通行。

行为测试包含全部 33 张地图、夺旗与球赛场景、拥堵、坠落风险决策,以及大规模 Jev 队伍负载。保证范围仅限已测场景,可发现决策和工作量上限的回归,但不意味着机器人能解决所有可能的地形或交通情况。