iNeed创作者文档

联机设计与自测

本页目录

设计可验证的完整回滚

把逻辑变成可保存的确定性计算

用固定步长、同一初态和输入驱动游戏逻辑。随机数状态随快照保存,实体使用稳定 ID,遍历顺序固定。把碰撞、计时和技能阶段纳入逻辑状态;渲染 Tween、墙钟时间、异步 await 与共享随机数不能暗中改变伤害结果。

快照覆盖双方角色、血量、速度、朝向、输入边沿、技能前后摇、弹体、召唤物、领域、建筑破坏、计时器、随机数和实体 ID 分配器。完整保存取决于实际玩法,不能只恢复人物坐标。

保存、预测、纠正

  1. 在确定的逻辑帧边界保存状态与输入历史。
  2. 远端输入缺失时按游戏定义短期预测,并标记预测帧。
  3. 真输入到达后比较;不同时恢复到分歧前快照,用已知输入重新推进到当前帧。
  4. 更新渲染投影,不在重演中创建昂贵视觉资源或执行外部业务。
  5. 在双方已确认的同一帧计算规范化逻辑摘要;分歧输出首个不同帧和字段。

不把浮点无误差当作前提,也不从有损 Euler 角重建确定性逻辑。不能稳定保存引擎物理内部状态时,将判定放在自己的可恢复逻辑中,或选择权威快照方案。

预算和副作用

预测窗口与 ACK/重发历史分别设置,不能用短预测窗口截掉仍在等待确认的有效输入。重演长度、单帧耗时和历史内存有界,超出后明确暂停/恢复。

音效、震动、演出、扣次和成绩提交用确认帧/事件 ID 去重。允许预测播放的效果也要有纠正和防重策略;不要在每次重演重新播放、再次扣费或上传。

终局也要确认

双方对同一终止帧、完整输入和结果摘要达成一致后才提交对局结算。进入终局等待后继续重发必要确认,丢一个终止包不能让另一端永远等待。旧局 ACK 不确认新局;持续停流有明确出口。

通过标准

同一输入日志重复运行、保存后恢复重演、双端抖动/丢包三种测试,在共同确认帧得到相同逻辑摘要。最后一击、镜像、召唤、变身、二阶段和同房重开单独覆盖;实际 Web 导出仍可操作和结算。单端示意动画或最终分数相同不足以通过。

GGPO说明输入预测与推测执行的基本思路;本项目的状态闭包和预算按上述检查落实。