What dev hasn't wanted to code up something that runs on a game console? You've dreamed about that awesome app that you want to write for the Xbox One? You've heard that at Build it was announced that you can now turn your Retail Xbox One into a dev device and write/deploy UWP apps too it?
But how do you get started?
Today I'm going to highlight three posts from Lee Stott, Simon Jackson and Jason Roberts that talk about this, additional coverage of some history, resources and capabilities and finally to a walk-through of writing your first UWP Xbox One App...
At Build 2016 we announced https://blogs.msdn.microsoft.com/uk_faculty_connection/2016/03/31/building-uwp-for-windows-10-on-xbox-one/ Xbox One Dev Mode for Xbox Retails Units. So I know lots of Universities are eager to start building and teaching game development with Xbox One.
Here a quick run down of the requirements to help you get started.
What do the Students think
If you have any desire to become a developer and you have an Xbox One there is one thing you should try today! Microsoft is now allowing any Xbox One to turned into a dev kit for Universal Windows Platform Apps and It works brilliantly.
In a public preview release now and a full release in the summer it allows almost any UWP (Universal Windows Platform) app or game to be deployed to any Xbox One. To try it out I took two apps, one a simple application built using standard XAML controls and the other a causal game I am updating to work with Windows 10 and deployed them to my Xbox.
To my amazement the app worked first time, no code changes, no customisation for controls just deployed it and it just worked. This is due to the platforms ability to manage the inputs across different device families meaning controlling your app works just as well on Xbox as it would on a mobile. The game took a little more work to allow in game controls but it was fairly simple and enabled me to customise what the buttons and joysticks on the gamepad actually do. ...
By now, everyone should have watched or at least heard about the Build2016 keynote announcements from Phil Spenser about development for Xbox One and the opening up / enablement (at long last) of the public “Developer mode”, something long since sought after since the days of XBLIG on the 360 and the previous promises made by the ID@Xbox team about the future of indie development on Microsoft’s latest console.
For getting started info, check out this awesome post by Lee Stott, a DX technical evangelist at Microsoft, who explains exactly what you need to get started:
This has been a long and torturous journey after many promises, supposed delays (although to MS’s account, they never actually said WHEN, everyone just assumed now) and a lot of brushfire reporting about the whole affair. Finally, it is here and the doors are open but what does it really mean? I’ve fielded a lot of questions, questions some (yet more) inflammatory articles that twist and turn a phrase to mean something else and tried to set the record straight, now finally I can actually put keys to action and try and help straighten out the whole state of affair.
Note, these words are my own and not official statements of Microsoft or Xbox/ID@Xbox. Everything mentioned here is public knowledge and out in the open (just clear and concise in one place). Where possible, I’ve added clarity (in response to queries) and strayed as close to the NDA (Non-Disclosure Agreement) line as I have dared. Being an MVP for Microsoft and ID@Xbox has its perks and helping people develop for Microsoft platforms and the Xbox One is one of them.
From what has come before
I’ve been a long standing supporter and technical evangelist for all things game development (or development in general) related, showing all the things everyone needs to know to make great games. A big part of that story started with the XBox Live Indie Game development program, the first stab any developer (outside of a published studio) had to make games cross platform and published on a retail games console,...
The new announcement – what does it mean to develop on Xbox One? ...
What does Retail unlock actually give you?
Retail unlock is primarily there to give you direct access to sideload and publish local apps to your Retail console while developing your app or game. once you are happy, you will upload your app or game to the Windows Store (just like any other UWP app) and publish it for anyone to get access to. This system is pretty much exactly the same system used today on Windows 10 Desktop and Mobile, just enable your device, load and test and then publish to the store.
If you read the press and the announcements from Build, the primary focus of UWP deployment for the Xbox One is Apps, games are still supported and expected but you need to be aware of some performance considerations when building your game for this audience:
1: Resources ...
2: Size ...
3: Multi-platform ...
What does a developer kit give you?
Apart from the obvious release of the constraints in the previous section, using a dev kit simply gives you access to more, however it also has it’s “ways”. Mainly that you need to use a different development environment, a different set of developer tools and resources. The main difference is that you will have a strict certification path and a different set of rules to follow. The Windows Store has a set of certification rules and guidelines as well as testing but it is nothing in comparison to what the full developer experience is on the Xbox.
The main thing to really bring home is that the difference between the UWP retail developer mode and the Xbox native devkits processes are almost night and day in comparison. They are not the same thing and building projects for the Xbox exclusively is a considerable undertaking ....
What development environments support UWP?
There are many frameworks, toolsets and engines that support UWP deployment, most also support Native deployment when you’re connected, it’s just a flip of a switch, a recompile and you are ready. You just need to reach out to ID or the dev agents at the vendor to gain further access.
Some of the most common are:
- MonoGame – Supported UWP from 3.4 and now supports Xbox One native from 3.5 (separate build available through ID for Xbox native)
- Unity 3D – UWP and Xbox One supported from Version 4 and now Version 5 (separate plugin required for Xbox native)
- Unreal – Windows 10 and Native Xbox access supported (Xbox native access through plugin), UWP support is planned, no date yet though.
- CryEngine – Only supports Xbox One Native through a license. UWP support to follow.
- Direct X through MS tools – Of course you can write C++ titles for UWP or Xbox Native (be sure to check out the awesome https://directxtk.codeplex.com/ for help in this area)
- UWP apps and games via Visual Studio or Xamarin.
- GameMaker has a UWP publishing path, no sign of Xbox just yet.
There’s been a number of almost-goosebump-inspiring moments during my .NET dev experience such as the first time I saw my code running on a Windows Phone 7. Another one of these moments was seeing my code running on my Xbox One for the first time.
(Note: this post describes pre-release technology)
It is now possible to take your regular Fallout 4 playing retail Xbox One and turn it into a development machine. This allows the running of Universal Windows Platform (UWP) apps. At the time of writing this is in preview/pre-release status with a final release expected later this year.
There’s a great set of documentation on MSDN that describes the following steps in detail. I’d recommend reading through them all before starting the process as there’s a number of warnings that should be observed before starting. For example “some popular games and apps will not work as expected, and you may experience occasional crashes and data loss. If you leave the developer preview, your console will factory reset and you will have to reinstall all of your games, apps, and content” [MSDN].
Also be aware that, to enable Xbox UWP app development in Visual Studio, the Windows 10 SDK preview build 14295 needs to be installed: “Installing this preview SDK on your PC will prevent you from submitting apps to the store built on this PC, so don’t do this on your production development PC” [MSDN]. I created a new Hyper-V virtual machine so as not to disturb my base machine.
The documentation recommends using a hardwired network connection rather than wireless for better dev performance, I used wireless and for this simple app and it was fine. Also note “…system performance in this preview does not reflect system performance of the final release” [MSDN].
Also note that you don’t need the latest Windows 10 preview build to install the tools, the virtual machine I created was just running standard Windows 10 Pro, though as the following screenshot shows this seems to mean that there is no XAML visual preview in Visual Studio.
Overview of Steps
The following is an overview of the main steps required, once again you should consult MSDN for full details/steps required/warnings.
Step 1: Development Environment Setup
Step 2: Xbox One Setup
Step 3: Connection to Your Xbox One from Visual Studio
Your app should now be installed and run on your Xbox One!