理解 F · 体感优化不是公平模型
这一章抬升一层:第六部讲了很多「像传统 netcode」的词,预测、确认、Lag 补偿、反作弊。但它们在 VRChat 里只承担体感优化,不承担公平模型。
预测让玩家觉得输入立刻生效,确认让本地预演有收尾,Lag 补偿近似让命中不至于太别扭,反作弊近似挡掉离谱请求。它们共同解决的是可玩性,不是可信性。
可信性需要一个不属于玩家客户端的权威裁决点。VRChat 世界没有自定义游戏服务器,只有 Owner、同步字段、Network Event 和各客户端本地逻辑。第六部所有方案都在这个边界内工作。
第六部的实际成果
Section titled “第六部的实际成果”第 29 章给了本地预演:UI、音效、粒子可以先播,分数、HP、阶段不能先改。第 30 章给了确认回包:requestId 让请求可追踪,lastProcessedRequestId 让 Owner 端知道处理到哪一条,事件回执让本地 pending 能快速收尾。第 31 章把 Lag 补偿降成合理性检查:命中报告可以作为请求材料,不能作为事实。第 32 章把修正分层:UI 快修、共识状态硬修、位置平滑、特效自然结束。第 33 章把反作弊降成近似:挡离谱请求、记日志、软降级、主持人干预。
这五章合起来,给轻实时玩法加了一层「体感外壳」。底下的真相仍然是第四、五部搭出来的状态系统:PlayerObject 发请求,GameState 裁决,同步字段恢复当前状态。
公平模型缺的三块
Section titled “公平模型缺的三块”严格公平至少缺三块。
第一,缺权威服务器。GameState Owner 可以是裁决点,但它运行在玩家客户端上。它能让逻辑集中,不能让逻辑可信。
第二,缺统一历史缓冲。传统 Lag 补偿需要服务器保存每个目标过去一段时间的位置和碰撞盒。VRChat 没有自动的全局历史状态;自己写历史也只能写在某个 Owner 客户端上,仍然不是可信来源。
第三,缺确定性模拟。传统预测依赖「同一状态 + 同一输入 = 同一结果」。VRChat 世界里的物理、Object Sync、玩家网络状态、Udon 执行时机都不适合拿来做严格重放。
这三块缺一块都很麻烦,三块都缺时,公平竞技承诺就应该降级。
可以承诺什么
Section titled “可以承诺什么”可以承诺的是轻量、合作、可恢复、可调试。
合作防守世界可以让本地射击先有火花,Owner 稍后确认伤害;可以把敌人 HP 和分数写成同步字段,迟入玩家立刻看到当前局势;可以对离谱命中做范围检查;可以在网络拥塞时砍掉远端装饰特效,保住核心状态。
派对小游戏可以把操作反馈做快,把胜负结算放慢一点。回合制世界可以几乎不做预测,因为每一步都能等确认。解谜世界可以用区域触发和状态字段避开高精度命中。
高强度竞技 FPS、公平 hit rewind、客户端不可作弊、所有玩家看到同一条弹道,都不适合作为本卷承诺。原因在平台前提:VRChat 世界没有自定义权威服务器、统一历史缓冲和确定性模拟。
回到通道决策表
Section titled “回到通道决策表”第六部没有发明新通道。它只是把第 21 章决策表多加了一层用途:事件和本地变量优先服务体感,同步字段服务共识。
| 内容 | 第六部建议 | 理由 |
|---|---|---|
| 发起者按钮反馈 | 本地变量 | 不需要迟入恢复,越快越好 |
| 远端短特效 | Network Event | 一次性表现,不保存历史 |
| 技能请求 | PlayerObject 请求字段或参数化事件 + requestId | 需要可追踪和可拒绝 |
| HP / 分数 / 阶段 | 同步字段 | 迟入和结算都依赖它 |
| 命中报告 | 请求材料 | 需要 Owner 检查,不是事实 |
| 异常日志 | 本地 Debug 或低频同步字段 | 供定位,不打断核心状态 |
这张表也解释了为什么第六部总在重复一句话:事件做反馈,状态做共识。体感优化把这句话推到极限,但没有推翻它。
下一步接高风险系统
Section titled “下一步接高风险系统”第七部会把问题从「一次输入的体感」推到「高风险对象」:NPC、行为树替代写法、对象池、VRC Object Sync、同步组件生态、Quest 性能预算。
第六部的结论会继续用:先证明能降级。NPC 同步不了时能否退化成本地装饰?物理对象不同步时能否退化成视觉反馈?对象池不够时能否拒绝生成?这些问题和第六部的修正 / 降级是一条线。
挑一条试。
- 把一个 PvP 射击构想改成区域控制玩法。哪些判定从「命中某人」变成「站在某区域」?需要的 Lag 补偿是不是少了?
- 回看第 26 章的合作防守字段表,把每个字段标成「体感层」或「共识层」。有没有字段放错了层?
- 能用一句话说明体感优化和公平模型的区别
- 能说出 VRChat 缺权威服务器、统一历史缓冲、确定性模拟这三块前提
- 能列出第 29–33 章各自解决的体感问题
- 能把「事件做反馈、状态做共识」套回第 21 章决策表
- 能说明第七部为什么要先问「能不能降级」
- 第 29 章 · 即时反馈与本地预演 — 体感层起点。
- 第 30 章 · Owner 伪权威与确认回包 — 伪权威和确认回包。
- 第 31 章 · Lag 补偿的可行边界 — 命中近似。
- 第 32 章 · 修正、插值与优雅降级 — 分层修正。
- 第 33 章 · 反作弊近似 — 合理性检查和软降级。
- 第 21 章 · 参数化 Network Event 与决策表 — 通道选择母表。