> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 處理離線遊戲的最佳做法

> XBOX 主機遊戲應如何偵測連線中斷、支援離線模式，以及正常處理 XBOX Live 和 XBOX 網路中斷連線的案例。

<Note>本文僅適用於 XBOX 主機，不適用於 PC 等其他平台。</Note>

XBOX 設計為連線裝置，而最佳的體驗 (例如多人遊戲和影片串流) 都需要連線。
不過，XBOX 主機支援許多離線遊戲案例。

遊戲在面對連線失敗時必須保持穩固。
對於具有離線遊戲體驗的遊戲，請讓您的玩家充分享受這些體驗。
對於設計為「一律連線」的遊戲，當網路連線中斷時，請將使用者正常地返回離線狀態。

全球有越來越多的消費者可以存取網際網路。
不過，世界上仍有一些地方的連線狀況無法預測，而且有時路由器會故障、光纖會被切斷、伺服器會當機，或無線服務會中斷。

為了支援最廣泛的消費者和體驗，XBOX 考量了網際網路連線不時中斷或完全無法使用的常見情況。
您的遊戲會收到連線失敗的通知，而您可以自由選擇如何回應，例如繼續完整遊戲、降級為離線模式，或完全結束遊戲。

## 正常線上作業

一般而言，XBOX 主機會在完全連線的狀態下運作，使用者擁有穩定的網際網路連線，並可完整存取 XBOX 網路 (也稱為 XBOX Live) 和第三方服務。
此連線狀態可讓 XBOX 服務定期驗證主機狀態、提供更新，以及執行其他對您的遊戲和使用者有益的背景服務。

建議您假設使用者在大部分時間都擁有線上連線。

## 離線遊戲原則

在某些情況下，線上連線是無法使用的。

對於離線遊戲，XBOX 的設計考量了下列原則：

* 最重要的是，即使有連線問題，也要讓使用者繼續遊玩。

* 即使使用者完全沒有連線，也要讓他們繼續遊玩。

* 讓離線遊戲對使用者而言簡單且可預測，同時仍維持一律連線體驗的精神。

## 離線模式

有兩種高階的*連線中斷*案例：

* 網際網路服務完全中斷

* 一或多個線上服務中斷

在每種模式中，都可能出現各種不同的情況。
下文將說明這些案例，並提供影響遊戲的常見離線案例範例。

## 離線案例：遊戲啟動時沒有網際網路服務

遊戲可以將自己宣告為三種類型之一：

* *需要 XBOX 網路*：所有遊戲模式都需要網際網路連線。

* *需要 XBOX Live Gold*：所有遊戲模式都需要網際網路連線和 XBOX Live Gold 會員資格。

* *不需要 XBOX 網路*：遊戲至少有一種不需要網際網路連線的遊玩模式。技術上而言，此類型並未在應用程式資訊清單中明確宣告。未將自己宣告為前兩種類型之一的應用程式，會被視為「不需要 XBOX 網路」，也就是支援離線。

當使用者啟動遊戲而主機處於離線狀態時，系統會檢查應用程式資訊清單中的遊戲連線宣告。
如果遊戲需要連線 (上述前兩種情況之一)，系統會自動向使用者顯示訊息，且不會啟動遊戲。

如果主機處於離線狀態，系統只會啟動至少有一種不需要連線之遊玩模式的遊戲。
換句話說，系統不會啟動「需要 XBOX 網路」或「需要 XBOX Live Gold」的遊戲。

## 離線案例：遊戲過程中連線中斷

如果連線中斷時遊戲已在執行中，系統會通知遊戲。
如果遊戲未使用線上服務，請繼續工作階段而不中斷。
如果遊戲正在使用線上服務，請切換至不再需要這些服務的模式，或通知玩家遊戲工作階段將因離線狀態而結束。

宣告為「需要 XBOX 網路」或「需要 XBOX Live Gold」的遊戲，會在主機失去所有網路連線一段時間時由系統自動暫停，且系統會自動向使用者提供錯誤訊息。

就像任何其他涉及暫停遊戲的案例一樣，您應該儲存狀態，讓使用者不會遺失資料，並可在恢復連線後快速返回該狀態。

## 離線案例：單一 XBOX 服務停止運作時

在其他情況下，即使網際網路連線正常，特定線上服務仍可能無法使用。

