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

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

時鐘推估誤差導致物件暫緩顯示 Clock estimate error holds or discards entities

原因 ID pt-clock-hold · 主要負責 遊戲開發團隊(用戶端開發)

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

用戶端推估的伺服器時間有誤時,會把剛抵達的物件資訊當成「還在未來」而暫緩,或當成「太舊」而丟棄。

為什麼 某一個用戶端的伺服器時間推估大幅偏差(在載入中測量、從省電喚醒) → 於是 內插的基準時間與物件資訊的時間對不上 → 畫面上 物件很晚才出現,或看起來停住不動

症狀
看不見/幽靈物件, 卡頓
因素
延遲
誰會遇到
同一台電腦只有其中一個用戶端
何時
閒置一段時間後, 剛登入/維護剛結束
負責單位
主要負責 遊戲開發團隊(用戶端開發)
遊戲開發團隊要做的事
定期重新做時間同步,差距大時立即重設,不採用在載入中或剛從省電喚醒時測到的值。
圖表上
只有部分偏高 · 各用戶端的伺服器時間推估誤差
查看位置
在用戶端記錄推估的伺服器時間、RTT、重新做時間同步的時間、暫緩或丟棄物件資訊的次數。在剛載入完或剛從省電喚醒時嘗試重現
符合的跡象
只有出問題的用戶端推估誤差超過重設門檻(Unity 為 hardResetThresholdSec,預設 0.2 秒),且有把物件資訊當成未來而暫緩、當成過去而丟棄的紀錄,重新做時間同步後立即恢復正常
不符合的跡象
推估誤差很小卻很晚出現時,是各連線的傳送預算與優先順序或載入方面的原因
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
    時間差超過 hardResetThresholdSec(預設 0.2 秒)時強制對齊,平時用 adjustmentRatio 一點一點調快或調慢
  2. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    LocalTime 領先伺服器,ServerTime 落後。晚到的訊息,等待時間可能為負值

相關原因

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

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

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