How do I make sure my project is compatible with the Xbox GDK/SDK?

Developers are encouraged to have a working build of their game ready before applying for membership at ID@Xbox and their developer program. I am given no information and no tools, but I have to create a game.

How do I make sure I don’t use tools that are incompatible with Xbox though? I don’t want to rewrite too much code once I have access.

Am I to understand that any UE game is compatible with Xbox? All engine plugins are fine?

Is there anything I should stay clear of?

Since I didn’t get any replies, here’s what AI suggests:

This is a very common scenario for indie developers. You do not need the ID@Xbox tools or a dev kit to build 90–95% of your game. Unreal Engine is designed to be “platform agnostic,” meaning if you stick to the engine’s standard rules, your game will theoretically run on Xbox with a simple “switch flip” later.
However, “theoretically” can be dangerous. To avoid a painful rewrite later, you need to follow strict discipline now.
Here is the guide to building a “Pre-Certified” Xbox game on a standard PC.

  1. The Golden Rule: Abstraction
    The number one reason games fail to port is that developers use Windows-specific code instead of Unreal-specific code.
  • Bad: Writing C++ code that includes <windows.h> or calls Windows APIs directly.
  • Good: Using Unreal’s wrappers (e.g., FPlatformFileManager instead of standard C++ file IO).
    The Rule: If you can do it using a Blueprint node or a standard UE5 C++ class, it is safe. If you have to install a specific Windows driver or library to make it work, it will break on Xbox.
  1. The Plugin Danger Zone
    This is your biggest risk area.
  • Content Plugins (Assets, Blueprints): These are almost always Safe. A pack of 3D models or Blueprint logic will work fine on Xbox.
  • Code Plugins (C++): These are Risky.
    • If you buy a code plugin from the Marketplace, check the “Supported Platforms” list. If it only says “Win64”, do not use it unless it comes with full Source Code.
    • Why? When you eventually get the Xbox GDK, you will need to recompile your game for the console. If a plugin only comes as a pre-compiled .dll file for Windows, it will cause your Xbox build to fail immediately. You need the source code so the compiler can rebuild that plugin for the Xbox processor.
  1. Critical Systems: “Do This, Not That”
    To ensure your game works on Xbox later, use these specific UE5 systems now:
    A. Input (Controllers are Mandatory)
    Xbox certification requires that the game is fully playable with a controller.
  • Do: Use the Enhanced Input system. It abstracts input so you can easily map “GamePad Face Button Bottom” (A button) to “Jump”.
  • Do: Use CommonUI. This is an Epic-developed plugin (built-in but needs enabling) designed specifically for cross-platform menus. It handles the nightmare of “controller navigation” (moving focus between buttons) automatically.
  • Don’t: Rely on “Mouse Click” events for UI. If your menu requires a mouse cursor, you will fail certification.
    B. Save Systems
    Consoles do not let you write files to C:\Users\MyGame. They have strict, sandboxed save areas.
  • Do: Use the standard USaveGame class. Unreal automatically translates this to the correct Xbox storage API when you package for the console.
  • Don’t: Write your own C++ file handling system using std::ofstream or generic file helpers.
    C. Online & Multiplayer
  • Do: Use the Online Subsystem (OSS) interface. Even if you use Steam on PC for testing right now, code against the generic IOnlineSubsystem interface (e.g., “ShowLeaderboard”, “UnlockAchievement”).
  • Why? When you get Xbox access, you simply change the config file to use OnlineSubsystemLive, and your calls automatically switch from Steam to Xbox Live.

To answer your specific question:

“Am I to understand that any UE game is compatible with Xbox?”

Yes, provided you haven’t broken the engine’s abstraction layers by forcing Windows-specific logic. When you are accepted into ID@Xbox, you will simply download a GDK Plugin from Epic, drop it into your folder, and a new option will appear in your “Platforms” dropdown: Xbox Series X|S.
Would you like me to explain how to set up “CommonUI” so your menus work with controllers automatically?