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

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

一個慢的隊友與王的機制 One laggy member in a synchronized mechanic

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

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

在所有人必須在指定瞬間一起反應的團隊副本機制中,一個慢的人反應太晚,就會讓整個隊伍失敗。

為什麼 「全員同時散開」、「由一人按下按鈕」這類共同機制 → 於是 慢的人較晚看到預兆,輸入也較晚抵達 → 畫面上 因為那一個人而團滅,其他隊友覺得「都是 lag 的人害的」

症狀
吃指令/回檔, 輸入延遲
因素
延遲
誰會遇到
特定地點/頻道, 只有特定角色看起來怪怪的
何時
人潮湧入時, 做特定動作時
負責單位
主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發)
遊戲開發團隊要做的事
伺服器:機制判定區間保留 ping 的餘裕,預兆以伺服器時間提前送出,設計成一個人失敗不會導致團滅。用戶端:把收到的預兆配合伺服器時間播放。
圖表上
只有部分偏高 · 造成機制失敗的各玩家 RTT
查看位置
在伺服器機制 log 記錄造成失敗的玩家、該玩家的輸入抵達時間、判定區間、該玩家的 RTT 與封包遺失
符合的跡象
導致團滅的輸入大多來自同一個人,該玩家的 RTT 明顯高於隊伍平均,且輸入在判定區間剛結束時才抵達
不符合的跡象
失敗平均分散在隊友身上時,是判定區間本身太短的問題(被 ping 吃掉的短判定區間)。慢的人的輸入在判定區間內抵達卻仍失敗時,是伺服器判定程式碼
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    依伺服器時間排程事件,讓所有人在同一瞬間播放的方法
  2. Factors influencing the latency of simple reaction time (Frontiers in Human Neuroscience, 2015) Frontiers
    簡單反應時間平均約 231ms

相關原因

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

同一症狀(吃指令/回檔)在其他層的原因

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