Skip to main content
The directory structure described in this article is the simplified (cross-platform) layout introduced with the October 2025 GDK.Beginning with the October 2026 GDK, the simplified layout is installed by default. The legacy layout remains available as an optional, deprecated compatibility path for teams that need additional migration time.The legacy layout will no longer be supported and will be removed from the installer starting with the April 2027 GDK release.
In current versions of the Microsoft Game Development Kit (GDK), the layout was optimized around code-sharing and focused on specific platforms. Build integration for this layout relied heavily on hiding the complexity in MSBuild custom platforms. For the new layout, the focus is on simplifying the integration, supporting a growing list of target platforms, and improving support for both stock MSBuild platforms and non-Microsoft build systems.

Old headers and libraries layout

The existing file layout for the Microsoft GDK is summarized as follows.
The Gaming.Desktop.x64, Gaming.Xbox.Scarlett.x64, and Gaming.Xbox.XboxOne.x64 custom MSBuild platforms implement all the logic for building the include/lib paths that combine all this content in various ways. If you used CMake or a custom make solution, this logic had to be implemented there as well. For a detailed example, see the April 2025 version of CMakeExample. The October 2025 and April 2026 GDK releases include both the simplified and legacy layouts. Beginning with the October 2026 GDK, setup installs only the simplified layout by default. The legacy layout can still be selected as an optional installation, but it is deprecated and is no longer the recommended development path. The legacy layout will no longer be supported and will be removed from the installer starting with the April 2027 GDK release.

New headers and libraries layout

For the October 2025 GDK release, it now offers an alteranative layout for the headers and libraries that make the platform integration much easier and able to accommodate additional platforms over time.

Using the new layout with MSBuild custom platforms

The existing Gaming.*.x64 MSBuild platforms will use the old layout by default, but you can opt into the new layout by setting the GDKCrossPlatform property.
This results in the appropriate include/lib paths being added to the project instead of the various complex paths were used by the old layout. In this new simplified integration, the extension libraries mechanism is no longer used. All content is available at build-time by default in the include/lib paths. The project then needs to link to the additional libraries it makes use of. Projects that are built on the older GDK project templates should contain statements like the following.
For the new layout the Console_Libs property will list the core required libraries. The project needs to add to AdditionalDependencies the extension libraries it consumes because they’re each ‘opt-in’. The project also needs to copy the additional DLLs it uses into the layout. This can be done either via Custom Build steps that are typical of many DLL library integrations, or by editing the vcxproj or adding a props file to use the ReferenceCopyLocalPaths item group list. The MSBuild below lists all the possible DLLs but individual projects will only need some of these.
GameDKLatest is only set by the Microsoft GDK with XBOX Extensions. As a result, we introduced new environment variables that fully support side-by-side installation of both versions of the Microsoft GDK: GameDKCoreLatest is set by the Microsoft GDK. GameDKXboxLatest is set by the Microsoft GDK with XBOX Extensions.

Using a Directory.Build.props

As a way to quickly validate existing GDK Gaming.*.x64 projects by using the new layout, place the following content into a file named Directory.Build.props in your source tree. This opts in to the new layout and includes most or all extension libraries even if not used by the project.
The GDKExtLibNames property isn’t used by the MSBuild rules when building with GDKCrossPlatform set to true. Because it’s already present for building with the older MSBuild rules, it is used in this props file as a way to opt in to some additional DLLs in the layout.

Using the new layout with the MSBuild x64 platform

Instead of using the Gaming.Desktop.x64 platform, you can use the stock x64 platform to build for PC. In the old layout, this required adding <Import Project="...\ExtensionLibrary.props"> statements for the Extension Libraries as detailed in the Using the x64 platform with the Microsoft Game Development Kit (GDK). In the new layout, the integration instructions are streamlined.
Add all required extension libraires to AdditionalDependencies along with the original list.
Opt-in extension library DLLs need to be copied into the binary directory as above by using a Custom Build action or by using the ReferenceCopyLocalPaths item group for the final layout. The remaining instructions for PreprocessorDefinitions and handling the .mgc file with image assets remain unchanged.

Using the new layout with CMake

When using the Microsoft Visual Studio generators with CMake and using the Gaming.*.x64 custom MSBuild platforms, the new layout is enabled with the following.
In the CMakeGDKExample, remove the use of VS_GLOBAL_GDKExtLibNames and replace it with the following (assuming CMake 3.21 or later) to copy the used extension DLLs into the layout.

Using the new layout with custom build systems

Building for Windows x64 by using the GDK requires the following.
Building for XBOX Series X|S (a.k.a. Gaming.Xbox.Scarlett.x64) requires:
Building for XBOX One (a.k.a. Gaming.Xbox.XboxOne.x64) requires:

Using the new layout for PC content tools

For console development, some kinds of content ‘cooking’ take place on the development PC using XTF APIs, the XMA2 encoding library, and/or custom Direct3D 12.X tooling. Accessing this content requires specific build setup: Building PC tools that target both XBOX One and XBOX Series X|S requires:
Building PC tools that target XBOX Series X|S graphics requires:
Building PC tools that target XBOX One graphics requires:

Reading build edition from an installed file

The new layout does not contain the grdk.ini or gxdk.ini files. To find the edition information by parsing a file, use grdk.h or gxdk.h. Here is an example in PowerShell that works with older GDK releases as well.

Build without install (BWOI)

The MSBuild custom build platform files that were originally located under <edition>\flatDeployment in the old layout are now located under <edition>\xbox\build with shortened paths. For example, to setup a BWOI MSBuild rule folder for VS 2022, use these commands.
Then in your Directory.Build.props used for BWOI set the properties to point to this combined folder.
Last modified on November 5, 2026