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

遊戲 Lag 白皮書 › 只有部分人遇到的問題

載入中抵達的出現通知被丟棄 Spawn messages dropped before the client is ready

原因 ID pt-loading-drop · 主要負責 遊戲開發團隊(用戶端開發) · 協同 遊戲開發團隊(伺服器開發)

在含圖解與實驗的完整版中開啟卡片 →

一進入 zone,伺服器就送出周圍 NPC 的出現通知,但用戶端還在載入地圖,於是把通知丟掉。

為什麼 伺服器在進場處理後立即送出周圍物件的出現通知 → 於是 用戶端正在載入,訊息處理常式(handler)還沒準備好,於是丟棄通知 → 畫面上 伺服器當作已經送過,不會再送。在 NPC 離開視野再回來之前都看不見

症狀
看不見/幽靈物件
因素
遺失
誰會遇到
同一台電腦只有其中一個用戶端, 只有我
何時
剛登入/維護剛結束, 移動中/切換地圖時
負責單位
主要負責 遊戲開發團隊(用戶端開發) · 協同 遊戲開發團隊(伺服器開發)
遊戲開發團隊要做的事
用戶端:載入結束後送出「準備完成」,或把載入中收到的封包先保存起來再處理。伺服器:收到「準備完成」後才傳送周圍資訊。
數值參考
同一台電腦上兩個用戶端同時載入,或正在載入的那一邊是背景視窗時,CPU 與磁碟要分著用,處理也受到限制,那一邊的載入可能拉長好幾倍。伺服器的進場處理變快時,也會讓同一個 bug 浮現。
圖表上
只有部分偏高 · 各用戶端的載入時間、載入中丟棄的訊息數
查看位置
把用戶端在載入中收到並丟棄的訊息數量與種類、載入完成時間,與伺服器送出出現通知的時間比較。在同一台電腦上讓兩個用戶端同時載入,或把正在載入的那一邊放到背景視窗,就容易重現
符合的跡象
看不見的 NPC 的出現通知伺服器有送,抵達時間在載入完成之前,且那段時間丟棄的訊息數增加。只發生在載入較久的那個用戶端
不符合的跡象
出現通知在載入完成後才抵達卻仍看不見時,是基準快照遺失或物件 ID 重複使用造成誤認。伺服器根本沒送該 NPC 的通知時,是視野登錄順序錯亂或頻道、實例、相位不同
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. NetworkConfig class (Netcode for GameObjects 2.5) Unity
    SpawnTimeout:尚未生成之物件的訊息會先保留,在時限內沒有生成就丟棄
  2. Actor Relevancy in Unreal Engine Epic Games
    不再相關的 actor 會從用戶端刪除,再次相關時重新複製

相關原因

同一層:只有部分人遇到的問題

同一症狀(看不見/幽靈物件)在其他層的原因

查看含圖解與實驗的完整版卡片