Skip to main content
This is step 3 of the guided path. Install the GDK and build a sample from Set up and install the GDK 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.
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.

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.

Build and run your first console title with GDKX

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.

Porting

Port a shipped title from another platform.

XBOX Play Anywhere

One purchase, PC and console. Shared saves.

XBOX Series X|S consoles

Console-first: Quick Resume, DirectStorage, and Smart Delivery.

Windows and ROG XBOX Ally

Ship on Windows PC and handhelds.

Unreal Engine

GDK plugins and platform extensions for Unreal.

Unity

Unity integration for PC and XBOX.

Godot and community engines

Godot, GameMaker, and custom-engine notes.
Most titles pair the GDK with PlayFab for identity, multiplayer, leaderboards, economy, and live-ops. You can wire it in any time after your project builds.

See also

Last modified on August 4, 2026