Xbox port obsolete and not accepted into certification

I noticed the following when reading the Board Meeting Minutes at Board Meeting Minutes - 2023-11-15 | MonoGame

  • Implement the GDKX target for Xbox and PC/DX12 (because the Xbox port is currently obsolete and not accepted into certification, so it’s blocking for any xbox dev)

Does it mean the current version of MonoGame can’t be accepted by MSFT ? Like, there’s some library version issue (or some other reason) ?

I was under impression that the Xbox port was translating C# into C++, thus it was still targeting regular DirectX, right ?

Are there any workarounds to get the MG game running on XBox ?

As of today your choices are to make a UWP-packaged game and publish via the Creators Program (no concept approval required), or port to FNA (using their GDKX Xbox target) and publish via ID@Xbox (concept approval / NDA / Microsoft Partner / etc process required).

However, given that the new MG foundation is setup and kicking (and well funded at least for now), and they’re obviously aware that the lack of a GDKX target is blocking for ID@Xbox devs, I would expect we’ll be seeing a GDKX MG target in the near-adjacent future. :slight_smile:

1 Like

That’s very interesting. Why would MSFT allow UWP-based executable of MonoGame but not for ID@XBox ? Security concerns perhaps ?

Of course, given the “data-mining” pop-up of UWP-based games, that’s not an option.

So, the MonoGame backend has to be refactored against GDKX ? That’s not going to be a weekend project…

Ironically, I do have a DirectX11/C++ 3D engine myself so maybe I should go that route, but I would love to have multiplatform engine given how much work went into the XNA project…

I spent last 2 days porting from XNA 4.0 to MG and it’s going pretty well…

There are other aspects to be aware of besides the notice, you have limited resource access such as 2GB RAM usage.

Unsure how valid this is presently, but yeah.

Just got rejection from ID@Xbox since my game is UWP. So, there are only two solution so far: FNA or Creators program, am right? Any news about GDK support?

You need BRUTE but now with .NET8, there is a bounty to modernise the console development with NativeAOT, so, technically, it may be a good idea to take a look at that [You still need to be under NDA I think for the bounty] and see if it is something you can tackle to push it forward, otherwise, lookup BRUTE and how to join that for the time being.

Keep us updated.

The GDK build is currently in development and targeting release as a part of MG 3.9.0: [PAID BOUNTY] [LOCKED] Implement the Direct3D 12 / GDK/GDKX backend · Issue #8195 · MonoGame/MonoGame · GitHub

Getting BRUTE won’t help you for an ID@Xbox release, since that build was setup for XDK.

Until MG supports GDK/GDKX, if you want to publish with ID@Xbox, you will need to port your Xbox build to FNA.

1 Like

My game is in 3D with some custom shaders and I also use bephuphiscs2, is porting to FNA is a straightforward or it is a painful process?

Well, I don’t think I’d say it’s “straightforward” necessarily, but it’s not like you’re switching languages or anything. So, as porting jobs go, not that bad.

Getting the Xbox build setup to begin with can be a bit finicky, but once you get your cornflower blue to show up on your devkit you mostly just need to attack each caveat/difference point between FNA/MG and platform differences between PC/Xbox. I.e. your shaders will need to be purely HLSL and compilable via FXC, you won’t be able to use any mirroring, file storage for game saves and what not will likely need to be handled differently, etc.

Some basics here Appendix D: MonoGame Compatibility - FNA Docs and here Appendix B: FNA on Consoles - FNA Docs

I recommend starting with porting your game to FNA for PC, then worrying about running it on Xbox after. That way you’re only attacking the MG vs FNA issues first, then can handle PC vs Xbox issues by themselves after. Especially if you’ve never ported to another platform before.

I already ported my game to all the platforms available to me (iso, tvos, andorid, mac, linux), but it was not easy journey, especially make it work on appletv was something. Anyways, I will try FNA and in case of success will share my experience.

2 Likes