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

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

視野登錄順序錯亂 Interest-management race on enter/leave

原因 ID pt-aoi-race · 主要負責 遊戲開發團隊(伺服器開發)

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

角色登錄到視野格狀(grid)的瞬間,與 NPC 換到其他格子的瞬間重疊時,該 NPC 的出現通知可能會漏掉。

為什麼 進場、換頻道、傳送的處理與 NPC 移動在同一瞬間重疊 → 於是 在「新進入視野的物件」計算中漏掉了那個 NPC → 畫面上 只有特定幾隻 NPC 看不見,或早已離開的 NPC 還留著

症狀
看不見/幽靈物件
因素
遺失
誰會遇到
同一台電腦只有其中一個用戶端, 只有我
何時
移動中/切換地圖時, 偶爾隨機發生
負責單位
主要負責 遊戲開發團隊(伺服器開發)
遊戲開發團隊要做的事
視野更新以單一執行緒、單一順序處理,並定期重新對齊整份「可見清單」。
圖表上
偶爾隨機飆高 · 伺服器可見清單與用戶端物件清單的差異數
查看位置
在伺服器上連同 tick 編號記錄視野格狀登錄、物件換格子、出現與消失通知的發送,並定期比較伺服器的「可見清單」與用戶端持有的清單
符合的跡象
漏掉的 NPC 在該角色進場或傳送處理的同一個 tick 換了格子,且沒有對該 NPC 發送出現通知的紀錄
不符合的跡象
出現通知有送、但用戶端沒收到或丟掉時,是傳遞環節的問題(剛進場時湧入的出現資訊遺失、載入中抵達的出現通知被丟棄)。總是同一隻 NPC 不見時,是相位或顯示選項不同
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. Replication Graph in Unreal Engine Epic Games
    MMORPG 等把世界切成格狀,每個格子有一份 actor 清單,並以用戶端所在的格子為準傳送
  2. Actor Relevancy in Unreal Engine Epic Games
    相關性依每條連線判斷,不再相關的 actor 會從用戶端刪除

相關原因

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

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

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