UPDATE 31 Oct 2012: One year on and I am no longer as optimistic as I was when I wrote this 🙁
UPDATE 31 Jan 2013: There has been an official communication from Microsoft that “XNA Game Studio is not in active development”. Also that “DirectX is no longer evolving as a technology” and that “XNA/DirectX will be fully retired from the MVP Award Program” (drat).
As an MVP, I received the same distressing email. But I’ll leave the analysis to Promit, who has already put up an excellent blog post about it.
Yes, that’s the same Promit that prompted the original article, below. Seems he was right on the money and I was, sadly, quite wrong 🙁
Promit Roy (a fellow XNA/DirectX MVP) has written an interesting article about the status of DirectX and XNA. You should read it, because it’s good, and because this post is somewhat of a reply.
The short version is that Microsoft seems to have taken the DirectX SDK off its regular release schedule, and is instead rolling it into the Windows API. And that XNA is not a first-class citizen in Windows 8 (not supported by Metro or the Windows app store).
Promit’s conclusion is that this spells the end for XNA. In fact, ever since the //build/ conference, there has been a lot of doubt floating around about the future of XNA.
Based on what I know about the technology, I am a little more optimistic about XNA’s future.
XNA is based on DirectX 9. DirectX 9 doesn’t work on Metro (Microsoft’s new touch-friendly interface for Windows 8). It will still work on Windows 8, but will switch the interface to “classic mode” (aka: “the Desktop”). XNA would need to target a newer version of DirectX in order to work with Metro.
In XNA 4.0 (the current version) they dropped all of the DirectX 9-only features in anticipation of a future move to DirectX 10/11. But they’re still using DirectX 9, for two very good reasons:
One: DirectX 9 is the last version of DirectX that works on Windows XP (DirectX 10 and newer require Windows Vista and newer).
Two: Xbox 360 games are programmed using an API that is similar to DirectX 9.
XNA is, in essence, a wrapper around DirectX. There is nothing in XNA itself that requires any special “platform stuff”. There is absolutely no reason XNA should be on the critical path of Windows 8. Why should the already-risky Windows 8 risk waiting around for a DirectX 11-based XNA 5.0? XNA can easily be added later (along with app store support).
And this is exactly how XNA has worked in the past: XNA is an installable library, completely decoupled from DirectX and the core operating system.
It makes perfect sense that XNA is not a part of the initial launch of Windows 8.
My suspicion is that XNA 5.0 will be released with the new Xbox console, rumoured to be coming soon. I’m sure Microsoft is hoping that Windows XP will have finally gone away by then.
It is worth pointing out that Microsoft already has a partial version of XNA that runs on DirectX 11. It’s the Windows Phone 7 version, apparently. (It only supports the “Reach” profile, without custom shaders.)
Based on all these factors, it is my hope and prediction that XNA is simply in “stealth” mode ahead of a new, DirectX 11-based release. I recall a similar silence in the lead-up to XNA 4.0.
(And, failing all of that, I know someone who’s very good at porting XNA to unsupported platforms.)