遊戲 Lag 白皮書 › L1 用戶端遊戲程式
用戶端閃退 Client crash
原因 ID cg-crash · 主要負責 遊戲開發團隊(用戶端開發) · 協同 外部(外部)
在含圖解與實驗的完整版中開啟卡片 →
遊戲因未處理的錯誤而關閉。在玩家看來像斷線,但伺服器是正常的。
為什麼 null 參考、記憶體不足、顯示卡驅動程式錯誤 → 於是 遊戲處理程序被強制結束 → 畫面上 回報「閃退了」。同一時間其他人都正常
- 症狀
- 斷線
- 因素
- 停滯
- 誰會遇到
- 只有我
- 何時
- 做特定動作時, 偶爾隨機發生
- 負責單位
- 主要負責 遊戲開發團隊(用戶端開發) · 協同 外部(外部)
- 遊戲開發團隊要做的事
- 收集 crash report、依裝置與驅動程式統計、從最集中的錯誤開始修正。
- 外部要做的事
- 集中在特定顯示卡驅動程式版本時,引導玩家更新驅動程式。
- 圖表上
- 只有部分偏高 · 閃退次數(依裝置、顯示卡驅動程式、build)
- 查看位置
- 依裝置、驅動程式、build 查看 crash report 與 Android vitals 的當機率。玩家電腦則查看事件檢視器「應用程式」log 中的事件識別碼 1000(發生錯誤的模組名稱)與「Display driver stopped responding and has recovered」紀錄
- 符合的跡象
- 回報斷線的時間點有閃退紀錄,同一時間同一伺服器的其他玩家正常。集中在特定裝置、驅動程式版本、模組
- 不符合的跡象
- 沒有閃退紀錄、只是連線中斷時,是「NAT mapping 過期」或線路問題
- 確認方式
- 需要遊戲伺服器/用戶端的 log 與指標
出處
- Crashes Android (Google)
當機(crash)指 App 因未處理的例外或訊號(SIGSEGV 等)意外結束,由 Play Console 的 Android vitals 彙總 - WDDM Support for Timeout Detection and Recovery (TDR) Microsoft
GPU 未能在預設的 2 秒內完成工作時,Windows 會重設顯示卡驅動程式與 GPU - The application or service crashing behavior troubleshooting guidance Microsoft
「應用程式」log 的事件識別碼 1000 是實際的當機紀錄,包含發生錯誤的應用程式與模組名稱(Faulting module name)
相關原因
同一層:L1 用戶端遊戲程式
同一症狀(斷線)在其他層的原因
查看含圖解與實驗的完整版卡片