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.