A Warning For UWP Xbox One Developers

Hey everyone, I’d like to send out a warning to developers considering Xbox One development using the UWP route. I’ve had a game breaking issue that keeps reoccurring with my players and it seems like the only solution is to make my game using the native / XDK route. In retrospect, I wish I would have done this, so hopefully this info can save others some pain.

Let me start off by saying that the issue I’m having is with my game The Path of Motus. It’s a UWP title using MonoGame, but Unity UWP developers are reporting the same issue as me. I’m also publishing this game through the ID@Xbox program, so perhaps the issue doesn’t occur in the Creator’s Club. The ID@Xbox team is amazing and releasing on Xbox One has without a doubt been a 10/10 experience, but unfortunately the issue I’m facing is on the technical side of things.

Immediately upon launch in July 2018 I started getting emails from users that were unable to connect their Xbox Live account to my game, which blocks them from actually playing the game. For those who don’t know, we’re required to “sign in” Xbox Live users using the Xbox Live API (XSAPI) so their accounts become connected to our title. Devs must sign in users before gameplay starts so achievements and such can be registered to their account. My game was thoroughly tested in certification and no one ever ran into this issue. Additionally, this is not happening to everyone… only certain users are blocked from signing in. Because XSAPI’s Sign In is failing, some users get stuck on my “Loading” screen unable to progress, while others get stuck in the Main Menu waiting for their account to correctly sign in. I’ve been unable to identify what is different about the accounts that are failing vs the ones that succeed. Luckily, most people are able to sign in. I’ve only had ~10 people report this issue to me personally, but I imagine others have either refunded the game immediately or contacted Xbox Support instead.

When this first happened at launch, I assumed this was a “player error”; when UWP games launch you’re asked to accept or decline some permissions… if you decline the permissions your account won’t sign in. This was legitly the issue for a few people, but others accepted the permissions and were still unable to sign in. Yesterday I had two new players email me with this problem, so I decided to look into it again. That’s when I found other UWP developers writing about this problem, and one even reported it as an issue on the XSAPI GitHub in November: https://github.com/Microsoft/xbox-live-api/issues/512 Unfortunately, his ticket was closed because the team couldn’t recreate the issue. He provided them with a stack trace from the Sign In error, but apparently they need a fiddler trace to track the issue down. This is a problem for developers, because we’re unable to recreate the issue on our accounts… it’s only happening with specific customers.

At this point, I’m basically having to tell people “sorry, there’s nothing I can do, please refund the game”, which really sucks… The people I’m talking to have been really understanding, and if the XSAPI team wants to look at the issue further I’m sure these people would be willing to provide additional details about their accounts. If anyone reading this is able to make this happen, let me know and I’ll connect you with them.

Until then, I’d recommend all developers to use the native / XDK route for Xbox One development (MonoGame has a branch for this and it works great). Besides not having this issue, I believe the documentation is clearer and I imagine you’ll get better performance too. Perhaps UWP is best suited for Creator’s Club games, while XDK development is best suited for ID@Xbox titles. Thank you for reading.

3 Likes

But… what is this and where does one start with it? also, is it easy to port to or is it a whole new paradigm of coding?

Thank you for sharing this post regardless.

The XDK XB1 branch of MonoGame basically converts all of your C# code to C++ and then compiles that for Xbox One. Unfortunately, I think you have to be an ID@Xbox developer to get access to it… but if you’re a verified developer you can get access to it through that channel. You’ll have to code a little bit of C++ to connect your game with Xbox Live services, but other than that it’s pretty hands off. I don’t think games shipping on the Creator’s Club can use this route, I believe you’re required to use UWP.

1 Like

Creators Club? what’s that?

I think he means this…
https://www.xbox.com/en-us/Developers/id

creators club was for xbox360 and xna
https://marketplace.xbox.com/en-US/Product/XNA-Creators-Club/66acd000-77fe-1000-9115-d802584e07d1

1 Like

I figured it was something obsolete… thanks!

Well i don’t think its obsolete just that term, i think the name has been changed to creators program.
Think it can still be used for publishing to xbox one, as monogame is listed on the creators program site.
https://www.xbox.com/en-US/developers/creators-program?xr=footnav

1 Like

Thank you very much for sharing this. We have plans for Xbox One support in our upcoming title and I’ve been torn between going the UWP or XDK route. I have a lot more experience using XDK from previous jobs in the AAA industry, but prior to this post was leaning towards UWP because there is little concrete information I’ve been able to find on how well MonoGame works going that route. Definitely going to spend some more time considering this now.

Out of curiosity, do you have a PC SKU which uses UWP as well? Wondering if this is exclusive to the console’s implementation of UWP under the hood or just a global UWP issue?

Also, best of luck getting this sorted. Hopefully ATG will be able to get a reliable repro on their end and then should be able to get it handled.

I must say I have 5 games in Creators Program and none of them (yet, at least) seems to be experiencing those problems, except the ones of the users bitterly complaining about the amount of data the game uses (which if you use leaderboards are a LOT).

I haven’t update the games in ~4 months though. Maybe it’s a problem of the latest live SDK version in NUGET?

Xbox ID is just not an option for some.

Yeah, I used the old name sorry… I believe it’s called the Creator’s Collection now. Basically it’s XBLIG 2.0.

The XDK path works great. The only issue I know of is that it currently lacks support for videos. Other than that, as long as you’re ok with touching a little C++ it works amazing.

I haven’t released a PC SKU so I can’t comment on that. I don’t think you’re required to use XSAPI on the PC so you can probably get around this problem.

It’s possible the issue doesn’t exist on the Creator’s Program, but I’m doubtful because I believe both types of games are processed through Microsoft’s Developer Center etc. The large majority of my players aren’t experiencing this issue, but even having this happen to one person is really painful.

Helpful post for me planning to make a simple game to try and leverage Live authentication. I wonder if going woth UWP but using Playfab would work. It would be interesting to hear if anyone has experience using that combo.

1 Like

Wait, what’s this? good thing I re-read the OP…