Skip to content

同步、战斗与实时交互 ​

Category ​

server / sync 子树总览。覆盖:时间模型(01)、同步模型(02)、帧同步(03)、暂停追帧重连(04)、预测补偿(05)、确定性(06)、回放观战裁决(07)、技能系统(08)。

Definition ​

这一章讨论的是游戏里最容易把玩法问题逼成架构问题的那条主线:多端怎样共享同一局战斗,局内时间怎样推进,输入和状态怎样收敛,客户端何时可以先播,服务端何时必须裁决,断线、追帧、回放和技能系统又怎样建立在同一套时序规则上。

实时交互真正困难的地方,从来不是“服务器能不能算”,而是下面这些目标不可能同时最优:

  • 手感要快。
  • 公平性要站得住。
  • 结果要可追责。
  • 弱网要能容忍。
  • 回放和观战要能重建。
  • 工程复杂度又不能失控。

同步体系真正做的,不是选择一个时髦方案,而是在这些目标之间分配复杂度,并把代价变成可控的工程事实。

这一章的阅读顺序也有明确逻辑:

  • 先把时间推进讲清楚,因为同步问题往往先是时间模型问题。
  • 再讲同步模型,因为裁决权和一致性时机决定后续所有系统。
  • 然后展开帧同步、暂停恢复、预测补偿和确定性这些最容易互相牵连的部分。
  • 最后把回放、观战、技能系统放回同一条链路,说明它们为什么不是后补功能。

关系链:时间(01)→ 模型(02)→ 帧同步(03)→ 暂停与重连(04)→ 预测补偿(05)→ 确定性(06)→ 回放裁决(07)→ 技能(08)。上游:runtime 子树(Tick 与执行模型);下游:networking 树、system 树结算(对局结果的生效点)、树根 server 总览。

Reference ​

节点清单见下节。

本章文章 ​

  • Tick 与时间推进:先把逻辑时间、渲染时间和网络时间拆开,建立战斗时钟这层底座。
  • 同步模型:把服务端权威、帧同步、锁步和混合方案放在同一组取舍里看。
  • 帧同步详解:展开输入窗口、延迟帧、默认输入、哈希校验和快照恢复这些落地细节。
  • 暂停、继续、追帧与断线重连:说明真正的房间级暂停、重连恢复和追帧分档该怎样组织。
  • 预测、补偿与纠正:讨论客户端怎样抢时间,以及服务端怎样把预测重新收敛成权威结果。
  • 确定性与数值一致性:讨论为什么很多“同步问题”其实死在浮点、随机和更新顺序上。
  • 回放、观战与裁决:把输入日志、状态快照、仲裁证据和观战隔离统一进同步体系。
  • 技能系统设计:从运行时骨架、效果管线、Buff 和同步边界出发讨论战斗内容如何长期扩展。

游戏知识体系