第六部 · 体感:预测、补偿与可接受的不一致
这是第六部。这一部讲传统 netcode 理论能借多少。语气克制,明确这是 VRChat 约束下的近似,不是公平模型。
VRChat 没有权威服务器,传统 netcode 的客户端预测和 Lag 补偿无法照搬。但「让玩家觉得顺」是另一回事。这一部讨论:在 Owner 模型下能做到什么样的近似,哪些东西可以撒谎,哪些必须等确认。
这一部回答的核心问题
Section titled “这一部回答的核心问题”- 即时反馈与本地预演:本地先播 UI、音效、按钮反馈
- Owner 伪权威与确认回包:用
requestId和lastProcessedRequestId模拟服务器确认 - Lag 补偿的可行边界:hitscan、投射物、抓取、区域判定能补到什么程度
- 修正、插值与优雅降级:错了以后怎么修,哪些可以撒谎、哪些必须等确认
- 反作弊近似:合理性检查、冷却验证、速度上限、异常日志
- 第四部第 20 章:
requestId+stateVersion+lastProcessedRequestId是模拟确认回包的基础。 - 第五部第 25、26 章:回合制和轻实时各自的可观察单位不同。回合制能等确认,轻实时不能。
- 闭环 3:工程化一局已经能跑,但每位玩家按按钮到看到结果有 30–200 ms 延迟。这一部填这段延迟。
体感是欺骗的艺术,但有边界:局部撒谎可以服务体感,过线会破坏可信度。
主线(29–33 章)
Section titled “主线(29–33 章)”- 第 29 章 · 即时反馈与本地预演:把 Gambetta 客户端预测翻译到 VRChat 约束下,只保留本地预演和 pending 清理。
- 第 30 章 · Owner 伪权威与确认回包:用
requestId、lastProcessedRequestId和回执事件模拟确认。 - 第 31 章 · Lag 补偿的可行边界:拆 hitscan、投射物、抓取、区域判定各自能补到什么程度。
- 第 32 章 · 修正、插值与优雅降级:把 UI、共识状态、位置和特效分层修正。
- 第 33 章 · 反作弊近似:用合理性检查、异常日志和软降级提高公开房韧性。
- 🧠 理解 F · 体感优化不是公平模型:预测、补偿、确认和反作弊近似只改善可玩性,不提供可信公平模型。