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

游戏卡顿白皮书 › L9 服务器游戏进程

进入密集区域时实体生成激增 Spawn burst when entering a crowd

原因 ID sp-spawn-burst · 主责 研发团队·服务器开发 · 配合 研发团队·客户端开发

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

传送到挤满人的城镇时,服务器要把新进入视野的几百人的外观、装备、状态一次性发过来。

起因 通过传送、登录、换线,突然出现在人多的地方 → 结果 一次性生成并发送几百人的全部信息,自己的电脑也要一次性加载 → 画面表现 刚到达时短暂停顿,角色一个个慢慢出现,操作延迟

症状
卡住, 操作延迟, 快进
因素
停顿, 延迟
谁会遇到
只有我, 特定地点/分线
何时出现
移动中/切换地图时, 刚登录/维护结束后
负责方
主责 研发团队·服务器开发 · 配合 研发团队·客户端开发
研发团队要做的事
服务器:按由近到远的顺序分到多个 tick 发送;缓存外观信息。客户端:在加载画面期间预先接收;把收到的角色分到多帧创建。
数值参考
一个人的外观、装备、buff 信息为 300 字节的话,500 人约 150 KB,相当于平时一个 tick 发送量(几 KB)的几十倍在一瞬间涌出。
监控图上
开服/维护后激增 · 每个连接的发送字节数、客户端帧耗时
查看位置
到达人多的地点后几秒内,通过该连接发送的字节数和包数(服务器日志)与客户端帧耗时(网络状态面板、客户端日志)
确认依据
到达后该连接的发送量飙到平时一个 tick 的几十倍再回落,同一瞬间客户端帧耗时也冲高
排除依据
移动到人少的地方也同样停顿,看“场景切换(服务器间迁移)”或客户端加载
确认手段
需要游戏服务器/客户端的日志和指标

出处

  1. Detailed Actor Replication Flow in Unreal Engine Epic Games
    首次打开 Actor 通道时一并发送初始位置、旋转等信息;连接饱和时,剩余的 Actor 推到下一个 tick
  2. Actor Priority in Unreal Engine Epic Games
    按距离和视线方向排列优先级,先发送近处、看得见的 Actor

相关原因

同一层:L9 服务器游戏进程

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

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