Skip to main content
このガイドでは、October 2025 GDK (バージョン 2510) を使用した PlayFab Game Saves の実装について説明します。Game Saves を初めて利用する方でも、以前の実装から移行する方でも、このドキュメントは Steam Deck サポートに特に注意を払いつつ、必須の要件とセットアップ手順を提供します。

実装要件の概要

October 2025 GDK で PlayFab Game Saves を実装する際には、4 つの主要コンポーネントを理解する必要があります。
  1. 新しい GDK フォルダー レイアウト: プラットフォーム中心の SDK ディレクトリ構造
  2. XGameRuntime 統合: 特定のデプロイ要件を持つクロス プラットフォーム ランタイム
  3. PlayFab Unified SDK: すべての PlayFab コンポーネントのモダンな SDK アーキテクチャ
  4. その他の Unified SDK コンポーネント: 更新された Party および Multiplayer コンポーネント (使用する場合)
最初の 3 つのコンポーネントは、October 2025 GDK 以降を使用したすべての Game Saves 実装 (Steam Deck サポートを含む) に 必須 です。4 番目のコンポーネントは、ゲームが PlayFab Party または Multiplayer 機能を使用する場合のみ適用されます。
Game Saves を初めて利用しますか? まず基本を理解するために Game Saves の概要クイックスタート ガイド から始めてから、October 2025 GDK 固有の実装詳細についてここに戻ってきてください。

1. GDK フォルダー レイアウトとパス構成

現在の GDK 構造

October 2025 GDK は、フラットでプラットフォーム中心のディレクトリ構造を使用します。このレイアウトを理解することは、ビルド システムを正しくセットアップするために不可欠です。 October 2025 GDK のレイアウト:
以前の GDK から移行しますか? 以前のフォルダー構造 ($(GDK)\GRDK\ および $(GDK)\GXDK\) は置き換えられました。ビルド スクリプトを適宜更新してください。

ビルド システムのセットアップ

必要なパス構成

ビルド システムを、正しいプラットフォーム固有のパスを使用するように構成します。

ビルド システム構成の例

CMake セットアップ:
MSBuild 構成:

プラットフォーム サポートの詳細

  • XBOX: 最近のすべての XBOX コンソール世代で xbox フォルダーを使用します
  • Windows: すべての Windows プラットフォーム (PC、Steam PC、Steam Deck-Proton) は windows フォルダーを使用します
  • Steam Deck: SteamOS を実行していますが、Proton エミュレーションとの互換性のため windows フォルダーを使用します

実装手順

  1. ビルド システムを構成する
    • 新しい GDK 構造を使用してインクルード パスとライブラリ パスをセットアップします
    • 複数のプラットフォームを対象とする場合はプラットフォーム検出ロジックを追加します
    • すべてのターゲット プラットフォームでコンパイルをテストします
  2. Game Saves 統合を検証する
    • すべての必須ライブラリが正しくリンクされることを確認します
    • ターゲット プラットフォームで機能をテストします
    • PlayFab サービス接続を検証します

2. XGameRuntime の統合

XGameRuntime の理解

XGameRuntime は、すべてのプラットフォームで XBOX Live サービスと Game Saves 機能の基盤を提供します。以下は知っておくべき内容です。

コア コンポーネント

xgameruntime.lib (インポート ライブラリ)
  • コンパイル時にゲーム プロジェクトにリンクされます
  • ランタイム DLL を自動的に検出してロードします
  • サービス検出を処理します (ローカル vs. システム)
xgameruntime.dll (ランタイム ライブラリ)
  • XBOX Live および Game Saves 機能を実装します
  • 場所: {GDK}\windows\bin\xgameruntime.dll
  • Steam ビルドに重要: ゲームと共にデプロイする必要があります

実装要件

1. 基本統合

すべての Game Saves 実装には XGameRuntime の初期化が必要です。

2. Steam プラットフォームの要件

Steam ビルドに必須: Steam 向けにビルドする際は、ゲーム ディレクトリに xgameruntime.dll を含める 必要 があります。この DLL がないと、Steam Deck で実行するときに以下が発生します。
  • XBOX Live 認証が失敗します
  • Game Saves 機能が利用できなくなります
デプロイ構造:
Microsoft Store ビルド は XGameRuntime をシステムから自動的にロードするため、DLL のデプロイは必要ありません。

3. 自動化された DLL デプロイ

CMake 構成:
MSBuild 構成:

プラットフォーム固有のランタイム動作

Steam Deck のサポートには、ローカル DLL のデプロイが特に必要です。他のプラットフォームのようにシステム サービスにフォールバックすることはできません。さらに、同期エンジンはプロセス内で実行されるため、ゲームはシャットダウン前に重要なセーブ データが同期されていることを確認する必要があります。

