> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 新しい GDK タイトルを開発する

> Windows PC、XBOX Series X|S コンソール、または両方をターゲットにするクロスプラットフォーム ビルド向けのプロジェクト テンプレートを使用して、Visual Studio で新しい GDK タイトルを作成します。

これはガイド付きパスのステップ 3 です。ここから始める前に、[GDK のセットアップとインストール](https://docs.xbox.com/ja-jp/home/setup-install/get-started.md) で GDK をインストールし、サンプルをビルドしてください。

すべての GDK ゲームは Visual Studio プロジェクトとして始まります。ゲームを実行する場所に応じてテンプレートを選択します: Windows PC のみ、XBOX コンソールのみ、または同一のコードから両方をターゲットにする形です。後から別のターゲットを追加できるため、この時点で最終決定する必要はありません。

> [!TIP]
>
> どのターゲットを選ぶか迷ったら、Windows PC はあるが開発キットがまだ手元にない場合は **Desktop** (`Gaming.Desktop.x64`) から始めてください。すべてをローカルでテストできます。開発キットを受け取ってから XBOX ターゲットを追加できます。

## プロジェクト テンプレート

GXDK をインストールすると、Visual Studio に 9 種類の GDK プロジェクト テンプレートが追加されます: PC 向けが 5 種類、XBOX コンソール向けが 4 種類です。

| ターゲット | テンプレート | 説明 |
| - | - | - |
| **Desktop** | Direct3D 12 Desktop Game (Classic) | 標準の x64 MSBuild プラットフォーム上のスタンドアロン PC ゲーム。 |
| | Direct3D 12 Desktop Game | `Gaming.Desktop.x64` カスタム MSBuild プラットフォーム上のスタンドアロン PC ゲーム。 |
| | Direct3D 12 Desktop Game Makefile | コマンド プロンプトから makefile でビルドする PC ゲーム。 |
| | Desktop Static Library | `Gaming.Desktop.x64` をターゲットにする静的ライブラリ。 |
| | Desktop DLL | `Gaming.Desktop.x64` をターゲットにする DLL。 |
| **Console** | Direct3D 12 XBOX Game | スタンドアロンの XBOX ゲーム実行ファイル。 |
| | Direct3D 12 XBOX Game Makefile | makefile からビルドする XBOX ゲーム。 |
| | XBOX Static Library | XBOX プラットフォームをターゲットにする静的ライブラリ。 |
| | XBOX DLL | XBOX プラットフォームをターゲットにする DLL。 |

## プロジェクトを作成する

1. Visual Studio を開きます。
2. **\[ファイル]** > **\[新規作成]** > **\[プロジェクト]** に移動します。
3. **\[すべての言語]** で **C++** を選択します。**\[すべてのプラットフォーム]** で **XBOX** または **Windows** を選択します。**\[すべてのプロジェクトの種類]** で **Games** を選択します。テンプレート名で検索することもできます。
4. テンプレートを選択し、**\[OK]** を選択します。

## テンプレートを選択する

### PC のみ

**Direct3D 12 Desktop Game** から始めます。

* `WINAPI_FAMILY_DESKTOP_APP` を使用し、`kernel32.lib` や `user32.lib` を含む PC ライブラリのフル セットに対してリンクします。
* D3D12 用のヘッダーとライブラリを含みます。シンプルなスワップ チェーン、D3D デバイス、更新／レンダー ループを提供します。
* `XGameRuntime.h` を含み、`XGameRuntime.lib` をリンクします。すべての GDK Gaming Runtime 機能が利用可能です。
* XSAPI 拡張ライブラリが既定で利用可能です。
* 標準の x64 プラットフォームまたはカスタムの `Gaming.Desktop.x64` プラットフォームに対してビルドします。
* Partner Center のアイデンティティ用のプレースホルダーを持つ `MicrosoftGameConfig.mgc` ファイルを作成します。

### XBOX のみ

**Direct3D 12 XBOX Game** から始めます。

* `WINAPI_FAMILY_GAMES` を使用し、`XGamePlatform.lib` に対してリンクします。
* XBOX D3D12.x 拡張に対応した D3D12 ヘッダーを含みます。
* `XGameRuntime.h` を含み、`XGameRuntime.lib` をリンクします。
* XSAPI 拡張ライブラリが既定で利用可能です。
* リモート デバッグを想定した `Gaming.XBOX.XboxOne.x64` MSBuild プラットフォームを使用します。
* プレースホルダーを持つ `MicrosoftGameConfig.mgc` ファイルを作成します。

### PC と XBOX (コードベース共有)

たとえば **Direct3D 12 Desktop Game** の 1 つのテンプレートから始めて、`Gaming.XBOX.XboxOne.x64` をターゲットにする 2 つ目のビルド構成を追加します (逆のパターンも可)。

`#define` または `#ifdef` ガードでソース コードを分岐させるか、プラットフォーム固有のコードを別の DLL に分割します:

* PC 構成は標準の D3D12 を使用します。
* XBOX 構成は D3D12.x を使用します。

アクティブな構成を切り替えると、デバッガー、リンクするライブラリ、その他のツール設定が自動的に切り替わります。

## 開発キットでエンドツーエンドに出荷する

より深いパスを選ぶ前に、コンソール向けのハンズオン ウォークスルーを実施してください。作成したばかりの **Direct3D 12 XBOX Game** テンプレートを、XBOX 開発キット上で稼働するルーズ デプロイまで進めます。そこからインストール可能な XVC を生成します。

> [card] [GDKX で最初のコンソール タイトルをビルドして実行する](https://docs.xbox.com/ja-jp/home/build-first-title/first-console-title-walkthrough.md)
>
> 14 ステップのチュートリアル: GDK エディションのピン留め、DirectXTK12 の追加、XBOX Series X|S コンソール向けビルド、開発キットへのデプロイ、起動失敗の診断、インストール可能な XVC の生成。

## 次のステップ

プロジェクトがビルドできるようになりました。出荷しようとしているものに合った、厳選されたパスを選択してください。ガイドは、次に必要となるより深いドキュメント (Build、Services、Optimize、Publishing、API リファレンス) へと導きます。

> [card] [移植](https://docs.xbox.com/ja-jp/paths/porting/overview.md)
>
> 別プラットフォームで出荷済みのタイトルを移植します。

> [card] [XBOX Play Anywhere](https://docs.xbox.com/ja-jp/paths/play-anywhere/overview.md)
>
> 1 度の購入で PC とコンソールの両方に対応。セーブも共有。

> [card] [XBOX Series X|S コンソール](https://docs.xbox.com/ja-jp/paths/series-xs/overview.md)
>
> コンソール優先: Quick Resume、DirectStorage、Smart Delivery。

> [card] [Windows と ROG XBOX Ally](https://docs.xbox.com/ja-jp/paths/windows/overview.md)
>
> Windows PC とハンドヘルドで出荷します。

> [card] [Unreal Engine](https://docs.xbox.com/ja-jp/paths/unreal/overview.md)
>
> Unreal 向けの GDK プラグインとプラットフォーム拡張。

> [card] [Unity](https://docs.xbox.com/ja-jp/paths/unity/overview.md)
>
> PC と XBOX 向けの Unity 統合。

> [card] [Godot とコミュニティ エンジン](https://docs.xbox.com/ja-jp/paths/community-engines/overview.md)
>
> Godot、GameMaker、カスタム エンジンに関するノート。

> [!TIP]
>
> 多くのタイトルは、アイデンティティ、マルチプレイヤー、リーダーボード、経済、ライブオペレーションのために GDK を [PlayFab](https://docs.xbox.com/ja-jp/services/playfab/get-started.md) と組み合わせています。プロジェクトがビルドできるようになってからいつでも組み込めます。

## 関連項目

* [移植ガイド](https://docs.xbox.com/ja-jp/home/build-first-title/porting-guides.md): 移植トピックの技術インデックス (ERA から GDK へ、シェーダー、GameInput、Steamworks マッピング)。
* [MicrosoftGame.config の概要](https://docs.xbox.com/ja-jp/build/core-features/common/game-config/MicrosoftGameConfig-Overview.md)。
* [ゲームのパッケージング](https://docs.xbox.com/ja-jp/build/core-features/common/packaging/overviews/packaging.md)。


## Related topics

- [GDKX で最初のコンソール タイトルをビルドして実行する](https://docs.xbox.com/ja-jp/home/build-first-title/first-console-title-walkthrough.md)
- [Microsoft Game Development Kit (GDK) 移植ガイド](https://docs.xbox.com/ja-jp/home/build-first-title/porting-guides.md)
- [GDK プロジェクト テンプレートを使用した新しいタイトルの開発の開始](https://docs.xbox.com/ja-jp/build/gdk-and-engines/guides/gdk-project-templates.md)
- [XBOX コンソール ゲーム開発環境とツール](https://docs.xbox.com/ja-jp/tools/tools-console/gc-tools-console-toc.md)
- [Title Data クイックスタート](https://docs.xbox.com/ja-jp/services/playfab/live-service-management/game-configuration/titledata/quickstart.md)
