> ## 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 network の切断シナリオを適切に処理する方法。

<Note>この記事は XBOX コンソールにのみ適用され、PC などの他のプラットフォームには適用されません。</Note>

XBOX は接続されたデバイスとして設計されており、マルチプレイヤーゲームや動画ストリーミングなどの最高のエクスペリエンスには接続が必要です。
しかし、XBOX コンソールはオフラインプレイのための多くのシナリオをサポートしています。

ゲームは接続失敗に対して堅牢である必要があります。
オフラインプレイのエクスペリエンスを提供するゲームでは、プレイヤーがそのエクスペリエンスを存分に楽しめるようにしてください。
"常にオンライン" として設計されたゲームの場合、ネットワーク接続が失われたら、ユーザーを適切にオフライン状態へ戻してください。

世界中でインターネットにアクセスできる消費者は絶え間なく増加しています。
しかし、世界には依然として接続が不安定な場所があり、ルーターが故障したり、光ファイバーが切断されたり、サーバーがクラッシュしたり、ワイヤレスサービスが切断されたりする場合もあります。

最も広い範囲の消費者とエクスペリエンスをサポートするために、XBOX は、インターネット接続が時々失われたり、まったく利用できなかったりする一般的なケースを許容します。
ゲームには接続失敗が通知され、フルゲームプレイの継続、オフラインモードへのダウングレード、またはゲームプレイの完全な終了など、どのように対応するかを自由に選択できます。

## 通常のオンライン動作

一般に、XBOX コンソールは、ユーザーが安定したインターネット接続を持ち、XBOX network (XBOX Live としても知られる) およびサードパーティサービスへの完全なアクセス権を持つ、完全に接続された状態で動作します。
この接続状態により、XBOX services は定期的にコンソールの状態を検証し、更新を提供し、ゲームやユーザーに役立つその他のバックグラウンドサービスを実行できます。

ユーザーはほとんどの時間オンライン接続を持っていると想定することをお勧めします。

## オフラインプレイの原則

オンライン接続が利用できないケースもあります。

オフラインプレイのために、XBOX は次の原則を念頭に置いて設計されています:

* 最も重要なこととして、接続の問題があってもユーザーがプレイし続けられるようにする。

* まったく接続がない場合でも、ユーザーがプレイし続けられるようにする。

* 常時接続エクスペリエンスの精神を維持しつつ、ユーザーにとってオフラインプレイをシンプルで予測可能なものにする。

## オフラインモード

高レベルでは、*接続喪失* のシナリオには 2 つあります:

* インターネットサービスの完全な喪失

* 1 つ以上のオンラインサービスの喪失

これらの各モードでは、さまざまな状況が発生する可能性があります。
これらのシナリオを、ゲームプレイに影響を与える一般的なオフラインシナリオの例とともに以下で説明します。

## オフラインシナリオ: ゲーム開始時にインターネットサービスがない

ゲームは次の 3 種類のいずれかとして宣言できます:

* *XBOX network required*: すべてのゲームプレイモードにインターネット接続が必要。

* *XBOX Live Gold required*: すべてのゲームプレイモードにインターネット接続と XBOX Live Gold メンバーシップが必要。

* *XBOX network not required*: ゲームには、インターネット接続を必要としないプレイモードが少なくとも 1 つある。技術的には、この種類はアプリケーションマニフェストで明示的には宣言されません。前述の最初の 2 種類のいずれかとして自身を宣言していないアプリは、"XBOX network not required" またはオフラインサポートありとみなされます。

ユーザーがゲームを起動したときにコンソールがオフラインの場合、システムはアプリケーションマニフェストのゲーム接続宣言を確認します。
ゲームが接続を必要とする (上記の最初の 2 つのケースのいずれか) 場合、システムは自動的にメッセージをユーザーに表示し、タイトルを起動しません。

コンソールがオフラインの場合、システムは接続を必要としないプレイモードが少なくとも 1 つあるタイトルのみを起動します。
言い換えると、システムは "XBOX network required" や "XBOX Live Gold required" のタイトルを起動しません。

## オフラインシナリオ: ゲームプレイ中に接続が失われた

ゲームがすでに実行中に接続が失われた場合、タイトルはシステムから通知されます。
ゲームがオンラインサービスを使用していない場合、セッションを中断せずに続行してください。
ゲームがオンラインサービスをアクティブに使用している場合は、それらのサービスが不要なモードに切り替えるか、オフライン状態のためにゲーミングセッションが終了することをプレイヤーに通知してください。

"XBOX network required" または "XBOX Live Gold required" と宣言されたタイトルは、コンソールが一定期間すべてのネットワーク接続を失うと、システムによって自動的に中断され、システムはユーザーに自動的にエラーメッセージを提供します。

ゲームプレイの中断を伴う他のシナリオと同様に、ユーザーがデータを失うことなく、接続を回復した後にすぐにその状態へ戻れるように、状態を保存してください。

## オフラインシナリオ: 単一の XBOX services サービスがダウンしている

インターネット接続は問題ないにもかかわらず、特定のオンラインサービスが利用できない状況もあります。