3. PlayFab Unified SDK の統合

PlayFab Unified SDK とは?

PlayFab Unified SDK は、すべての PlayFab コンポーネントを単一のアーキテクチャの下にまとめたモダンで統一された SDK です。Game Saves はこの統合システムの一部となり、以下を提供します。 Game Saves 開発の利点:
  • すべての PlayFab コンポーネント間で統一されたメモリ管理
  • 一貫した非同期操作パターン
  • 統合されたトレーシングと診断
  • モジュラー コンポーネント ロード (必要なものだけを含めます)
PlayFab を初めて利用しますか? Unified SDK は、すべての PlayFab サービスに単一で一貫した API パターンを提供することで統合を簡素化します。Game Saves またはその他の PlayFab サービスを初めて実装する場合は、このモダンなアーキテクチャから始めることをお勧めします。

必須の SDK コンポーネント

Game Saves の実装には、以下の Unified SDK コンポーネントが必要です。 必須コンポーネント:
  • libHttpClient: クロス プラットフォームの HTTP/WebSocket 通信
  • PlayFab Core: 認証、エンティティ管理、および構成
  • PlayFab GameSave: Game Saves 固有の機能
任意コンポーネント:
  • PlayFab Services: LiveOps、アカウント管理、およびその他のプログレッション システム用の共有サービス (他の PlayFab サービスを使用する場合は推奨)

ライブラリと DLL の要件

リンクに必要なライブラリ

デプロイに必要な DLL

ビルド システム構成

MSBuild セットアップ

Visual Studio プロジェクトを Unified SDK にリンクするように構成します。
以前の GDK から移行しますか? 古いパス ($(GDK)\GRDK\...\include など) を上記の新しい構造に置き換えてください。

CMake セットアップ

CMake ベースのプロジェクトの場合、依存関係とデプロイを構成します。

コード実装

必要なヘッダー

プロジェクトに必要な Unified SDK ヘッダーをインクルードします。

初期化シーケンス

適切な Game Saves セットアップのために、この初期化順序に従います。
タイトルの設定にあるタイトル ID と API エンドポイントは PlayFab Game Manager から取得してください。

適切なクリーンアップ シーケンス

アプリケーションをシャットダウンするときは、リソースを逆順でクリーンアップします。
適切なリソースのリリースを確保するために、PlayFab Services および Core には常に非同期のクリーンアップ パターンを使用してください。

4. その他の PlayFab Unified SDK コンポーネント

Party および Multiplayer API の変更

Game Saves 機能に直接必要というわけではありませんが、October 2025 GDK には Unified SDK の一部として更新された PlayFab Party および PlayFab Multiplayer コンポーネントも含まれています。これらのコンポーネントには、統合された認証システムとより良く統合される新しい API があります。

スタンドアロン SDK からの主な変更点

認証統合:
  • レガシー パターン: 以前は、スタンドアロンの Party/Multiplayer SDK を使用するタイトルは、PlayFab ログイン結果からの EntityIDEntityToken を手動で管理し、Party/Multiplayer API に渡す必要がありました
  • Unified SDK パターン: Party および Multiplayer は PFEntityHandle を直接受け入れるようになり、手動のトークン管理が不要になりました
利用可能な新しい API:
  • Party: ユーザー認証用に PFEntityHandle を受け入れる新しい API
  • Multiplayer: ロビーおよびマッチメイキング操作用に PFEntityHandle を受け入れる新しい API
移行の利点 (Party/Multiplayer を使用している場合):
  • 自動的なトークン更新による簡素化された認証フロー
  • すべての PlayFab コンポーネント間の一貫したエラー処理パターン
  • 統一されたメモリ管理と非同期操作パターン
Party および Multiplayer コンポーネント: ゲームが PlayFab Party または Multiplayer を使用している場合、統合を改善するために、PFEntityHandle を直接受け入れる新しい統合 API への移行を検討してください。ただし、これは Game Saves 機能には必要ありません。Game Saves のみを使用する場合は、セクション 4 を安全にスキップできます。

5. Steam Deck の実装

PlayFab Game Saves の Steam Deck サポートには、カスタム認証フロー、包括的な UI コールバック、注意深い同期戦略を含む、標準の PC ビルドを超えた重要な追加実装が必要です。
Steam Deck 実装の複雑さ: Steam Deck 統合には、カスタム認証フロー、UI コールバックの実装、そして重要な同期動作の違いが含まれます。実装要件の複雑さと長さのため、Steam Deck の実装には独自の 専用ガイド があります。

Steam Deck の主な考慮事項

