한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

游戏卡顿白皮书 › 同步设计

客户端权威 Client-authoritative results

原因 ID sy-client-auth · 主责 研发团队·服务器开发 · 配合 研发团队·客户端开发

在含图示和实验的完整版中打开此卡片 →

各自决定自己的结果,自己的画面很流畅,但结果会与别人的画面对不上,也容易被外挂利用。

起因 位置、命中由客户端决定,服务器只负责转发 → 结果 两个人都说自己先打中了对方,服务器无法验证 → 画面表现 对手瞬移、穿墙,“我打中了却没算”

症状
瞬移, 吞操作/回档
因素
延迟
谁会遇到
全服
何时出现
一直
负责方
主责 研发团队·服务器开发 · 配合 研发团队·客户端开发
研发团队要做的事
服务器:重要结果(命中等)由服务器自己校验,移动做速度和距离检查。客户端:收到服务器拒绝或校正的结果后,回退到该值。
监控图上
一直偏高 · 不可能的移动速度、互相矛盾的命中报告数
查看位置
在服务器上原样记录客户端报告的位置和命中,用连续的位置报告计算移动速度,统计超过最大速度的报告,以及两人互称先打中对方的报告
确认依据
服务器不加校验就把报告转发给其他客户端,不可能的速度或互相矛盾的命中报告与版本更新、地区无关,持续出现
排除依据
服务器自己计算或校验结果时,就不是这个原因。这时的瞬移看丢包或插值缓冲
确认手段
需要游戏服务器/客户端的日志和指标

出处

  1. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    由客户端报告结果的方式,只有在能信任客户端时才可行。因为担心外挂,才设置权威服务器
  2. Peeking into VALORANT's Netcode Riot Games
    服务器权威模型:服务器从不信任客户端看到的游戏状态
  3. Distributed authority topologies (Netcode for GameObjects 2.5) Unity
    把权限分给客户端,作弊会变得容易,也不再有统管所有实体的单一模拟

相关原因

同一层:同步设计

其他层中同样导致“瞬移”的原因

查看含图示和实验的原卡片