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

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

主机(房主)结构 Listen server / host advantage

原因 ID sy-host · 主责 研发团队·服务器开发 · 配合 研发团队·客户端开发, 运维团队·系统运维

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

由某个玩家的电脑充当服务器时,这个人的线路和电脑性能决定了所有人的体验。

起因 房主的电脑充当服务器(P2P、Listen Server) → 结果 房主线路或电脑慢,就会波及所有人;房主自己的 ping 为 0 → 画面表现 只有房主占优,房主一退出所有人都卡住或掉线

症状
一卡一卡, 卡住, 掉线
因素
延迟, 停顿
谁会遇到
特定地点/分线
何时出现
偶尔随机
负责方
主责 研发团队·服务器开发 · 配合 研发团队·客户端开发, 运维团队·系统运维
研发团队要做的事
服务器:改为由专用服务器负责判定;在此之前,匹配时挑线路、电脑好的人当房主。客户端:支持主机迁移,匹配时测量与其他参与者之间的 ping、上行速度、电脑性能并上报。
运维团队要做的事
为专用服务器准备服务器设备和实例,部署在玩家多的地区附近。
监控图上
仅部分偏高 · 按房主统计的卡顿反馈、掉线次数
查看位置
在对局日志中记录房主(主机)的上行速度、各参与者到房主的 RTT、房主电脑的帧耗时、房主退出的时刻,把卡顿和掉线反馈按房主归类来看。玩家也可以用同一批人只换房主再打一局来确认
确认依据
卡顿、掉线集中在特定房主的房间,该房主上行速度低或帧耗时长时,所有参与者一起变差;没有主机迁移时,房主退出的那一刻所有人都掉线
排除依据
与房主无关、只有同一地区的参与者差,是线路或路径的问题。采用专用服务器结构时,不是这个原因
确认手段
需要游戏服务器/客户端的日志和指标

出处

  1. Networking Overview for Unreal Engine Epic Games
    Listen Server 的主机比其他客户端占优,同时承担服务器和渲染,负载大
  2. Distributed authority topologies (Netcode for GameObjects 2.5) Unity
    会话拥有者退出后,从剩下的客户端中自动选出新的拥有者
  3. A Survey and Taxonomy of Latency Compensation Techniques for Network Computer Games (ACM Computing Surveys, 2022) ACM
    P2P 游戏也可以看作主机兼任服务器的客户端-服务器结构

相关原因

同一层:同步设计

其他层中同样导致“一卡一卡”的原因

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