例如，單一 XBOX 服務可能會在短時間內離線。
在此情況下，對特定服務的呼叫會逾時或向遊戲回報錯誤。
您應該正確地處理離線服務狀態，就像在 XBOX 360 或 Windows 上處理這些情況一樣。

至少，遊戲不得當機或停止回應。
如果沒有該服務就無法繼續遊戲，請向使用者回報此情況，並允許使用者在不需要該服務的其他遊戲區域繼續遊玩。

在最佳情況下，請繼續遊戲並快取資料以便稍後傳送 (如果遊戲正在寫入服務)，或對資料做出合理的假設 (如果遊戲正在從服務讀取)。

## 離線案例：第三方服務停止運作時

如果您的遊戲依賴第三方線上服務，則您的遊戲在該服務失敗時也必須具有復原能力。
如果服務失敗，您的遊戲不得當機或停止回應。

如果無法繼續遊戲，您可以向使用者回報服務錯誤。
在理想情況下，遊戲應該繼續進行，或者您應該允許使用者在不需要線上服務的遊戲區域繼續遊玩。

## 離線案例：您的雲端服務停止運作時

XBOX 的展示功能之一是雲端運算能力。
有些遊戲可能完全依賴一律連線的服務，例如 Azure PlayFab Multiplayer Servers，它可讓您存取額外的運算功能或一律可用的遊戲伺服器。
在能增強玩家體驗的情況下，我們允許並鼓勵使用此一律連線模式。

如果您的遊戲使用此模式，建議您的遊戲能夠承受因網際網路連線完全中斷或特定雲端服務中斷而導致的服務中斷 (數秒到最多一分鐘)。
不過，遊戲不一定要有離線模式。
如果遊戲確實需要連線，而連線無法使用，請通知使用者並結束遊戲工作階段。

## XBOX 需求

處理離線案例時最重要的需求是遊戲穩定性。無論是連線完全中斷，或只是特定線上服務中斷，您的遊戲都不得停止回應、當機或導致使用者遺失狀態。
您的遊戲必須具有穩固的系統，以處理網路逾時案例，以及處理任何存取線上服務之 API 所傳回的錯誤。

遊戲不一定要支援離線遊戲。
如果您的遊戲因服務連線中斷而無法繼續，請通知使用者、結束遊戲工作階段，然後返回主選單或初始互動狀態。

## 最佳做法

以下是處理離線情況的最佳做法：

* 設計遊戲時，假設使用者在大部分時間都擁有線上連線。

* 如果對您的遊戲設計而言合理，請考慮設計即使主機處於離線狀態，也能讓使用者享有愉快體驗的遊戲模式。

* 服務可能會變得無法使用。連線可能會失敗。針對可能逾時的 API 建置穩固的錯誤處理，或在線上服務停止運作或網際網路連線中斷時回報失敗狀況。盡可能在遇到這些問題時仍讓使用者繼續遊玩。

* 遵守 XBOX 需求 (XR)。不要停止回應或當機。

* 收到 PLM 遊戲暫停通知時，請儲存狀態，讓使用者不會遺失資料，並可在繼續遊戲時快速返回該狀態。

* 在應用程式資訊清單中適當地標記您的遊戲。只有在所有遊戲模式都需要連線時，才將您的遊戲標記為「需要 XBOX 網路」。

* XBOX 遊戲可以在所有遊戲模式中使用並依賴線上服務。如果遊戲因服務連線中斷而無法繼續，請通知使用者、結束遊戲工作階段，然後返回主選單或初始互動狀態。

* 請勿依賴 XBOX 說明服務來提供與離線狀態相關的錯誤訊息和說明。XBOX 說明服務需要連線至 XBOX 服務。


## Related topics

- [最佳做法](/zh-TW/services/xbox-services/develop/best-practices/index.md)
- [呼叫 XBOX 服務的最佳做法](/zh-TW/services/xbox-services/develop/best-practices/live-best-practices-calling-xbl.md)
- [RTA 服務的最佳做法](/zh-TW/services/xbox-services/fundamentals/rta/concepts/live-rta-best-practices.md)
- [Rich Presence 的最佳做法](/zh-TW/services/xbox-services/community/presence/concepts/live-presence-best-practices.md)
- [實驗最佳做法和建議](/zh-TW/services/playfab/live-service-management/game-configuration/experiments/experimentation-keys.md)
