Getting my game on the Windows store

So, I’m trying to get my game on the Windows store. I thought I’d just port it to UWP and be done with it.

Unfortunately, the game is written in C# 10, which is based on .NET 6, and when I tried to just link my code to the new UWP project, I was presented with hundreds of errors, because apparently with UWP you’re limited to C# 7.3. I wasted hours trying to port my code back to 7.3 from 10 only to run into constant issues, including utterly bizarre errors where it worked fine in one place but threw a syntax error in another place. Eventually, when I realized I’d have to port my game library code to 7.3 as well, I gave up on that.

Is there any possible way to use C# 10 with UWP, or some alternative to UWP? I know that the Microsoft store allows Win32 apps now, but that wouldn’t support updates through the store, and also there’s something in the App Developer Agreement that says you have to submit “a link to an installer for App that is hosted on a separate hosting service”. And I don’t have that. Unless it’s saying you only have to submit a link if your app is hosted on a separate hosting service? It really isn’t clear.

I already paid the fee to become a developer, but now I don’t know how I’ll be able to get my game on the store.

None that doesn’t require the same amount of work, if not more if you want C# 10 at all cost.

UWP has been deprecated and is not recommended anymore. It has been superseded by WinUI, which supports .NET 6.
The other alternative for Windows Store apps is the native GDK SDK, which is the current target that MonoGame intends to support (Tom is working on it) but will likely require Xbox console clearance because it relies on currently private console tech (even for running on Windows).

So unless someone makes a WinUI target for MonoGame (which is currently not planned), the only option for Windows Store apps still is UWP with its 7.3 limitation.

(There used to be a third, super hacky option called “Desktop Bridge” which would have allowed hacky stuff like building natively a game with NativeAOT and packaging it with the Desktop Bridge into an UWP app for Windows Store consumption, but since Microsoft has removed most of its documentation, I assume that it has been deprecated/discouraged too by now.)

2 Likes

This makes me want to create a demo game and test publish…

Hmm…

1 Like

Thanks for clarifying.

I’m pretty sure they moved away from Desktop Bridge once they decided to just officially allow Win32 apps without any intermediation.

Since WinUI is the “successor” of sorts to UWP, it would be awesome to have MonoGame eventually target that, but I don’t know how much work that would be or if it would ever be in scope for the project.

If the Windows Store now accepts standard win32 apps, then both UWP and WinUI are irrelevant for MonoGame since pushing any DesktopGL or WindowsDX apps should simply work as-is. We could even just remove UWP and call it a day.

And yes, win32 apps on the Windows Store involve that you host yourself your .exe/.msi, which doesn’t sound like a big deal. Microsoft also provides Github actions to build your app directly with it and distribute it on the store automatically from a git repository, which is really great.

Quite honestly, deprecating UWP from MonoGame and removing it as a target sounds like a good idea for maintainability.

The retail Xbox dev mode still only accepts UWP apps. Also it is only possible to submit UWP apps when targeting the Xbox Creators Program.

That throws me out then…

Legit question: what makes UWP (or WinUI) to stand out in a context where we would have more modern and easier to deploy targets for both the Windows Store (GDK, WindowsDX, DesktopGL, DesktopVK) and Xbox (XGDK)?

If it’s about publishing on Xbox without ID@Xbox, it would feel peculiar to me because it is accessible to join ID and just tap into the XGDK. Also, the UWP part of the Xbox is unmaintained and with the store likely to move away from UWP entirely, it is plausible that it is coming to an end beside side-loading (which enters into the “homebrew” scenario which MonoGame doesn’t intend to endorse so far).

Also, removing a target doesn’t mean that it wouldn’t be usable anymore. Previous versions of MG will continue to exist to target platforms that may be removed from future versions.

(And so far it’s just me hypothesizing here for the first time, so we’re clearly not talking about tomorrow.)

TL;DR;

[I deleted a 1,000 word writeup…]

Need more setup guides…

“homebrew”
I have zero interest in this too.
Sideloading should remain in the enterprise area…

I think the best fix to all this is assisting in asset security, and detailed guides for platform setups…

I have no idea how to get MG running on say a KindleFireHD, or a Surface DUO 2+, it is a literal minefield… for over 5 years…

Anyway, hope that input helps somewhat…

AFAIK both devices are based on Android or a modified version of it, which isn’t relevant to UWP.

Android is its own hell, so no surprise there. There are hundreds of different SDK for Android-based devices, it is impossible to target them all and not the role of MonoGame to consider the specificities of the current 21 987 different Android devices listed in Google’s Playstore dashboard (of which MonoGame should be compatible with about 16 000 of them, which is a great score compared to many other frameworks). If someone needs to support them all, they’re off to a life long quest of impossibilities.

3 Likes

