XNA is dead. Long live XNA!

So, as many of you have heard, Microsoft has killed off XNA and every game written in the framework is doomed.

Except that isn’t the whole story.

If you don’t know, XNA is a game development framework made by Microsoft to aid developers in rapidly creating cross platform games. The name stands for: XNA's Not Acronymed. Writing a game in XNA enables it to run on Windows, XBOX, Windows Phone, and the [now dead] Zune HD. The only real changes that need to be made are the controls and UI (different screen sizes). Even if you’ve never heard of XNA, chances are that you’ve played a game made in it if you’ve ever used a Windows Phone. One such game is ARMED! - which now has a Windows 8 version made in MonoGame.  XNA was loved by a lot of people, and gained popularity because it was an easy entry point into 2D and 3D game development, and it was a good way to reuse code across platforms.

Enter: Windows “m-word” apps.

With the launch of Windows 8 and RT Microsoft has made a major shift to account for modern devices that have boat-loads of sensors, and a variety of different input mediums. Try using Photoshop – or any traditional Windows application – with a touch screen and you will see exactly why Microsoft has made this tectonic shift. Along with making apps more touch-friendly, these new apps will run on both traditional x86 (Intel CPU’s for instance) and mobile ARM chips. Microsoft has also made all languages equal, so whether you are writing your app in HTML/CSS/JS, XAML/C#, or even C++/XAML, you will be targeting the same WinRT API’s.

Here is a visual representation of the modern Windows platform as it stands today:

Something that bloggers, media, and the internet at large have chastised Microsoft for is the fact that it is not possible to write XNA games anymore. This is 100% correct. However what many people forget is that XNA is still fully possible on Windows 8 as a desktop application. Yes, that won’t console many people, but regardless, support hasn’t magically vanished.

Secondly, and this is the most important point of this article: It is still possible to make an XNA game or port your existing XNA game to a Windows Metro app. That game will run on both x86 and ARM devices. Microsoft has left us in the lurch – and somewhere deep deep down, I am sure they have a good reason – but all hope is not lost.

Enter: MonoGame (opens in new tab).

Here’s a description of MonoGame from their website:

MonoGame is an Open Source implementation of the Microsoft XNA 4 Framework. Our goal is to allow XNA developers on Xbox 360, Windows & Windows Phone to port their games to the iOS, Android, Mac OS X, Linux and Windows 8 Metro.  PlayStation Mobile development is currently in progress.

At a very high-level, what this wonderful bunch of people is doing is method-by-method recreating the XNA framework with compatibility for the aforementioned platforms. So they create an implementation of each thing that XNA does in each platform. To avoid legal issues, no code has been disassembled from Microsoft’s binaries.

As a developer with a bunch of Windows Phone apps written in XNA, this is quite a relief. I’ve been playing with MonoGame over the past few weeks and it really is as good as it sounds. I timed myself getting Matchy to build and run and it took under 15 minutes. Of course, after getting it to run I still had to change a lot of the UI because of the larger display and varying resolutions. Another game I ported was Relaxify (opens in new tab). Once again, an almost trouble-free experience in terms of porting. I did of course beef it up a lot for all these fancy new devices.

It is at this point, dear readers, that this stops being your average Windows Phone Central article. If you are not a developer, you may want to skip the rest and head straight down to the comments.

So how do you, the frustrated XNA developer, use this? Easy:

  1. The installer for MonoGame 3.0 Beta has just been released and you can grab it from here: https://archive.codeplex.com/?p=monogame. If you are reading this at some point in the future, rather go to the MonoGame Codeplex site to get the latest version. If you want to keep up to date with the changes (and you probably should), then you can also clone the repository here.
     
  2. Install it.

  1. Once installed you can open up Visual Studio 2012 and the new templates will be waiting for you.

  1. Once loaded the project will be pretty much as you expect, with a Game.cs file and a bunch of others. One notable feature is the XAML integration. So along with XNA rendering you can use standard XAML controls.

Now something that seems to trip a lot of people up, and is possibly the only big difference between developing for standard XNA and MonoGame is content processing. Traditionally, along with your game project there was a Content project where you added sounds, models, textures, etc. Upon building those assets were compiled into XNA’s native .xnb format and then read through the ContentProcessor for use in the game. And all that was handled by Visual Studio 2010. Fast forward to today; Visual Studio 2012 has dropped this feature because it was a part of XNA.

The workaround is to have a separate content project:

  1. After installing the XNA 4.0 SDK (opens in new tab) create a new Windows Game (4.0).

     

  1. Add any assets to the content project and build the solution.

     

WP Central

  1. Copy the resulting .xnb file/s from the bin to a new folder Content in bin\Debug\AppX\ of the MonoGame project.


     

  1. Now just load content like you always have.
  2. Rejoice, for XNA lives!

As mentioned before, XNA is a really easy way to get into game design. Four lines of code after setting up MonoGame and the content project as explained above, we have a rotating 3D model imported from 3ds Max.

Although there is no built in support for XNA in Visual Studio 2012, one awesome feature is an FBX model viewer. FBX is an Autodesk 3D model format which includes support for a bunch of handy things like embedded animations and textures. This is the model format of choice for using with XNA. Installing VS2012 makes it the default application for FBX files, and the viewer is a really welcome addition.

So there you have it folks, XNA is alive and well, albeit unofficially. Something to keep in mind is that long-term you may want to venture out into C++ or Unity.

What do you think of Microsoft’s decision, and how has it effected your development? Sound off in the comments below!

