帧同步丢一包不该停住:三帧冗余、空洞检测与补帧
服务端每个 30Hz Tick 定格各座席最新输入并重复携带最近三帧;客户端拒绝旧帧、缓存未来帧,只在出现真正空洞时请求缺失区间。
玩家 · 游戏开发者 —— 写代码的玩家,玩游戏的开发者
服务端每个 30Hz Tick 定格各座席最新输入并重复携带最近三帧;客户端拒绝旧帧、缓存未来帧,只在出现真正空洞时请求缺失区间。
帧同步的最小网络事实不是位置和血量,而是每个座席在某个逻辑帧提交的 4 字节输入;世界只能从这组输入经唯一 Step 入口推进,状态哈希只负责验证结果。
Excel 到 SQLite 的内容管线应让结构、出库业务和运行时语义各自由最接近事实的一层校验,并用固定坏样本约束重复规则的漂移。
战斗模拟只拥有 phase、计时器与当前血量,奖励和通关必须以事件交给成长服务,否则重开、复活与无尽循环会把瞬时状态写进永久存档。
Unity 大厅应由状态机拥有流程、UIManager 拥有可见页面、GameEntry 路由网络事实;SetRoot 能清理页面历史,但恢复战斗与迟到事件仍需要额外身份约束。
资源转码不应阻塞上传链路;原图与 pending 状态必须先持久化,队列满时允许丢失瞬时唤醒,并由启动回扫恢复。
战斗节点与大厅之间的结算链路,应把结果生成、持久投递和单次副作用拆成三个所有权边界,用 outbox 与 durable receipt 消化任意失败窗口。
LiveOps 配置同步应以外部身份、内容指纹和目标对象映射驱动幂等状态机,并把发布、冲突与失败恢复留在明确的所有权边界内。
确定性回放保存的是足以重建世界的输入与规则身份,因此文件信封、逻辑版本、帧格式、资源上限和迁移策略必须被当作跨版本协议共同维护。
战斗遥测应由进程内聚合器拥有未落盘增量,以批量事务换取热路径稳定,但这套设计只适用于允许有限丢失的计数,不能承载结算与经济账本。