Monogame, Xbox One, and the Creator's Program

So… is anyone here part of the Microsoft Creators Program?

https://developer.microsoft.com/en-us/games/xbox/xboxlive/creator

I applied and was accepted to the beta program.

I’ve been working on updating my XNA game as a Monogame UWP, and I think I have it all working. On my local PC, at least. I don’t own an Xbox One, but I feel like I’m in the right position to buy one, put it in Developer Mode, and see if my game works on it.

If anyone else has been accepted to the MSCP, I’d love to hear from you, where you are in your setup, etc. There appears to be a lot of “paperwork” to fill out on the developers site. Ratings, metadata, screenshots, etc.

Or, any other general discussion regarding the MSCP, as I don’t see a thread about it yet.

I’m a little new here, so I hope this isn’t inappropriate. Thanks!

1 Like

So, first question…

The SDK comes in configuration for both UWP and XDK, for both C++ and WinRT. If you are part of the Xbox Live Creator’s Program, you can only use C++ for UWP. If you want to use C#, you must use Unity.

So… using Monogame, how do I access the Xbox Live SDK if I can only use the C++ one?

1 Like

There was mention of a transpiler, Konaju or Tom should drop by here shortly and let you know where to go…

I wanted to join but not having an Xbox at present nor a game in development, felt a bit too early to sign up… however I am happy to learn anything possible in advance so just tagging in here…

Can you PInvoke it ?

The C#-to-C++ transpiler is for games using the XDK. UWP-based games still use C# and the .NET runtime.

Where did you see “you can only use C++ for UWP”? Post a link?

1 Like

I found it.
https://developer.microsoft.com/en-us/games/xbox/docs/xboxlive/get-started/getting-started/getting-started-uwp

I’m not sure why they say that. I don’t have a Xbox One myself, and haven’t touched UWP apps yet. The Xbox Live Creators Program is only a week old, so we’re still learning as well.

1 Like

Welcome!

I’m not part of the Creators Program yet, but I do have a Dev Center account and I’ve been deploying and testing UWP apps to my Xbox One for the last few days. So I might be able to answer some questions about Monogame UWP apps on the Xbox One, but this is all very new to me as well.

If you’d like to read about the deployment process and some issues I’ve encountered, check out the Xbox One Development section in this guide I’ve been working on: http://rawgit.com/MrGrak/Monogame-Getting-Started/master/index.html

Hope this helps.

2 Likes

THANK YOU! :heart::heart::heart:

That’s such a relief!

I should add, using the UWP Share feature will fail your app, this happened to my apps recently and as almost all my current apps make use of this feature, I had to skip XBOX as a platform, hmm I do have one that does not use such a feature, will try to add it to the supported platform list and see if it throws any other fails on my next update…

But as long as you do not use the share charm feature, you should not have that issue.

Well, like I said, I have my XNA-to-UWP game up and running on my Windows 10 PC. Maybe I’m ahead of the curve here.

Visual Studio 2015 is all linked up with my dev accout/store stuff, and I can upload the package to the dev site. I’ve filled in all the metadata stuff that I can, and everything appears to pass muster. That is, the package is verified when I create a package locally, as well as when I upload it.

My assumption is that I’ll get my Xbox set up, put it into Dev Mode, and be able to deploy my game to it and see it work.

After that, it would be nice to fold in some Xbox Live features. Really the only thing I would like would be to get the Gamertag for each player… I currently have no idea how to do that, or if it’s a show-stopping requirement.

I’ll keep you updated.

1 Like

There is a comparison list here:

https://developer.microsoft.com/en-us/games/xbox/xboxlive/creator

Scroll down a little…

Alternatively, you could create your own system using a custom ASP.NET app… but how that works on XBOX, I do not know… don’t EA and the lot use their own user services? or do they integrate XBLive members and cross reference everything or something?

Worth investigating…

EDIT

Found the below
https://developer.microsoft.com/en-us/games/xbox/docs/xboxlive

https://developer.microsoft.com/en-us/games/xbox/docs/xboxlive/using-xbox-live/auth/authentication-for-uwp-projects

