游戏卡顿白皮书 › 只有部分人遇到的问题
一个网络差的队友与 BOSS 机制 One laggy member in a synchronized mechanic
原因 ID pt-raid-member · 主责 研发团队·服务器开发 · 配合 研发团队·客户端开发
在含图示和实验的完整版中打开此卡片 →
在需要所有人在规定时刻一起反应的团本机制中,一个网络差的人反应晚了,就会让整个队伍失败。
起因 “所有人同时散开”“一个人按按钮”这类团队机制 → 结果 网络差的人预警看到得晚,输入也到得晚 → 画面表现 因为这一个人而团灭,其他队友觉得“都怪那个卡的人”
- 症状
- 吞操作/回档, 操作延迟
- 因素
- 延迟
- 谁会遇到
- 特定地点/分线, 只有某个角色看起来异常
- 何时出现
- 人多的时候, 做特定操作时
- 负责方
- 主责 研发团队·服务器开发 · 配合 研发团队·客户端开发
- 研发团队要做的事
- 服务器:机制判定窗口按 ping 留出余量,预警按服务器时间提前下发,设计上避免一个人失败就导致团灭。客户端:收到的预警按服务器时间播放。
- 监控图上
- 仅部分偏高 · 导致机制失败的各玩家 RTT
- 查看位置
- 在服务器机制日志中记录导致失败的玩家、他的输入到达时刻、判定窗口、他的 RTT 和丢包
- 确认依据
- 导致团灭的输入大多来自同一个人,此人的 RTT 明显高于队伍平均值,输入在判定窗口结束后不久才到达
- 排除依据
- 失败在队友之间分布均匀,是判定窗口本身太短的问题,看“被 ping 吃掉的短判定窗口”。网络差的人的输入在判定窗口内到达却仍然失败,看服务器判定代码
- 确认手段
- 需要游戏服务器/客户端的日志和指标
出处
- NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
按服务器时间预约事件,让所有人在同一时刻播放的方法 - Factors influencing the latency of simple reaction time (Frontiers in Human Neuroscience, 2015) Frontiers
简单反应时间平均约 231 ms
相关原因
同一层:只有部分人遇到的问题
其他层中同样导致“吞操作/回档”的原因
查看含图示和实验的原卡片