预测、回滚与常见问题排查
把全书"静默失败"的排查经验做一张表。
高频问题排查表
| 症状 | 首先检查 |
|---|---|
| 按技能没反应 | GA 是否 Grant 给 ASC?Activation Blocked Tags 是否命中(如眩晕)?Input 配置? |
| 本地有效、其他人看不到 | Net Execution Policy / Replication Mode |
| 服务器不扣蓝 | Cost GE 是否在 Server 端应用(Local Predictive 需要 Commit 走权威路径) |
| 血量没 clamp | AttributeSet 的 Pre/Post 回调是否实现 |
| GE 互相覆盖异常 | Stacking 策略 / 标签互斥(BlockedTags)配置 |
| 动画播了但没伤害 | GameplayEvent 事件标签是否拼写一致( ini 登记) |
| 断线重连技能消失 | ASC 是否挂在 PlayerState |
| 预测后飘字跳动 | 回滚时的公共回调没有处理(可看 OnIncohesiveEffect,或干脆关闭预测用 Server Initiated) |
三个诊断工具
ability.showdebug ability:查 ASC 的属性/GE/标签全景,多按几次切页签;log GameplaySystem VeryVerbose:看 GE 应用被拒绝的原因;- 网络延迟模拟:
Net PktLag=100(控制台命令)——验证技能在高延迟下的表现。
预测支持的"功能性"清单(决定开不开)
开了 Predictive 后会获得: - 本地立即响应("按了就扣蓝"的手感); - 服务器确认/回滚。
代价: - 需要正确处理回滚的 UI 反馈问题; - 部分操作(TargetData 相关)需要预测键配合。
新手项目的判断:PvE 或非竞技 → Server Initiated 够了;竞技 PvP → 投入预测的学习成本值得。
一个坚持的原则
GAS 的所有"规则层"改动,都应在 Server 权威下完成;客户端发起的所有操作,都经 Server 校验。只要坚持这条线,90% 的"不同步"问题不会出现。
本章小结
- 排查从三处入手:Grant 与权限、Net Execution Policy、标签配置。
- 三工具:showdebug、详细日志、延迟模拟。
- 非竞技游戏不上预测也完全可玩;坚持 Server 权威是防不同步的总闸。