I am assuming WinRT means C#… No idea…

Now, when it says…

Multiplayer Not supported for the Creator’s Program…

Does it disable certain network access? hmm…

I think I need an Xbox at some point… perhaps Project Scorpio…

It would be really great if this could be integrated with the built-in XNA namespaces (if I recall correctly there was this Guide class that could be used and worked at some point with the iOS Game Center - not sure if it is still there).

I found a solution. Microsoft has a C# version of the Xbox Live API. It works like the C++ version: https://github.com/Microsoft/xbox-live-api-csharp/

2 Likes

We should promote that repo.

2 Likes

How?

Ta ta daa da da dee dum… [Well had to add more text…]

Nice. Thanks for the link to the C# Xbox Live SDK. I’ll give that a shot.

In other news, my Xbox One arrived last night. I didn’t have a whole lot of time, but I was able to put it into Developer Mode and get my game deployed. As far as I can tell, it ran perfectly! So that feels like pretty good news. It’s not bad news, at least.

I still need to get myself familiar with the Xbox dev stuff. There’s a lot of settings for Portals and Sandboxes and test accounts and stuff that I don’t wholly understand. But I’m splashing around. :slight_smile:

1 Like

this github project is no longer available. Is there a replacement?

EDIT: ok, it seems to be nuget-based now.

Can you link the NuGet here?

In the nuget manager in VS, just type “xbox live” and the packages appear. EDIT: Creating an XboxLiveUser crashes though, so I don’t know how good my “solution” is :sweat_smile:

1 Like

The NuGet is Microsoft.Xbox.Live.SDK.WinRT.UWP

Open your MonoGame project in VS17 and do the following:
1/ Right click references
2/ Click Manage NuGet packages
3/ Click Browse
4/ Type Xbox in the search and choose Microsoft.Xbox.Live.SDK.WinRT.UWP, then click install
5/ Close the solution and open it again
6/ Click to expand References and click the Visual C++ reference with a yellow exclamation mark to clear it

To confirm this has worked type Using Microsoft.Xbox.Services; at the top of your project (better to type instead of paste so you can see if the autopredict can see the reference)

You will also need Microsoft.Xbox.Services.System

To pass certification at a minimum you will need to have a signed in user and display the gamer tag

Now that you have the Xbox library working you can declare the variable XboxLiveUser user;

Unfortunately this is as far as I managed to get

When I do user = new XBoxLiveUser(); in the initialize section I get a stack overflow error
When I put it in the game loop (using a Boolean to ensure it is called once) the game crashes out with no error

This website describes the process but in another language

Another tip is Unity comes with VS17 and it has the Xbox cs files (in C#) accessible. Follow this link

And then do the “Import plugin” step

Go to the Assets\Xbox Live\Scripts path of your project and you’ll see files written in C# for users, profiles, leaderboards etc…

Some of it is hard to read as it is unity language. Others require jumping from one file to another as you attempt to follow what is going on. It will take some time for somebody to reverse engineer this and adapt it to monogame. Particularly as simply calling a new XboxLiveUser() doesn’t seem to be working in three different spots I have tried

I hope I have given somebody a boost in the right direction but I really hope somebody can work this out and document it for the MonoGame community

I should be a simple step by step process that shows the minimum code required and where it needs to be implemented (just like the link I posted with the javascript version)

Thanks in advance

1 Like

actually I’m at the same point as you: crash creating the XBoxLiveUser. Will report if I find a solution.

There are some extra steps I’ve done. I’ve created a new app in the Windows Store devcenter and created a sandbox to test, activated it, and added xbox live accounts .
( it is very well explained in the first steps of this tutorial: here https://www.construct.net/es/tutorials/using-xbox-live-in-uwp-apps-3 . )

However I’m unable to log in with the test account in the XBox once I change the sandbox, so I can’t test the game in the new sandbox at all.

(my “theory” was that once the sandbox is created, the user creation would no longer crash, but I’m not sure of that because a function call should never fail like that, even if it hasn’t permisions to use XBox Live SDK)

1 Like