Godot 赛后结算弱网补偿:奖励可以晚到,状态不能说两套话
为什么要单独治理 一局 12 分钟的合作战斗结束后,服务端已经判定胜利并发放奖励,但客户端在结算动画期间切到弱网。玩家看到胜利镜头,点击继续却卡住;背包里奖励没出现,邮件里也没有,重新登录后奖励又突然到账。技术上看只是结算请求超时,玩家感受到的是“奖励到底有没有给”。
tag
为什么要单独治理 一局 12 分钟的合作战斗结束后,服务端已经判定胜利并发放奖励,但客户端在结算动画期间切到弱网。玩家看到胜利镜头,点击继续却卡住;背包里奖励没出现,邮件里也没有,重新登录后奖励又突然到账。技术上看只是结算请求超时,玩家感受到的是“奖励到底有没有给”。
从连接层心跳、业务层活跃判断、弱网重连、超时策略、心跳风暴和线上观测几个角度,系统说明游戏服务器如何设计可靠、不过度误伤玩家的心跳机制。
先把问题放到真实场景里 移动网络切换不是一次重连那么简单,玩家从 Wi-Fi 走到蜂窝时,客户端要稳住当前玩法状态。这句话听起来像经验,但在项目里它通常会变成一次次具体事故:某个设备表现不一致,某条异步链路旧回调回来,某个资源被错误保留,或者某次优化只解决了开发机上的现象。