遊戲 Lag 白皮書 › 只有部分人遇到的問題
消失通知遺失(幽靈物件) Missed despawn (ghost entity)
原因 ID pt-ghost · 主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發)
在含圖解與實驗的完整版中開啟卡片 →
反過來,漏掉「已消失」的通知時,早已死亡或離開的 NPC、玩家會只留在自己的畫面上。
為什麼 死亡、離場、離開視野的通知遺失或順序錯亂 → 於是 用戶端認為那個物件還在 → 畫面上 打了也沒反應的怪物、早已離開的玩家還站在原地
- 症狀
- 看不見/幽靈物件
- 因素
- 遺失
- 誰會遇到
- 同一台電腦只有其中一個用戶端, 只有我
- 何時
- 偶爾隨機發生, 人潮湧入時
- 負責單位
- 主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發)
- 遊戲開發團隊要做的事
- 伺服器:定期送出「目前可見清單」。用戶端:刪除清單上沒有的物件,應該在移動的物件若長時間沒有更新就隱藏。
- 圖表上
- 偶爾隨機飆高 · 只留在用戶端的物件數
- 查看位置
- 比較伺服器送來的「目前可見清單」與用戶端持有的物件清單,計算只存在於用戶端的物件,並以物件 ID 對照消失通知的發送與接收 log
- 符合的跡象
- 幽靈物件的消失通知伺服器有送,用戶端卻沒有接收紀錄,或消失通知比出現通知先到、順序顛倒
- 不符合的跡象
- 伺服器的可見清單裡也還留著那個物件時,是伺服器端漏了物件清理。剛有新物件以同一個 ID 出現時,是物件 ID 重複使用造成誤認
- 確認方式
- 需要遊戲伺服器/用戶端的 log 與指標
出處
- Actor Relevancy in Unreal Engine Epic Games
不再相關的動態 actor 會從用戶端刪除 - Object visibility (Netcode for GameObjects 2.5) Unity
隱藏物件後,該用戶端會將物件 despawn 並刪除
相關原因
同一層:只有部分人遇到的問題
同一症狀(看不見/幽靈物件)在其他層的原因
查看含圖解與實驗的完整版卡片