Bill Reiss is a Windows Platform Development MVP and a Senior Consultant for AgileThought

All posts in Windows 8

I had a great audience today for my presentation on using C++ and XAML to create apps for Windows 8, I wasn’t sure what the interest was going to be like but it turns out that a lot of C++ developers are interested in learning about developing apps for Windows 8.

Overall I thought the presentation went OK, I ran out of time and had a couple of glitches with the demos but the good news is that I’m making all of my materials available including slides, demo script, and source code. You can download the package here:

http://www.billreiss.com/wp-content/uploads/2012/03/Win8XamlCpp.zip

Feel free to take pieces or all of this and use it as you want but if you republish or use it in a presentation I would appreciate attribution and a link back to my blog.

I’ll be taking some of this material and creating posts out of it in the near future.

I’ve been running the Windows 8 Consumer Preview on my personal laptop as my primary (and only) OS since it was released at the end of February, and for the most part it’s been a good experience. There hasn’t been much that I miss since almost everything works. The one major exception to this was that the Windows Phone emulator wouldn’t run. You could still compile your apps and deploy to a device, but not having the emulator was a major limitation, especially since I will presenting at the Orlando Code Camp this weekend and one session is on Windows Phone so last night I broke down and set up a dual boot of Windows 7. It figures that they day after I did this that Microsoft would release support for the Windows Phone emulator in Windows 8 Consumer Preview.

This support comes in the form of the official release of the Windows Phone SDK 7.1.1, an update to the 7.1 SDK which allows you to develop and test apps for 256MB “Tango” Windows Phones.

So here are the steps I followed to get the environment up and running.

1. Install Windows 8 Consumer Preview (duh) – Can’t really go much further without this, you can download it now. In order to run the emulator and have it perform well, you’ll want to either install it as your primary OS or dual boot from a VHD. You don’t want to run in Virtual PC or something similar because the emulator takes advantage of hardware acceleration.

Note that if you install it as your primary OS you’re better off installing it clean instead of upgrading since there was an issue with registering to develop Windows 8 Metro Style apps after upgrading from Windows 7, not sure if this is still an issue, if you know this is fixed please mention in the comments and I’ll update this post.

Update: Reordered steps 2 through 4, and made 3 and 4 optional. Ginny Caughey pointed out that Windows Phone SDK 7.1 will install Visual Studio 2010 Express and related updates if Visual Studio is not installed.

2. Install the Games for Windows Marketplace Client. If you don’t do this, XNA Game Studio (which is included in the Windows Phone SDK) will not install properly.

3. Install Visual Studio 2010 (optional, the Windows Phone SDK will install Express if Visual Studio 2010 not installed).

4. Install Visual Studio 2010 Service Pack 1 (only required if you do step 3).

5. Install the Windows Phone SDK 7.1. Yes, that’s right, you need to install 7.1 first, the Windows Phone 7.1.1 SDK requires it.

6. Install the latest Async CTP for Windows Phone (optional) This will make it easier to create cross platform Win8 Metro/Windows Phone libraries (where the code can be shared). Thanks to Jay Kimble for this tip!

7. Install the Windows Phone SDK 7.1.1 Update.

8. Profit! You should now be ready to go. The 7.1.1 SDK also includes an updated Microsoft Advertising control which is supposed to fix some issues.

9. While you’re at it, install Visual Studio 11 Beta. You can’t develop Windows Phone apps with it yet, but it’s a great time to get started writing Windows 8 Metro Style apps. Visual Studio 2010 and Visual Studio 11 Beta will happily coexist.

Just when Microsoft was getting to the point where it looked like XNA was going to be the unifying game development technology across platforms the BUILD conference came along and they dropped the bombshell that XNA wasn’t an option for creating games to sell in the new Windows 8 Store. This seemed crazy at the time, and I still think it is since Microsoft is losing out on all of the games developed for Xbox Live Indie Games and Windows Phone over the last few years. These would give an instant boost to the fledgling store and I’m sure that many of the developers that created these games would do what it takes to move them over.

There are no indications that XNA will have any new releases, and some key team members have moved on, with the latest being Shawn Hargreaves who is now on the Windows Phone team working on undisclosed projects.

Michael Klucher, a key XNA team member who was involved in the original port of XNA to Zune among many other things moved on about a year ago.

GDC is around the corner, and I would expect to hear a lot more about Microsoft’s game development strategy going forward but I’d be very surprised to hear much about XNA.

It seems that Microsoft is unwilling to take some short term gains instead focusing on where they want the technology to go moving forward. Here is a quote from Shawn Hargreaves which I think sums it up nicely:

If you want to make games for Windows 8 Metro, XNA is not an option. Take your pick out of C++/D3D, C++/XAML, C#/XAML, Javascript/HTML5, or one of the third party C#/D3D wrappers.
If you want to make games for Windows Phone or XBLIG, XNA remains your best option, just like it always has been.
If you want to make games for Windows Classic (XP, Vista, Win7, Win8 desktop mode), you can use whatever programming technologies you like, including XNA, just like always.
Hopefully that ends your confusion?

One question mark is still Windows Phone 8, although XNA games will run on Windows Phone 8, there are also indications that Microsoft will be adding C++ to the options for developing games for Windows Phone 8.

So what will I be doing? I have an open source .NET 2D game framework called Frolic that I’ve been working on which abstracts out the rendering technologies to make it easier to adapt to these changing times and to avoid a lot of the lock in to a particular technology. It currently can use either Silverlight or XNA for its rendering and I have a prototype working on WinRT. I’ll also be looking at how I can use some of the concepts I developed in Frolic in C++ for Metro Style apps. Finally, I’ll be listening closely to what comes out of GDC and the Mobile World Congress related to Microsoft game development strategies.