XNA is dead, and this may be a good thing

It’s been pretty clear for a while that XNA didn’t have a future. Key team members either left the company or moved to other groups, and XNA hasn’t been a part of any new announcements for over a year. Some of the most concrete proof so far came to light today when Promit Roy shared an email from Microsoft about the future of the XNA MVP program. Learn more about Microsoft MVPs here.

Disclaimer: I’m currently a Microsoft MVP in Silverlight, but my first MVP award was in XNA, and I still have a lot of good friends among the XNA MVPs. Silverlight MVPs also have a hazy future but that’s a post for a different day.

After April 2014 the XNA MVP competency will cease to exist. Fellow MVP Andras Velvart speculated that this means that either the current crop or the next crop of renewals will be the last for XNA, since the term for an MVP is one year. I tend to agree with this, and in my opinion this means that April 1 will be the last time that XNA MVPs are renewed/awarded. 

With the end of the XNA MVP competency, it’s pretty easy to assume that XNA itself is not a technology that Microsoft will focus on going forward. This isn’t a surprise since XNA isn’t supported in Windows Store apps for Windows 8 or in apps for Windows Phone 8. Any questions about XNA support in Windows 8 were dodged or answered with an “it’s not supported”. Windows Phone 7.1 apps using XNA will still run on Windows Phone 8, but can’t take advantage of new features such as in-app purchasing.

If you’re an existing XNA game developer, things can seem pretty dire, but I would recommend that you embrace the MonoGame project. MonoGame arose originally out of my open source SilverSprite project but has taken it a lot further and they support most of the popular platforms including iOS, Android, Windows Phone 8, and Windows 8. It’s not perfect, but it’s getting better all of the time and it may turn out to be better over time than XNA because Microsoft would probably never have ported XNA to the competitor’s platforms.

XNA gained a pretty strong following, and with good reason. The lead developers on the team had a long history of working on commercial games so they knew what was really needed to help game developers get their job done. Unfortunately I think some of what they implemented to help game devs also led to their demise. The very powerful and flexible content pipeline, a way to get pretty much any assets in any form into XNA, either through the built in content processors or through custom content processors, was tightly integrated into Visual Studio C#. This is one major reason why we never saw official support for XNA using VB or other .NET languages, and I think it’s also why we haven’t seen support for XNA in Windows 8 or Windows Phone 8. It probably became just too expensive to keep updating this content pipeline for every new platform they wanted to support.

Currently MonoGame uses existing XNB files. These are the files that the build side of the content pipeline creates, so this means that for MonoGame you have to use an install of XNA to create the XNB content files you use in your MonoGame project. I know they’re working on this, and it’s even more important now for them to have their own way of generating XNB files.

So why do I think the death of XNA might be a good thing? Overall I’d rather XNA was supported going forward, since I love the technology and there are a ton of existing games using it that would easily port to Windows 8 if the option was available. The reason I think it may be good is for the same reason that I think the death of Silverlight could be good, as long as something better comes out of it. Windows Phone 8 is very similar to Windows 8 for development and from what I hear the next release will converge even more. The best guess across the board is that the next Xbox will support a very similar programming model. If this is the case, we finally are at a point where apps that you write for one of the platforms in the Microsoft stack will easily port to the others.

While .NET has been a constant through the last 12 years of Microsoft development, the other technologies built on top of .NET including WPF, Silverlight, WinRT, XNA, ASP.NET, etc. have been in a fairly constant state of flux. Writing Windows 8 apps in XAML is similar to writing Silverlight apps in many ways but there are some fundamental differences since the underlying framework has been almost completely rewritten.

Contrast this with iOS and Mac development. There are still APIs in iOS development that prefix the function name with NS. Why NS? NS stands for NextStep, the OS that Steve Jobs pioneered with Next computers and brought with him in his return to Apple. So while WinRT has been around for little over a year, the roots of Apple development are a lot deeper, and Apple doesn’t keep pulling the rug out from under their developers. I feel that Microsoft needs to do the same, and even if what they have isn’t perfect, at this point it’s more important to just stick with it and evolve instead of starting over yet again. Microsoft developers are tired of the churn.

As long as the death of Silverlight and XNA are part of a consolidation and a stabilization of the platform, I’m all for it, and it should have happened long ago.    

  • http://twitter.com/MachXGames Jim Perry

    “As long as the death of Silverlight and XNA are part of a consolidation and a stabilization of the platform, I’m all for it, and it should have happened long ago.  ”

    Unfortunately, it seems like that consolidation is taking several steps backwards to C++. That’s hardly a friendly language, nor does it lead to rapid development as we can with C#. I also can’t see MS allowing indies to develop for the next-gen Xbox with C++.

    • Kevin

      With no Moore’s law any more it made sense to go back to C++, especially with C++11. I see this as a trend and you only have to read Herb Sutter’s articles for the last few years to see why it’s happening .

      I think you need both. As for Xna, well I am glad we are heading toward open source, multi platform engines. The effort is better spent there.

    • Hermit Dave

      While c++ has gained prominence recently, its real usage is debatable. .NET continues to be used by most devs.. Whether Microsoft likes it or not.

  • http://twitter.com/SimonDarksideJ Simon (Darkside) J

    It is sad to see it finally go from Microsofts Radar but like VB6, XNA will continue to be supported as long as they are shipping / supporting XBOX360′s and WP (XNA not VB6, lol)

    But as ever “like you say” the XNA framework will live on through MonoGame, SunBurn and many other community driven frameworks and take the original dream well beyond it’s first scope.

    The Content pipeline is a bit of an issue but teams are working hard to remove even that dependency but still keeping with the same theme of a managed content pipeline for assets.

    Gone but not forgotten and after reading / following the #becaseofXNA hashtag on twitter today it has inspired so many in such a short period of time.

  • Yuki

    well i personally never really liked XNA
    i perfered C++ much more to be honest
    it didnt surprise me since i knew it would of died out sooner or later
    Dragon Ball Z Games</a

  • http://twitter.com/jsonmez John Sonmez

    Great perspective on this. Really good point about NS.