WC Staff
23 Comments
  • This is probably a good thing, however many attempts to create a write once run everywhere game framework has failed to fulfill their promise. I guess we'll wait and see if we start to get quality simultaneous game releases in multiple platform.
  • Brilliant article! Why is Metro still in their documentation though? :s
    Your article could have been titled positively instead of XNA being dead! You said so many positives but just started me off on a wrong idea first!
  • see "the king is dead, long live the king"
  • Good article. WP8 MAY or may not have some surprises for XNA devs so keep that in mind. Overall though the lack of direction on how to make Metro games and how they will certify them is a bit off putting to me. I have a bit of a background in DirectX 9, but to go to making a game all in DX11 is bit overkill and very steep very quickly getting a game out and protoyping it. The other option is using Javascript and HTML5's Canvas support, now performance wise that's the total opposite end of the spectrum. XNA was a nice happy medium and I wish they would have continued more support for it personally, because frankly I'm not sure exactly what I want to do/use or even how I'm going to go about approaching Metro game development, although Monogame looks to be the best bet and I find it worked pretty good so far.
  • The decision to drop XNA is so strange to me. No managed code game development simply does not make sense. I can't hope but think they may bring it back after the release of the new Xbox. It would be ironic if devs start releasing games to iOS first using Monogame :)
  • i'm of the opinion that it was just pushed to the back burner and the people moved to different teams, becaause everything that was needed in the API itself (not talking about the other logistics problems of XBLIG)  is done and since it's first order tier is the Xbox there's nothing else they can do curently. we do have million sellers and stuff on XBLIG, and with the ever growing indie scene MS doesn't want to leave that revenue stream out of the future, I think once the new Xbox starts seriously showing up out a team will be put back together again and it will be updated again. 
  • Yes but why not port it to Metro. After all they need all the games they can get and people who have developed XNA games are likely to port them. It seems like they hoped for Monogame to fill in the space.
  • best news for the day!
  • XNA is gone, Silverlight is gone as well. Zune is gone. WP7 is gone...just saying, here. So, when WP8 comes out, I would be keeping fingers crossed, still.
  • Silverlight is hardly gone. All XAML-based frameworks appear to be gradually merging, to make the all-screens concept easier to implement for developers. And wasn't XNA pulled into Silverlight/XAML last year, so developers could take advantage of the strengths of both in the same app, rather than having to choose one or the other?
  • Although Silverlight isn't "gone", there is no longer a Silverlight team.  And although there are aspects of Silverlight that are in Windows 8, the DIFFERENCE that Silverlight brought over WPF, for instance, is that it was CROSS-PLATFORM and ran with a plug-in.
    There is NO part of Windows 8 that is cross platform.  (other than cross WINDOWS platforms).
    So I would say Silverlight is DEAD, but not gone.  Unfortunately, since it is ALL I code in anymore.
  • Standard Microsoft decision-making process:
     
    Hey guys, is this thing we made any good?  Is it popular?  Do people love it?
     
    (yes, yes, and yes)
     
    KILL IT!!!
  • so this means games for WP7 are dead...just like Microsoft planned it.  They can't run from WP7 any faster if they tried.
  • FYI, monogame sits ontop of sharpdx and so translates all the xna graphic calls into c++ native DirectX under the surface. This is all hidden from you though (unless you want it)
  • XNA is gone in WP8 too - you cannot create XNA apps targeting WP8, new resolutions, In-App Purchases or other new APIs. IT has been said already several times. I hope MonoGame for WP8 will bypass this issue too :)
  • i think this is good news , but monogame shood not promote windows
    when microsoft pull the plug on xna and silverlight over 4000 small town developers whent backrupt
    and we are a large community now of bankrupt people an behaf of microsoft
    you see more than ever these new tablets and phone was the perfect place for the xna and silverlight platform as an indie platform for startup and so on , to give then a chanse
    we are not all blockbuster companies deling with microsoft, and all this has microsoft forgot
     but you can make a blockbuster game in xna like you have on IOS and android ,,
    why wiil they kill somthing like this ,, well to manny people cood create a nice looking game
    and this hurt big publishers , they can nots sell there game for 1 dollar or make it free , 
    becourse it cost dollars to make a game , simple answher
    so instean the monogame team shood be focurs on a more EQUAL platform like the IOS ,AMAZON KINDLE FIRE, GOOGLEPLAY, UBUNTU STORE, CHROME OS STORE
    TO give the developer the freedom of choise , where they can sell there stuff
    not the way microsoft is doing right now ,, saying go native
    how MANNY windows 8 games are running native c++ and arm and 0x86 assembler
    they are 90% are running managed code,, 
    a big fail from micosoft side,, 
    move on to othere platforms with monogame ,, then the developer will benefit
     
     
     
     
  • Hello. Could you or anybody else, please, post the link on the news that XNA is dead? I'd like to know, did Microsoft has already officialy anounced that. I'd like to read about it more. Thank you beforehand.
  • I meant, the link on official anouncement from Microsoft.
  • Well Im a VB developer and I was considering learning XNA but not sure now. It looks like XNA will be going down a bumpy road for some. I will likely still go ahead and learn the framework but Im not sure of Microsofts intentions and Imnot sure I like them as ell. Microsoft needs to step up to the plate and support their devs and crush Apple again. Otherwise we will all be forced to become c++ or IOS devs eww.
  • Check out the WP8 SDK, It includes XNA for Visual Studio 2012.
  • Is it a new version of XNA with a new version of the DirectX (11.1) support?
  • It's still old XNA: XNA Framework support. You can develop XNA Framework apps that run on Windows Phone 8. To do this, you must set the target to Windows Phone OS 7.1. For more info, see XNA Framework and Windows Phone 8 development.
     
    You can’t create new XNA Framework apps that target Windows Phone OS 8.0.
  • About the content pipeline in XNA not working with VS12.
    Check out the link below. Works perfectly!
    http://ryan-lange.com/xna-game-studio-4-0-visual-studio-2012/