Skip to main content

クイックスタート: GDK

Microsoft Game Development Kit (GDK) 向けの PlayFab Services SDK を始めましょう。次の手順に従って、ライブラリをプロジェクトに含め、基本的な PlayFab 機能のサンプルコードを試してください。 このクイックスタートは、GDK を使用して最初の PlayFab API 呼び出しを行うのに役立ちます。続行する前に、クイックスタート: Game Manager の手順を完了し、PlayFab アカウントを持っており、PlayFab Game Manager に慣れていることを確認してください。

要件

プロジェクトのセットアップ

他の GDK 拡張ライブラリと同様に、プロジェクトのプロパティを介して PlayFab Services SDK を追加します。プロジェクトの構成プロパティで、Gaming Desktop > General の下で、Gaming Extension Libraries を選択します。プロンプトから、PlayFab.Services.C をチェックします。

初期化とログイン

ヘッダー

含まれるすべての PlayFab 機能にアクセスするために PFServices.h をインクルードします:

初期化

PlayFab の初期化には、PFServicesInitializePFServiceConfigCreateHandle の 2 つの関数呼び出しが必要です。この初期化の結果は PFServiceConfigHandle です。このハンドルを後続のログイン呼び出しに提供して、PlayFab バックエンドの正しいタイトルへの呼び出しを指示します。

ログイン

PFServiceConfigHandle を取得したら、それを使用してプレイヤーのログイン呼び出しを行うことができます。GDK では、PFAuthenticationLoginWithXUserAsync を使用します。この関数を使用すると、XUserHandle を使用してプレイヤーを PlayFab にログインさせることができます。XUserHandle の取得と管理の詳細については、User Identity and XUser を参照してください。 ログイン呼び出しを行った後、XAsyncGetStatus で呼び出しのステータスを確認できます。ステータスは E_PENDING から始まり、呼び出しが正常に完了すると S_OK に変わります。何らかの理由で呼び出しが失敗した場合、ステータスはその失敗を反映します。すべての PlayFab Services 呼び出しのエラー処理はこのように機能します。 S_OK の結果とともに、PFEntityHandle が返されます。このハンドルを使用して、ログインしたプレイヤーとして後続の PlayFab 呼び出しを行います。これには、そのプレイヤーとして PlayFab サービスで認証するために必要なあらゆるマテリアルが含まれています。

サスペンドとレジュームの処理

GDK ゲームは長時間にわたってサスペンドされることがあります (たとえば、Quick Resume 経由で)。サスペンド中にエンティティトークンが期限切れになると、SDK はレジューム時にこれを検出し、ゲームに通知します。必要なときに再認証してサービスに再接続できるように、ゲームのライフサイクルの初期段階で TokenExpiredHandler に登録する必要があります。 詳細については、トークン期限切れの処理を参照してください。

サービス呼び出し

プレイヤーをログインさせた後、PlayFab バックエンドへの呼び出しを行えます。現在のプレイヤーの PlayFab に保存されたファイルを取得する呼び出しの例を次に示します。

EntityKey の取得

PlayFab への一部の呼び出しに役立つのは、プレイヤーの PFEntityKey を知ることです。PFEntityToken を取得したら、PFEntityGetEntityKeyPFEntityKey を取得できます。

GetFiles の呼び出し

すべての PlayFab 呼び出しは、リクエストオブジェクトを準備し、呼び出しを行い (ログインからの PFEntityHandle を使用)、レスポンスを受け取るオブジェクトを作成し、次に GetResult 関数を呼び出して新しく作成されたコンテナーを埋めるという同様のパターンに従います。

クリーンアップ

ゲームをシャットダウンする準備ができたときや、その他の理由で PlayFab をクリーンアップする必要があるときは、開いているすべてのハンドルを閉じ、PFServicesUninitializeAsync を呼び出すようにします。

非同期 API パターン

GDK 用 PlayFab Services SDK は、GDK で実装された非同期プログラミングモデルに従います。このプログラミングモデルには、XAsync ライブラリによって提供されるタスクとタスクキューの使用が含まれます。このモデルは、他の GDK 関数や拡張機能 (XBOX Services API など) と一貫しています。若干の複雑さは導入しますが、非同期操作に対する高度な制御ももたらします。 この例は、PFDataGetFilesAsync への非同期呼び出しを行う方法を示しています。

エラー処理

完了した XAsync 操作は HTTP ステータスコードを返します。エラーステータスコードは、XAsyncGetStatus() または PF*Get() API のいずれかを呼び出すときに、HTTP_E_STATUS_NOT_FOUND のような失敗の HRESULT として現れます。 サービスから返される詳細なエラーメッセージを確認するには、デバッグに関する次のセクションを参照してください。これらの詳細なエラーメッセージは、開発中に、PlayFab サービスがクライアントからのリクエストにどのように反応するかをよりよく理解するのに役立ちます。

デバッグ

PlayFab Services SDK の結果を確認し、任意の呼び出しをデバッグする最も簡単な方法は、デバッグトレースを有効にすることです。デバッグトレースを有効にすると、デバッガー出力ウィンドウで結果を確認し、結果をゲーム独自のログにフックすることができます。

リファレンス

API リファレンスドキュメント
最終更新日 2026年9月1日