次の方法で共有


ゲームのセーブ システムの選択

Xbox サービス を統合するゲームの場合、同じゲームが異なるデバイスでプレイされるときに、ユーザーのゲームのセーブ データをシームレスに移行する必要があります。 ゲームは無料ですが
独自のソリューションを実装する場合、ゲーマーが期待する内容を検討し始めると、すぐに非常にコストの高い機能になってしまう可能性があります。 一般的なゲーマーの期待は次のとおりです:

  • セーブ データは、ユーザーの操作なしでクラウドにシームレスにバックアップされます
  • 同じゲームをプレイするために新しいデバイスに移動すると、ユーザーは以前のデバイスでプレイした場所から進行状況を簡単に再開できます
  • ゲームを再インストールすると、事前に行われた進行状況も復元されます
  • ゲームがオフライン プレイをサポートしている場合、進行状況はオフライン時に保存でき、接続があるときに後でアップロードされます
  • 異なるデバイスから発生した保存からの競合を簡単に解決する方法があります。通常、これらのデバイスの 1 つが以前にオフラインだった可能性があるためです

GDK には、ゲーム開発者が選択できるさまざまなオプションが用意されています。

常にオンライン - サーバー ベースのセーブ データ

ゲームに一定のオンライン プレゼンスが必要な場合、MMO であるゲームはそのような例です。最も簡単な選択肢は、既に接続されているゲーム サーバーでゲームの進行状況を保存することです。
これには、ゲーマーがセーブ データを同期する必要がなく、デバイス間を移動するときに競合が発生する可能性がなく、複数のプラットフォームに簡単にスケーリングできるという利点があります。

オフライン プレイのサポート、最も堅牢なソリューション - XGameSave

多くのゲームでは、オフライン プレイをサポートする必要があります。 ロールプレイング ゲームとアクション ゲームは、このカテゴリのゲームのごく一部の例です。 オンライン プレイとオフライン プレイの両方に適した堅牢なソリューションが必要なゲームの場合、最適なソリューションは XGameSave です。 XGameSave は、アトミック アクションとしてデータのバッチ書き込みをサポートします。

XGameSave と XGameSaveFiles の詳細な比較については、「ゲームのセーブデータを使用した Win32 ファイル IO」を参照してください。

オフライン プレイ、シンプルな API、最大の柔軟性のサポート - XGameSaveFiles

多くのゲームでは、オフライン プレイをサポートする必要がある場合があります。ただし、ゲームのセーブ データ システムを実装する方法の柔軟性を高めたい場合もあります。 XGameSaveFiles には、XGameSave に付属する堅牢性がありません。ただし、ゲームでは、CreateFile や WriteFile などの標準の Win32 ファイル IO API を利用して独自のセーブ システムを作成できます。 このソリューションは、PC に既にこのようなシステムがあり、PC Game Passで動作するソリューションへの移植コストを最小限に抑えたい開発者には最適です。

XGameSave と XGameSaveFiles の詳細な比較については、「ゲームのセーブデータを使用した Win32 ファイル IO」を参照してください。

XGameSaveFiles を使用しながら堅牢性を求めるゲーム開発者は、次のようなソリューションを実装する必要があります:

  1. ゲームでは、データ セーブ システムの "digest" ファイルを確認して、最後の適切なセーブ データの場所を見つける必要があります。 この例では、file1.dat をポイントしているとします。
  2. ゲームの次の書き込み先は file2.dat です。 ゲームは、完全に書き出されていることがわかっている場合を除き、古いセーブ データを上書きしてはいけません。
  3. file2.dat に更新プログラムを正常に書き込んだ後、ゲームは "digest" ファイルを file2.dat をポイントするように更新できます。
  4. その後、ゲームは file1.dat と file2.dat の間で切り替わり続け、ゲームは常に最後の良いデータ セーブを認識し、問題が発生した場合はフォールバックを行います。

ゲームにはコードなしのソリューションが必要です - PC のみ

PC Game Passに登場する一部のゲームでは、コードなしのセーブ データ システムが必要になる場合があります。 その良い例を次に示します:

  • ゲームは x86 であり、パッケージの外部で GDK を直接使用することはできません
  • Unreal や Bolt と Unity でブループリントのようなものを使用する開発者なしでゲームが作成された可能性があります

このカテゴリに含まれるゲームの場合、GDK は コードなしのゲームのセーブ データ ソリューションを提供します。 コードなしのクラウド セーブ データを使用すると、ゲームは目的のセーブ ディレクトリからの読み取りと書き込みを行うだけで、標準の Win32 ファイル IO API を使用して同期が自動的に処理されます。 ゲームは、同期とアップロードを処理するために特別なコードを記述する必要はありません。 同期は、ゲームの起動前に行われます。

関連項目

セーブデータ