例えば、単一の XBOX service が短期間オフラインになる場合があります。
この場合、特定のサービスへの呼び出しはタイムアウトするか、ゲームにエラーを報告します。
XBOX 360 や Windows でこれらの状況を処理する場合と同様に、オフラインサービス状態を適切に処理する必要があります。

少なくとも、ゲームがクラッシュやハングをしてはなりません。
サービスなしでゲームプレイを続行できない場合は、その状況をユーザーに報告し、そのサービスが不要なゲームの別のエリアでユーザーが続行できるようにしてください。

最良のケースでは、ゲームプレイを続行し、後で送信するためにデータをキャッシュする (ゲームがサービスに書き込みをしていた場合) か、データについて合理的な仮定を行う (ゲームがサービスから読み取りをしていた場合) 必要があります。

## オフラインシナリオ: サードパーティサービスがダウンしている

ゲームがサードパーティのオンラインサービスに依存している場合、そのサービスが失敗した場合にもゲームは耐障害性を持つ必要があります。
サービスが失敗した場合、ゲームはクラッシュやハングをしてはなりません。

ゲームプレイを続行できない場合、サービスエラーをユーザーに報告してもかまいません。
理想的には、ゲームプレイを続行するか、オンラインサービスを必要としないゲームのエリアで続行できるようにしてください。

## オフラインシナリオ: クラウドサービスがダウンしている

XBOX の目玉機能の 1 つはクラウドパワーです。
一部のゲームは、追加の計算能力や常時利用可能なゲームサーバーへのアクセスを可能にする Azure PlayFab Multiplayer Servers のような常時接続サービスに完全に依存する場合があります。
プレイヤーへのエクスペリエンスが向上する場合、この常時接続モードは許可され、推奨されています。

ゲームがこのモードを使用する場合、インターネット接続の完全な喪失または特定のクラウドサービスの喪失による (数秒から最大 1 分の) サービス中断に対して耐障害性を持つことをお勧めします。
ただし、ゲームがオフラインモードを持つことは必須ではありません。
ゲームが本当に接続を必要とし、接続が利用できない場合は、ユーザーに通知してゲームプレイセッションを終了してください。

## XBOX 要件

オフラインシナリオを扱う際の最も重要な要件は、ゲームの安定性です。完全な接続喪失であれ、特定のオンラインサービスのみの喪失であれ、ゲームはハング、クラッシュ、またはユーザーに状態を失わせてはなりません。
ゲームには、ネットワークタイムアウトのシナリオを処理し、オンラインサービスにアクセスする API から返されるエラーを処理する堅牢なシステムが必要です。

ゲームはオフラインプレイをサポートする必要はありません。
サービス接続の喪失のためにゲームが単に続行できない場合、ユーザーに通知し、ゲーミングセッションを終了し、メインメニューまたは初期のインタラクティブ状態に戻ってください。

## ベストプラクティス

オフライン状況を処理するためのベストプラクティスは次のとおりです:

* ユーザーはほとんどの時間オンライン接続を持っていると想定してゲームを設計してください。

* ゲームデザインにとって理にかなっている場合、コンソールがオフライン状態であっても、ユーザーが楽しいエクスペリエンスを得られるゲームプレイモードを設計することを検討してください。

* サービスは利用不能になる可能性があります。接続は失敗する可能性があります。タイムアウトする可能性のある API に対する堅牢なエラー処理を構築するか、オンラインサービスがダウンしたときやインターネット接続が失われたときの失敗状態を報告してください。可能な限り、これらの問題があってもユーザーがプレイし続けられるようにしてください。

* XBOX 要件 (XR) を遵守してください。ハングやクラッシュを起こしてはなりません。

* PLM タイトル中断通知を受け取ったら、ユーザーがデータを失うことなく、ゲームを再開したときに素早くその状態に戻れるように、状態を保存してください。

* アプリケーションマニフェストでタイトルを適切にフラグ付けしてください。すべてのゲームプレイモードに接続が必要な場合にのみ、タイトルを "XBOX network required" とマークしてください。

* XBOX ゲームは、すべてのゲームモードでオンラインサービスを使用および依存することが許可されています。サービス接続の喪失のためにゲームが単に続行できない場合、ユーザーに通知し、ゲーミングセッションを終了し、メインメニューまたは初期のインタラクティブ状態に戻ってください。

* オフライン状態に関するエラーメッセージやヘルプについて、XBOX Help サービスに依存しないでください。XBOX Help サービスは XBOX services への接続を必要とします。


## Related topics

- [ベスト プラクティス](/ja-jp/services/xbox-services/develop/best-practices/index.md)
- [XBOX services 呼び出しのベストプラクティス](/ja-jp/services/xbox-services/develop/best-practices/live-best-practices-calling-xbl.md)
- [Game Saves のオフライン モード](/ja-jp/services/playfab/player-progression/game-saves/offline.md)
- [PlayFab 消費量のベストプラクティス](/ja-jp/services/playfab/pricing/consumption-best-practices.md)
- [ログインの基本とベスト プラクティス](/ja-jp/services/playfab/identity/player-identity/login/login-basics-best-practices.md)
