预测、回滚与常见问题排查

把全书"静默失败"的排查经验做一张表。

高频问题排查表

症状 首先检查
按技能没反应 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)

三个诊断工具

  1. ability.showdebug ability:查 ASC 的属性/GE/标签全景,多按几次切页签;
  2. log GameplaySystem VeryVerbose:看 GE 应用被拒绝的原因;
  3. 网络延迟模拟:Net PktLag=100(控制台命令)——验证技能在高延迟下的表现。

预测支持的"功能性"清单(决定开不开)

开了 Predictive 后会获得: - 本地立即响应("按了就扣蓝"的手感); - 服务器确认/回滚。

代价: - 需要正确处理回滚的 UI 反馈问题; - 部分操作(TargetData 相关)需要预测键配合。

新手项目的判断:PvE 或非竞技 → Server Initiated 够了;竞技 PvP → 投入预测的学习成本值得。

一个坚持的原则

GAS 的所有"规则层"改动,都应在 Server 权威下完成;客户端发起的所有操作,都经 Server 校验。只要坚持这条线,90% 的"不同步"问题不会出现。

本章小结

  • 排查从三处入手:Grant 与权限、Net Execution Policy、标签配置。
  • 三工具:showdebug、详细日志、延迟模拟。
  • 非竞技游戏不上预测也完全可玩;坚持 Server 权威是防不同步的总闸。