Partner Center でプロダクトを作成する
Microsoft Store にゲームを公開する前に、Partner Center で XBOX services を有効にしたプロダクトを作成する必要があります。Partner Center の詳細については、Setting up an app or game in Partner Center, for Managed Partners を参照してください。GDK を C/C++ ゲームに統合する
C/C++ ゲームに GDK を統合するには、ゲームには次の 4 つが必要です。- API のシグネチャとデータ構造を記述する GDK および XBOX Services API (XSAPI) の ヘッダー。
- GDK のエクスポートされた関数への外部参照をリンカーが解決できるようにする インポート ライブラリ。
- XSAPI DLL のエクスポートされた関数への外部参照をリンカーが解決できるようにする XSAPI 静的ライブラリまたは インポート ライブラリ。
- XSAPI は静的な形と動的な形の両方で利用できます。詳細については以下の表を参照し、静的または動的のいずれかを選択してください。
- GDK および XSAPI 関数の実行時実装を実際に含む ダイナミック リンク ライブラリ(XSAPI の動的版を利用する場合)。
複数の DLL に機能が分散しているプラグイン ベースのアーキテクチャを採用しているゲームでは、
Thunks.dll を使用して XSAPI を統合することを推奨し、サポートしています。この方法は PC と XBOX プラットフォームの両方で信頼性を持って動作します。XSAPI を複数の DLL に静的にリンクすると、各 DLL がグローバル状態のコピーを個別に維持します。その結果、1 つの DLL で XblInitialize を呼び出しても、他の DLL では XSAPI が初期化されません。個別の静的インスタンスを持つ DLL 間で XSAPI ハンドルを共有すると、クラッシュや予期しない挙動につながる可能性があります。Thunks.dll は XSAPI とその状態の単一の共有インスタンスを提供することで、この問題を解決します。これにより重複が回避され、すべての DLL で一貫した動作が保証されます。技術的には XSAPI を 1 つの DLL に静的にリンクしてシンボルをエクスポートすることも可能ですが、この方法はより複雑でエラーが起きやすくなります。Thunks.dll の使用はよりシンプルで安全であり、完全にサポートされています。Gaming Runtime Services と XSAPI の要件をプロジェクトに追加する
以下の手順は、Gaming Runtime Services と XSAPI を使用するためのすべての要件をプロジェクトが満たすようにするために必要な変更をまとめたものです。- x64 をターゲットにしていることを確認してください。Visual Studio では Build -> Configuration Manager で Active solution platform を x64 に設定します。
- 次のインクルード パスを追加します:
C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\GameKit\IncludeC:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\IncludeC:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\IncludeGDK version number は、リリースの年、月、サブバージョン番号でディレクトリ名になります。たとえば June 2022 GDK ならディレクトリ名は 220600 です。Microsoft GDK (June 2024) 以前では、C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Include と C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\DesignTime\CommonConfiguration\Neutral\Include を使用してください。Visual Studio では、プロジェクトのプロパティ ページの Configuration Properties -> VC++ Directories -> Include Directories でこれらのパスを追加します。 - インポート ライブラリ用に次のライブラリ パスを追加します:
C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\GameKit\Lib\amd64C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\Lib\x64\ReleaseC:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\Lib\x64GDK version number は、リリースの年、月、サブバージョン番号でディレクトリ名になります。たとえば June 2022 GDK ならディレクトリ名は 220600 です。Microsoft GDK (June 2024) 以前では、C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release と C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\DesignTime\CommonConfiguration\Neutral\Lib を使用してください。Visual Studio では、プロジェクトのプロパティ ページの Configuration Properties -> VC++ Directories -> Library Directories でこれらのパスを追加します。 - プロジェクトにリンクされるライブラリのリストに次のライブラリを追加します:
C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\GameKit\Lib\amd64\xgameruntime.libC:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\Lib\x64\Release\Microsoft.Xbox.Services.GDK.C.Thunks.lib (または静的にリンクする場合は Microsoft.Xbox.Services.142.GDK.C.lib)C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\Lib\x64\libHttpClient.GDK.libGDK version number は、リリースの年、月、サブバージョン番号でディレクトリ名になります。たとえば June 2022 GDK ならディレクトリ名は 220600 です。Microsoft GDK (June 2024) 以前では、C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.lib (または静的にリンクする場合は Microsoft.Xbox.Services.142.GDK.C.lib) と C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\DesignTime\CommonConfiguration\Neutral\Lib\libHttpClient.GDK.lib を使用してください。Visual Studio では、プロジェクトのプロパティ ページの Configuration Properties -> Linker -> Input -> Additional Dependencies でライブラリを追加します。 - _GAMING_DESKTOP と WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP を定義します。Visual Studio では、プロジェクトのプロパティ ページの C/C++ -> Command Line -> Additional Options に次の行を追加します:
/D "_GAMING_DESKTOP" /D "WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" - MicrosoftGame.config ファイルを作成し、ビルド時に .exe と同じ場所にコピーされるようにしてください。注意: エンジンが実行時に異なる .exe を使用するエディター内実行機能をサポートしている場合、MicrosoftGame.config が該当する .exe と同じディレクトリにもコピーされるようにする必要があります。MicrosoftGame.config が .exe と同じディレクトリにない場合、エディター内実行機能を使用するときに XBOX services が動作しません。開発の開始には、次の例のようなデフォルト値の config を使用できます。Identity Name、Executable Name、Executable Alias の値はすべて実行ファイルの名前に置き換えてください。
- Microsoft.Xbox.Services.GDK.C.Thunks.dll(動的にリンクする場合)、XCurl.dll、libHttpClient.GDK.dll のコピーが、ビルド時に .exe と同じ場所にコピーされることを確認してください。注意: エンジンが実行時に異なる .exe を使用するエディター内実行機能をサポートしている場合、その .exe もこれらの .dll を参照するようにする必要があります。.exe から .dll が参照されないと、エディター内実行機能を使用するときに XBOX services が動作しません。XSAPI に動的にリンクする場合、Microsoft.Xbox.Services.GDK.C.Thunks.dll は GDK インストールの次のディレクトリにあります:
C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\Lib\x64\[Debug|Release]XCurl.dll は GDK インストールの次のディレクトリにあります:C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.XCurl.API\Redist\x64libHttpClient.GDK.dll は GDK インストールの次のディレクトリにあります:C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\Redist\x64GDK version number は、リリースの年、月、サブバージョン番号でディレクトリ名になります。たとえば June 2022 GDK ならディレクトリ名は 220600 です。Microsoft GDK (June 2024) 以前では、C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\[Debug|Release]、C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.XCurl.API\Redist\CommonConfiguration\neutral、および C:\Program Files (x86)\Microsoft GDK\[GDK version number]\GRDK\ExtensionLibraries\Xbox.LibHttpClient\Redist\CommonConfiguration\neutral を使用してください。
あるいは、既存の Visual Studio Desktop プロジェクトに GDK を統合する場合は、このトピックの手順に従ってプロジェクトを GDK プロジェクトに変換できます: Adding the Microsoft Game Development Kit to an existing desktop project。
MicrosoftGame.config を更新する
前の手順で作成した MicrosoftGame.config ファイルは、Gaming Runtime、Microsoft Store、およびタイトル アイデンティティの機能を使用するまでは追加の設定なしに PC と XBOX 上での初期開発が可能なデフォルト値を持っています。XBOX services 機能を使用するには、Partner Center プロジェクトのアイデンティティ詳細でプロジェクトの MicrosoftGame.config を更新する必要があります。- Partner Center dashboard に移動します。
- プロダクトのリストからゲームを選択します。
- Game setup タブを選択し、次に Identity details を選択します。
- Show Details を選択して Identity details セクションを展開します。
- Identity details セクションの表から次の値を使用し、それらの値を Partner Center から MicrosoftGame.config の対応する要素とフィールドにコピーします。
たとえば、Partner Center 上の次のアイデンティティ詳細は、以下のサンプルのような MicrosoftGame.config になります。
ゲーム ランタイムと XSAPI を初期化する
以下の手順は、ゲームで Gaming Runtime Services と XSAPI を初期化する方法を示しています。- XGameRuntime ヘッダーと XSAPI services-c ヘッダーをインクルードします。
- XGameRuntimeInitialize を呼び出して GDK ランタイムを初期化します。
- XblInitialize を呼び出して XSAPI を初期化します。
ゲーム ランタイムを解放する
Gaming Runtime Services は、ゲーム終了前に解放する必要があります。XSAPI は終了前に明示的にクリーンアップする必要はありません。 XGameRuntimeUninitialize を呼び出して GDK ランタイムを解放します。GDK 機能の実装の概要については Game Development Kit (GDK) features を参照してください。
ゲームで XBOX services をテストする
実績などのゲーム内 XBOX services 機能をテストするには、サンドボックスと、そのサンドボックスへのアクセスを持つテスト アカウントを使用する必要があります。テスト アカウントを作成する
ゲーム内の XBOX services 機能をテストするには、開発サンドボックスへのアクセスを持つテスト アカウントを作成する必要があります。テスト アカウントの作成については、Creating test accounts を参照してください。サンドボックスを切り替える
テスト アカウントを作成したら、次の手順でサンドボックスにアクセスします。- サンドボックス ID を確認するには、Partner Center に移動します。
- XBOX services を選択し、次に Gameplay Settings を選択します。
サンドボックス ID は最初のタブにあり、「ABCDEF.0」のような名前になっています。
- Start メニューを開きます。
- Microsoft GDK Command Prompts と入力し、キーボードの Enter を選択します。
- 最初のコマンド プロンプトを開きます。
- コマンド プロンプトで XblPCSandbox.exe [サンドボックス ID] と入力します。
- コマンド プロンプトがいくつかのアプリを起動したら、XBOX アプリにテスト アカウントでサインインします。
公開
ゲームを公開する準備を整えるには、次のことが必要です。- ゲームと GDK の統合を完了していること
- Getting started with packaging titles for a PC by using the MSIXVC packaging tools の手順に従ってゲーム パッケージを作成していること
