Fork me on GitHub

Friday, August 7, 2009

TechVi: Zune Development with XNA

First and foremost, I want to thank the gents over at TechVi for inviting me to contribute to their program. It's always nice to work with a bunch of smart and driven folks. That said, as I just came on board today I was going through some of the previous shows to see what I was getting into. As I was taking a peak at the recent ZuneHD spot some comparison between the iPod Touch/iPhone caught my attention with the mention of application development on the Zune, which came across as a rather bleak outlook. I just wanted to point out some of the things Microsoft has been working on to that regard to give a little more clarity.

To be clear, I'm no expert with the Zune (my Touch Pro is a perfectly sufficient MP3 player for me), nor am I personally up to date with the development technologies I'll be pointing out. I have, however, been watching Microsoft's strategy for many years as they've moved forward and I have my own hypothesis to make about the future of development in this regard. Now, to the point:

Over the last few years Microsoft's .NET Framework has been gaining a lot of ground in the development industry. One of it's challenges early on was that, while well designed for desktop and web applications, it was not prepared for one of the most sought after markets in the technology industry: games. Those of us who were knee deep in trying to figure out ways to make good games while still leveraging the power of .NET during these early days may even remember Microsoft releasing an unsupported Managed wrapper for DirectX with the DirectX SDK. Not long after (but long enough for plenty of us to have started dabbling with it) they yanked the good stuff right out from under us. Turns out Microsoft was moving to a new platform altogether. Enter XNA (the clever buggers went and took the recursive acronym to a new level, XNA stands for "XNA is Not an Acronym"). It started a bit rough, but, as with any other Microsoft development technology, ultimately turned out to be generally viewed as really well planned with great tools and a lot of opportunity ahead.

Since it's mention in 2004, XNA Game Studio is up to version 3 and now offers 2D and 3D game development support and runs, in some capacity or another, on Desktop PCs, XBOX 360, and Zune. The platform is based on a modified version of the .NET Compact Framework which is a reasonably capable and very easy to use development platform that facilitates a powerful, easy to read/write, well organized environment. Using this technology it is possible to develop a game that will run on all three platforms with little to no change in the code. In order to leverage this to compete with Apple's App Store it may be necessary for Microsoft to rethink their distribution model (currently they offer a paid subscription only designed for XBOX 360), but as a development platform it is very clean, easy to use and powerful.

I don't know what Microsoft intends to do about distribution, but I can at least speculate on one more change that seems innevitable for the future. Early on the intention to support Windows Mobile devices with XNA alongside the XBOX and Desktop PC seemed obvious, though over time have faded from memory. Zune managed to get in the door first, but I still see the handheld OS now commonly found on phones in XNA's near future. I've been toying with Windows Mobile 6.5 and an unreleased version of the NetCF runtime (listed currently as version 3.7). One of the first things I noticed while playing with the new runtime is that it no longer includes the mobile Managed DirectX library. Some speculate that it's because OpenGLES is so dominant in the portable industry, but this feels rather reminiscent of the last time they wanted to make a move to XNA. The Windows Mobile platform will be much harder to target than XBOX and Zune were because of the great variety of hardware that it runs on and their varying capabilities (much like the desktop version), but since XNA is based on the Compact Framework it seems like an innevitable move, leaving the bulk of my assumption on the "when" side. I guess now all we can do is wait and see.

No comments: