> ## 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.

# Develop a new GDK title

> Create a new GDK title in Visual Studio using project templates for Windows PC, XBOX Series X|S consoles, or a cross-platform build that targets both.

This is step 3 of the guided path. Install the GDK and build a sample from [Set up and install the GDK](https://docs.xbox.com/home/setup-install/get-started.md) before starting here.

Every GDK game starts as a Visual Studio project. You select a template based on where you want your game to run: Windows PC only, XBOX consoles only, or both targets from the same code. You don't need to finalize this now, because you can add another target later.

> [!TIP]
>
> If you're not sure which target to pick, start with **Desktop** (`Gaming.Desktop.x64`) when you have a Windows PC and no dev kit yet. You can test everything locally. Add XBOX targets after you receive a dev kit.

## Project templates

Installing the GXDK adds nine GDK project templates to Visual Studio: five for PC and four for XBOX consoles.

| Target | Template | Description |
| - | - | - |
| **Desktop** | Direct3D 12 Desktop Game (Classic) | Standalone PC game on the stock x64 MSBuild platform. |
| | Direct3D 12 Desktop Game | Standalone PC game on the `Gaming.Desktop.x64` custom MSBuild platform. |
| | Direct3D 12 Desktop Game Makefile | PC game built from a makefile through the command prompt. |
| | Desktop Static Library | Static lib targeting `Gaming.Desktop.x64`. |
| | Desktop DLL | DLL targeting `Gaming.Desktop.x64`. |
| **Console** | Direct3D 12 XBOX Game | Standalone XBOX game executable. |
| | Direct3D 12 XBOX Game Makefile | XBOX game built from a makefile. |
| | XBOX Static Library | Static lib targeting the XBOX platforms. |
| | XBOX DLL | DLL targeting the XBOX platforms. |

## Create a project

1. Open Visual Studio.
2. Go to **File** > **New** > **Project**.
3. In **All Languages**, select **C++**. In **All Platforms**, select **XBOX** or **Windows**. In **All Project Types**, select **Games**. You can also search by template name.
4. Select a template and select **OK**.

## Select a template

### PC only

Start with **Direct3D 12 Desktop Game**.

* Uses `WINAPI_FAMILY_DESKTOP_APP` and links against the full set of PC libraries, including `kernel32.lib` and `user32.lib`.
* Includes headers and libraries for D3D12. Provides a simple swap chain, D3D device, and update or render loop.
* Includes `XGameRuntime.h` and links `XGameRuntime.lib`. All GDK Gaming Runtime capabilities are ready.
* XSAPI extension library available by default.
* Builds against the stock x64 platform or the custom `Gaming.Desktop.x64` platform.
* Creates a `MicrosoftGameConfig.mgc` file with placeholders for your Partner Center identity.

### XBOX only

Start with **Direct3D 12 XBOX Game**.

* Uses `WINAPI_FAMILY_GAMES` and links against `XGamePlatform.lib`.
* Includes D3D12 headers ready for XBOX D3D12.x extensions.
* Includes `XGameRuntime.h` and links `XGameRuntime.lib`.
* XSAPI extension library available by default.
* Uses the `Gaming.XBOX.XboxOne.x64` MSBuild platform with remote-debug expectations.
* Creates a `MicrosoftGameConfig.mgc` file with placeholders.

### PC and XBOX (shared codebase)

Start with one template, for example **Direct3D 12 Desktop Game**, and add a second build configuration targeting `Gaming.XBOX.XboxOne.x64` (or vice versa).

Tailor source code with `#define` or `#ifdef` guards, or partition platform-specific code into separate DLLs:

* The PC configuration uses stock D3D12.
* The XBOX configuration uses D3D12.x.

Switching the active configuration changes the debugger, linked libs, and other tooling settings automatically.

## Ship end-to-end on a dev kit

Before you select a deeper path, work through the hands-on console walkthrough. It takes the **Direct3D 12 XBOX Game** template you created through a running loose deployment on an XBOX dev kit. From there, it produces an installable XVC.

> [card] [Build and run your first console title with GDKX](https://docs.xbox.com/home/build-first-title/first-console-title-walkthrough.md)
>
> 14-step tutorial: pin the GDK edition, add DirectXTK12, build for XBOX Series X|S consoles, deploy to a dev kit, diagnose launch failures, and produce an installable XVC.

## Next steps

You have a project building. Select the curated path that matches what you're shipping. The guide points you to the deeper docs (Build, Services, Optimize, Publishing, and API References) you need next.

> [card] [Porting](https://docs.xbox.com/paths/porting/overview.md)
>
> Port a shipped title from another platform.

> [card] [XBOX Play Anywhere](https://docs.xbox.com/paths/play-anywhere/overview.md)
>
> One purchase, PC and console. Shared saves.

> [card] [XBOX Series X|S consoles](https://docs.xbox.com/paths/series-xs/overview.md)
>
> Console-first: Quick Resume, DirectStorage, and Smart Delivery.

> [card] [Windows and ROG XBOX Ally](https://docs.xbox.com/paths/windows/overview.md)
>
> Ship on Windows PC and handhelds.

> [card] [Unreal Engine](https://docs.xbox.com/paths/unreal/overview.md)
>
> GDK plugins and platform extensions for Unreal.

> [card] [Unity](https://docs.xbox.com/paths/unity/overview.md)
>
> Unity integration for PC and XBOX.

> [card] [Godot and community engines](https://docs.xbox.com/paths/community-engines/overview.md)
>
> Godot, GameMaker, and custom-engine notes.

> [!TIP]
>
> Most titles pair the GDK with [PlayFab](https://docs.xbox.com/services/playfab/get-started.md) for identity, multiplayer, leaderboards, economy, and live-ops. You can wire it in any time after your project builds.

## See also

* [Porting guides](https://docs.xbox.com/home/build-first-title/porting-guides.md): Technical index of porting topics (ERA to GDK, shaders, GameInput, and Steamworks mapping).
* [MicrosoftGame.config overview](https://docs.xbox.com/build/core-features/common/game-config/MicrosoftGameConfig-Overview.md).
* [Packaging your game](https://docs.xbox.com/build/core-features/common/packaging/overviews/packaging.md).


## Related topics

- [Microsoft Game Development Kit (GDK) porting guides](https://docs.xbox.com/home/build-first-title/porting-guides.md)
- [Build and run your first console title with GDKX](https://docs.xbox.com/home/build-first-title/first-console-title-walkthrough.md)
- [Starting development of a new title using GDK project templates](https://docs.xbox.com/build/gdk-and-engines/guides/gdk-project-templates.md)
- [Invites across Xbox One Software Development Kit/GDK title versions](https://docs.xbox.com/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
- [Develop](https://docs.xbox.com/services/xbox-services/develop/index.md)