重要な同期動作の違い:
  • Windows PC: Game Saves はプロセス外で実行され、ゲームのシャットダウン後も同期を続けることができます
  • Steam Deck: Game Saves はプロセス内でのみ実行され、ゲームがシャットダウンすると同期が停止します
実装要件:
  • すべての Unified SDK DLL を Steam ビルドと共にデプロイする必要があります
  • UI コールバック付きのカスタム XUser 認証フロー
  • 非小売サンドボックス テスト用のレジストリ構成
  • データ損失を防ぐための頻繁な同期パターン
普遍的な同期の推奨事項 (すべてのプラットフォームで有益): これらのパターンは Steam Deck に必要ですが、突然のシャットダウンが一般的なハンドヘルド デバイスを含むすべてのプラットフォームで強く推奨されます。
  • セーブ データを頻繁に (各レベル、チェックポイント、または重要な進行の後で) 同期する
  • 「ゲームを終了」の確認を表示する前に常に同期する
  • ゲームプレイの遷移中のバックグラウンド同期を検討する
  • シャットダウン前の完了を確保するために同期進行インジケーターを実装する

Steam Deck の完全な実装

以下を含む Steam Deck の包括的な実装詳細については:
  • 詳細な認証フローのセットアップ
  • 完全な UI コールバックの実装
  • ステップバイステップの初期化シーケンス
  • トラブルシューティング ガイド
  • サンプル コードの参照
専用の Steam Deck 実装ガイド を参照してください
まずこのドキュメントの要件から始めて、次にプラットフォーム固有の実装詳細のために Steam Deck ガイドに移動してください。

6. 実装チェックリスト

はじめに (新規実装)

  • October 2025 GDK をセットアップ し、インストールを確認します
  • 正しい GDK パスとライブラリ参照で ビルド システムを構成 します
  • プロジェクトのリンク構成に Unified SDK ライブラリを追加 します
  • ソース コードに 必要なヘッダーをインクルード します
  • Unified SDK パターンに従って 初期化シーケンスを実装 します
  • Steam ビルドの DLL デプロイをセットアップ します (必須 4 個、任意 1 個)
  • ターゲット プラットフォームで 基本機能をテスト します

移行 (既存の実装)

  • 古い GDK 構造から新しいレイアウトへ ビルド システム パスを更新 します
  • スタンドアロン ライブラリを Unified SDK コンポーネントに 置き換え ます
  • 新しい Unified SDK ヘッダーを使用するように ヘッダー インクルードを更新 します
  • 新しい Unified SDK API を使用するように 初期化シーケンスを変更 します
  • 適切な非同期クリーンアップ パターンで クリーンアップ シーケンスを更新 します
  • Steam デプロイに 追加の DLL を追加 します (DLL 1 個 → 4〜5 個)
  • 移行後も 機能が損なわれていないことを確認 します

ビルド システム構成

  • インクルード パス: $(GDK)\windows\include (またはプラットフォーム相当) に設定します
  • ライブラリ パス: $(GDK)\windows\lib\x64 (またはプラットフォーム相当) に設定します
  • リンク ライブラリ: リンカーの依存関係に必要な .lib ファイルを追加します (必須 4 個、任意 1 個)
  • DLL デプロイ: Steam ビルドの自動コピーを構成します
  • プラットフォーム検出: 複数のプラットフォーム用にビルドする場合はロジックを追加します

コード実装タスク

  • ヘッダー: 必要なすべての Unified SDK ヘッダーをインクルードします
  • 初期化: 適切な 5 ステップの初期化シーケンスを実装します
  • エラー処理: 各初期化ステップに適切なエラー チェックを追加します
  • クリーンアップ: 非同期パターンで逆順のクリーンアップを実装します
  • 構成: ハードコードされた値を PlayFab タイトル ID とエンドポイントに置き換えます

テスト要件

  • Windows PC: Game Saves 機能を検証します
  • Steam Deck: Steam Deck 実装ガイド を使用して実装を完了します
  • Microsoft Store: 機能にリグレッションがないことを確認します
  • クロス プラットフォーム: すべてのプラットフォーム間 (PC、Steam Deck、XBOX) のセーブ同期をテストします

7. リソースとサポート

ドキュメントのリンク

サンプル コードの参照

  • Windows Game Saves サンプル: PlayFabGameSaveSample-Windows
    • GameSaveIntegration.cpp/.h - コア Game Saves 統合
    • SteamIntegration.cpp/.h - Steam Deck 固有の実装 (Steam Deck ガイドを参照)
    • GameSaveIntegrationUI.cpp/.h - UI コールバック実装 (Steam Deck ガイドを参照)
最終更新日 2026年8月25日