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

遊戲 Lag 白皮書 › L9 伺服器遊戲程式

進入密集區域時的生成暴增 Spawn burst when entering a crowd

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

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

用傳送移動到擠滿人的城鎮時,伺服器必須一次送出數百位新進入視野者的外觀、裝備與狀態。

為什麼 因傳送移動、登入或切換頻道,突然出現在人多的地方 → 於是 伺服器一次產生並送出數百人份的完整資訊,自己的電腦也要一次載入 → 畫面上 剛抵達時畫面短暫停住,角色一個一個慢慢出現,輸入也有延遲

症狀
定格, 輸入延遲, 快轉
因素
停滯, 延遲
誰會遇到
只有我, 特定地點/頻道
何時
移動中/切換地圖時, 剛登入/維護剛結束
負責單位
主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發)
遊戲開發團隊要做的事
伺服器:依距離由近到遠分成多個 tick 送出、快取外觀資訊。用戶端:在讀取畫面期間預先接收,把收到的角色分散到多個畫格生成。
數值參考
一個人的外觀、裝備、buff 資訊若為 300 位元組,500 人就約 150KB。相當於平常一個 tick 傳送量(數 KB)的數十倍在一瞬間湧入。
圖表上
剛開服或維護結束後暴增 · 每條連線的傳送位元組數、用戶端畫格時間
查看位置
抵達人多的地方後幾秒內,透過該連線送出的位元組數與封包數(伺服器 log),以及用戶端畫格時間(net graph、用戶端 log)
符合的跡象
剛抵達時該連線的傳送量衝到平常一個 tick 的數十倍後回落,同一時間用戶端畫格時間也飆高
不符合的跡象
移動到人少的地方也一樣停住時,是切換 zone(跨伺服器轉移)或用戶端載入
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. Detailed Actor Replication Flow in Unreal Engine Epic Games
    第一次開啟 actor channel 時會一併送出初始位置、旋轉等資訊,連線飽和時其餘 actor 延到下一個 tick
  2. Actor Priority in Unreal Engine Epic Games
    依距離與視線方向設定優先順序,從近處且看得到的 actor 先送

相關原因

同一層:L9 伺服器遊戲程式

同一症狀(定格)在其他層的原因

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