And now you understand why I love UWP :stuck_out_tongue: EDIT and MonoGame

If the plan was to trap me into exposing the most convoluted platform ever to make another one to stand out… well, that would have worked with basically every other platforms possible because literally anything is better. :rofl:

But the question wasn’t quite related to “do you like it?” but to “how is it more useful or easier to work with than any of its replacement?”

2 Likes

Straightforward install and go, I get XAML UI controls, and more…

Not to mention not requiring save files for app settings!

{I may have found a way to circumvent save files entirely, inside UWP!}

Some old videos…

So glad I am not the only dev who considers Android the dumpster fire that it is…

I should point out I am also a XAML UWP dev with apps on the store…

Currently working on an app that could help people save money and understand how electricity works… shocking, I know… [See what I did there?]

If it can be avoided to remove UWP until it meets a demise if ever, I would truly appreciate it.

If we can get a package which supports Surface DUO out of the box, [Assuming they announce a DUO 3 soon, if not I hope they announce an actual Phone OS again, not a reskin trash heap…] then I could work on something interesting with interest…

Anyway, things have hit an all-time high for me lately, and news of such may be announced soon, just err, will have to sign up for that ‘Patronising’ thing soon… :sake:

I fully support the MG Framework regardless of where it goes, so long as it has a future!

[In other words, I still want to dabble!]

EDIT

The flying around video was over 10,000 paper plane models flying around…

EDIT

Debugging is somewhat easier,

I understand the pipeline

Edit and Resume of the XAML UI is handy

Adding a content page inside the app is simple

There are plenty of resources to assist in coding [Well, pre-2020 anyway, new stuff is not being published in books much…]

I can test on an xbox and publish as a standard app instead of using ID@XBOX, only limited by RAM usage or something… not tested but just avoid the share charm…

The Windows Store Dashboard is usually straightforward and integrated into Visual Studio

I can understand the template files for UWP and walk through the processes they use to display MG

I can create a UI without needing to develop another UI framework hang on, got a song for that…

The workflow for UWP is so simple, it takes minutes to get CFB to display…

I am writing this all with a hangover… there are more plus points but, yeah…

2 Likes

The Xbox platform may very well stop supporting UWP eventually, but as long as it still supports it, the Xbox Creators Program has the advantage of a lower barrier to entry than ID@Xbox. For instance, the former doesn’t require signing an NDA while the latter does.

That said, MonoGame stopping support for UWP in future versions seems reasonable to me. Like you said, prior versions of MonoGame will still support it, but obviously without any of the bug fixes or benefits brought to later versions.

Having to host my own installer is a weird requirement that other platforms like Itch.io and Steam don’t have. I don’t really get it. It’s a lot of extra work and cost, right? Having to pay for internet hosting and set up a server or whatever? Why wouldn’t Microsoft just allow me to upload the game files like the other platforms? And the Github CI/CD thing, while cool, costs money, unfortunately.

Edit: Just noticed that free Github accounts include 2,000 minutes/month of CI/CD.

2 Likes

I have released a screensaver using the Desktop bridge thing, it’s horrible but works. As you say they don’t want to document it a lot, but I am quite sure it is still supported because they have to.

I almost fell too deep into UWP because i used Silverlight for my prototype, but the graphics were too slow. i went through the Async cancer for a month only to see zero benefit, then rip it al out when i ditched UWP, then wrapped the desktop app i have to make anyways, to windows store package thing and it worked… ( or used to)

I was burned by Silverlight and twice burnedby trying UWP, but i jumped out faster this time… WinUI is just one of interna competing MFST GUI frameworks some or al of which will get the knives internally 9/10… I love XAML, WPF concepts, and theres Myra and Avalonia and WPF still works, becasuse ts so old now it has to. There is Silk, Maui and there They did fix SOME UWP performance isssues ( its using COM and marshalling to do graphics from when windows Phone was alive ) just before they killed it. Since Jurassic park Tresspasser from 1994 is still bought on CD and runs i dont expect win32 to be ever killed, so i tried the wrapper to make a Winstore app and it worked ok but ive since stopped testing it.

Its sad Xbox has no indie dev program anymore. Cuphead did well on the windows stroe but Then i realized another reason not to deploy on Wndows store or do UWP… The windows store sucks and continues to suck. i stil barely use it now for most big apps come as windows desktop download as admin, installl, and use as admin. There is NO default security in windows, permission are just being hacked in. I run bloated VPN and superantispyware rather than log in as a normal user. Even non devs are admins.

So i decded to focus on steam. If you deploy on Steam , and someone buys a token, then switches to a super fast OLED mac, they can still own and play your game. With Windows Stores they are locked in. Windows store has an ad revenue model that was killed, and is nothing like Google Play , which you can actually make money from from people who dont even have bank accounts they can watch ads when they run out of lives or something.