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

游戏卡顿白皮书 › 只有部分人遇到的问题

离开通知丢失(幽灵实体) Missed despawn (ghost entity)

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

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

反过来,漏掉“已消失”的通知时,已经死亡或离开的 NPC、玩家只会留在自己的画面上。

起因 死亡、离开、离开视野的通知丢失或顺序错乱 → 结果 客户端认为这个实体还在 → 画面表现 怎么打都没反应的怪物,早已离开的玩家还站在那里

症状
隐身/幽灵实体
因素
丢包
谁会遇到
双开时只有一个客户端, 只有我
何时出现
偶尔随机, 人多的时候
负责方
主责 研发团队·服务器开发 · 配合 研发团队·客户端开发
研发团队要做的事
服务器:定期发送“当前可见列表”。客户端:删除列表里没有的实体,本该移动的实体长时间没有更新时将其隐藏。
监控图上
偶发随机尖峰 · 只存在于客户端的实体数
查看位置
对比服务器发送的“当前可见列表”与客户端持有的实体列表,统计只存在于客户端的实体,并按实体 ID 对照离开通知的发送、接收日志
确认依据
幽灵实体的离开通知服务器发过,客户端却没有接收记录;或离开通知比出现通知先到,顺序颠倒
排除依据
服务器的可见列表里也还留着这个实体,是服务器侧漏了清理实体。刚有新实体以同一 ID 出现,看“实体 ID 重用混淆”
确认手段
需要游戏服务器/客户端的日志和指标

出处

  1. Actor Relevancy in Unreal Engine Epic Games
    失去相关性的动态 Actor 会在客户端被删除
  2. Object visibility (Netcode for GameObjects 2.5) Unity
    隐藏实体后,该客户端会 despawn、删除这个实体

相关原因

同一层:只有部分人遇到的问题

其他层中同样导致“隐身/幽灵实体”的原因

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