Back in December I wrote a blog with an update on the state of Construct's Xbox support, based on Microsoft's new support for WebView2 on Xbox. There's more news to share, so here's another update!
Xbox Live UWP plugin
I was finally able to get the Xbox Live library to compile and duly wrote and published a new Xbox Live UWP plugin. This allows for integrating with Xbox Live services, including:
- Sign in, and information about the signed in user
- Presence (updating if the user is active in the title)
- Update achievement (set progress/unlock)
- Title storage (upload, download and delete blobs)
It's a fairly minimal set of features, but as with our Steam and Epic Games integration, the plugin source code is up on GitHub so anyone can customize it as necessary. The really difficult part was even getting it to compile it at all, but that's been done and everything's already configured to work, so any further additions should be easier.
The plugin uses the Microsoft.Xbox.Live.SDK.Cpp.UWP library, which has not been updated since 2018, only compiles with Visual Studio 2017, and Microsoft describe it as "community supported". However there is not currently any better option for us to use, so I've spent the time to get that working. Fortunately our wrapper extension architecture means you only need Visual Studio 2017 to build the plugin's DLL (XboxUWP_x64.ext.dll). That's then bundled with Xbox exports which can then be used with any version of Visual Studio. So you can export your project and open it with Visual Studio 2022 and use that to test and publish your project. You only need Visual Studio 2017 if you want to change the DLL to customize the Xbox Live UWP plugin itself.
Publishing status
So there we have it - we have a working Xbox exporter and a plugin that allows integrating Xbox Live services! The main limitation is what publishing options Microsoft allow with the UWP technology. The technology itself works fine, and web technology is robust enough to make great titles - that is not at all a problem.
I have not seen any public documentation saying that you can't publish UWP games to ID@Xbox, but it may be the case that UWP games can only be published with the Xbox Creators Program. That would be a shame, but as my previous blog says, we have no other good option at the moment, as Microsoft have only released WebView2 for UWP. If they supported WebView2 with the GDK, we'd definitely support that!
This seems to be a Microsoft policy rather than technical limitation, so perhaps there is wiggle room. If you have an issue with this, please talk to Microsoft - it's in their hands. I suppose it's theoretically possible they could make an exception for Construct games as there is no good other option other than going for a full port via a third-party company even though WebView2 works great, but that's up to Microsoft.
I am not sure if what we've implemented covers the minimum certification requirements for publishing. I have been trying to get IDyvh@Xbox to talk to me since November. They've not answered any of my emails. Microsoft, if you're reading this, please get in touch and I'd be happy to talk! If any game developers have contacts on the Xbox team, I'd be happy to talk to anyone there. If it turns out there is something else we need to do to meet minimum certification requirements, and it's feasible for us to do it, then we'll do our best to meet those requirements.
Conclusion
So if you have a game you want to try publishing to Xbox, you can now give it a go with the latest release of Construct! You can export a Visual Studio project that runs on both Windows and Xbox, integrate Xbox Live services with the new plugin, and use Visual Studio to test and publish like any other Xbox project. It remains to be seen how it goes with publishing, so we're interested to hear any feedback from anyone who goes for it. Let us know! And if you want support for the GDK - ask Microsoft, as the more people request it, the more likely they may be to do it. See the section A call to console makers from my previous blog post - it's beyond doubt that web technology is capable of handling great indie titles, and I think there's a good case for better supporting it.