83
\$\begingroup\$

I know this is a potential dupe of this question, but the last answer there was 18 months ago and a lot has happened since.

There seems to be some uncertainty about XNA in Windows 8. Specifically, Windows 8 by default uses the Metro interface, which is not supported by XNA. Also the Windows 8 store will not stock non-metro apps, so it will not stock XNA apps.

Should we stick with XNA or does Microsoft want us to move to a different framework for managed game development in Windows 8?

Edit: As pointed out in one of the comments, Windows 8 will be able to run XNA games in a backward compatibility mode. But that smells of deprecation.

\$\endgroup\$
8
  • 2
    \$\begingroup\$ Windows 8 has a backward-compatible mode out of the box, so why would this be a problem? \$\endgroup\$
    – ashes999
    Commented Jan 12, 2012 at 12:03
  • 6
    \$\begingroup\$ If I want to develop a c# game for the metro UI, what framework should I use? \$\endgroup\$
    – Ken
    Commented Jan 12, 2012 at 12:23
  • 5
    \$\begingroup\$ You should use SharpDX. \$\endgroup\$ Commented Jan 12, 2012 at 12:53
  • \$\begingroup\$ +1 for Johnathan. SharpDX now supports DirectX 11.1 for Metro compatibility. \$\endgroup\$
    – ChrisC
    Commented Jan 13, 2012 at 20:30
  • 4
    \$\begingroup\$ @Deza: Not only will it not have metro support, but XNA will not be used for Windows Phone 8 either. On top of that, if XNA is not updated it will never support DX11, and will not work for the upcoming Xbox console. There are plenty of reasons for developers to shy away from XNA if it will not be updated. \$\endgroup\$
    – Nic Foster
    Commented Jul 17, 2012 at 16:30

6 Answers 6

61
\$\begingroup\$

EDIT: It's official, Microsoft has killed off XNA. I'm saddened by this but it was not unexpected, it's what I was predicting would happen, but hoping I was wrong. Everything below this point is my original post from early 2012.

Something else to consider is that Microsoft is likely to release a new console in mid to late 2013. Will they continue with trying to have something like XNA work on their console? If they want individuals to make games on the new Xbox, they're going to need something, and it would be wasteful to scrap XNA and start anew with something else. Additionally, Windows 8 will run on tablets with ARM processors, and we all know how big the market is for apps for phones and tablets, that's a big opportunity for Microsoft to have an API for creating apps on those devices, but will that be XNA, or only .NET?

I see a couple of potential paths:

  1. XNA hasn't been extremely successful with the current Xbox, mostly due to how few XNA games are showing up, and how poorly setup the store is for XNA games on Xbox Live. So Microsoft may decide to pull the plug entirely, leaving us with XNA 4.0, which is compatible with DX10, and will be a decent platform for people to make simple PC games with for the next few years before it disappears.

  2. Microsoft may see the huge possibilities with homemade apps, things like Apple's App Store are huge money makers, and if Microsoft can make it easier to make games and get them onto Xbox Live and Windows 8 tablets, then they have a chance to make it big in the console apps market. If Microsoft goes down this path I see the new XNA supporting DX11.1 with its next version, and continuing support for XNA for at least 5 more years.

Some things to consider:

  • Currently with XNA you must pay $100 if you want to develop your game for the Xbox 360, that's $100 just to try it out and see if you could make any money, and even then MS gets a chunk of the profits from your game. If Microsoft takes out the $100 fee and just takes the chunk of the profits, they may actually end up seeing a lot more games and make more money off of the deal.

  • XNA games have performance problems on the Xbox 360. Microsoft did not want XNA games posing a security risk when they ran on other people's Xboxes, so they basically run XNA games in a sandbox with limited access to the CPU, GPU, and memory. In addition to the limited access, games programmed on the full Xbox SDK are not written in C# and do not need things like garbage collection, but XNA runs on Microsoft's own C#, so Microsoft had to write a wrapper to get XNA to run on the Xbox, and that wrapper slows things down quite a bit. Things like floating point performance can be up to 10x slower than Xbox games that are written through the full SDK. These performance problems mean that Xbox games developed through XNA cannot really use the full potential of the Xbox, which just hurts the quality of the games that Microsoft can get from the community. Microsoft would do well to consider this if they continue with XNA so that their next console allows XNA developers to use the system to its full potential.

  • As far as I know, XNA will not support Windows 8's metro style, so developers will not be able to write games to take advantage of it. XNA also will not run on ARM processors, so you could not use XNA to write apps for Windows 8 tablets that will be coming out soon. Is this a sign that XNA might not be supported in the future?

  • Microsoft uses XNA for games right now, but with a little work it could be used to make some interesting applications as well. If Microsoft pushed XNA to communities other than game developers then it might get used more often and have more reason for Microsoft to continue supporting it.

  • The XNA forums have dried up a bit, it takes more time for people to get answers, and I rarely see any member of the XNA team on the forums anymore except Shawn Hargreaves, so they may just be in a support role at this time.

  • I created and support an open-source game engine for XNA, over the last 2 years the downloads of the engine have dropped to about half of what they started at, even though the engine is much better than it used to be. This signals to me that a lot fewer people are using XNA than used to. Here's a graph of the number of hits I have on my site, you can see interest in XNA peaked around late 2007 to mid 2008. QuickStart Engine Page Views

Here is a long discussion that includes some members of the XNA team. Of course, they're not willing to comment on much because Microsoft doesn't talk about things much before they're announced:

http://xboxforums.create.msdn.com/forums/t/91616.aspx

Also quotes like this are interesting:

Create immersive games using the power of DirectX The new Windows 8 graphics stack is better integrated, making Direct2D, Direct3D, and DirectCompute components easier to use together and requiring fewer duplicated resources than before. Capabilities previously available only in XNA, such as DirectXMath, XAudio2, and XInput, are now available. For the ultimate experience in gaming and video, use DirectX 11.1 to bring stereoscopic 3D to your apps.

http://download.microsoft.com/download/1/E/4/1E455D53-C382-4A39-BA73-55413F183333/Windows_Developer_Preview-Windows8_guide.pdf

I currently support an open-source game engine for XNA, so I would prefer to see it supported in the future, however, even if XNA 4.0 is the last XNA, it's still a decent platform for creating Windows games quickly and easily, and also a great API for those who want to learn how to make video games.

My honest opinion is that XNA 4.0 will be the last one, but I truly hope I'm wrong about that.

\$\endgroup\$
3
  • \$\begingroup\$ Microsoft representatives have apparently been telling people to use MonoGame for Windows 8 support, although it's 3D support is still in dev. Might be worth seeing if you can port you engine :) \$\endgroup\$ Commented Feb 5, 2013 at 16:33
  • 1
    \$\begingroup\$ Yea that's something I might consider. I've mostly used the engine project as a hobby for learning more about areas of game development that I'm less familiar with. With engines like Unity out there that can be used for free there has been little use of my engine (as far as I know). I'm not sure how serious I am about making the engine more accessible knowing how little it would likely be used. I may continue to expand the engine further just to continue getting practice with game engine tech in general. \$\endgroup\$
    – Nic Foster
    Commented Feb 5, 2013 at 16:51
  • 1
    \$\begingroup\$ I am currently using Monogame for my 3D XNA game that is currently working on WP7, Windows and W8. There are still a number of critical elements missing that I wish were there but it is being heavily developed by a few key interested parties. \$\endgroup\$
    – RobCurr
    Commented Feb 22, 2013 at 21:39
47
\$\begingroup\$

MonoGame ( an OpenSource, OpenGL implementation of XNA ) v2.5 was released today with support for custom shaders across iOS, Android, MacOS and Linux. Our team has started work on adding PlayStation Suite SDK support and also Window8 Metro ( based on SharpDX I believe ).

We already have a 3D branch, imaginatively named develop3d, which is where all of our efforts will be focused on in the coming months, now that v2.5 is out. Have a look at our YouTube channel for where we are currently at with 3D - http://www.youtube.com/user/MonoGameTeam?feature=watch.

We have developers from a couple of game studios helping out, so we think the develop3d branch should be more optimised than our v2.5 branch currently is and it almost a total re-write. The Reach demo took 15 minutes to port from Windows to MacOS X, when I started from scratch last week-end. The develop3d branch is not perfect yet and neither is the whole of MonoGame, but we think we are on the way to ironing out the issues we do have and if more people help out, even better.

There are already 28 iOS games ( 27 2D and 1 3D ) on the Apple App Store, 5 on the Android market place and 1 on both MacOS and Linux stores. If anyone here has played Bastion in their Google Chrome browser, that uses a modified version of MonoGame and we hope to support NaCL games in future, thanks to SuperGiant sending us information about how they got MonoGame to work with NaCL.

We have about 4-5 active developers working on MonoGame and if you fancy chatting with us, please jump over to monogame.codeplex.com, or on irc.gnome.org on the #MonoGame channel. Grab the latest code from Github

So I suppose my point is, please consider MonoGame if you plan to write cross-platform games using XNA.

Dominique.

\$\endgroup\$
9
  • 4
    \$\begingroup\$ To whomever gave me a negative score, am I not answering the original author's question about "how will managed games be developed in Windows 8?" I thought I'd suggested that MonoGame will have a Windows 8 implementation in future, so that is one possible alternative to Unity3D, DeltaEngine etc. And I also clarified xoofx points about MonoGame. Just wondering why the down vote. \$\endgroup\$
    – Dominique
    Commented Mar 29, 2012 at 23:36
  • 6
    \$\begingroup\$ I'd venture to guess it could be because your answer reads more like an advertisement than an answer. \$\endgroup\$
    – user1430
    Commented Mar 30, 2012 at 15:13
  • 6
    \$\begingroup\$ @Dominique I down voted you. I've used and enjoyed your product but the bit that says "So I suppose my point is, please consider MonoGame if you plan to write cross-platform games using XNA." summarizes the intent of your answer. A small amount of useful information doesn't hide that fact that its a pitch. \$\endgroup\$ Commented Mar 30, 2012 at 16:59
  • 1
    \$\begingroup\$ @Dominique See the FAQ regarding promotion on the site. I believe you were honestly trying to answer the question, but got a little caught up in promoting your project over providing an answer to the question. Since your project is open-source, you may qualify for a Community Promotion Ad, and it's worth looking into. Thanks for the answer and welcome to GDSE. \$\endgroup\$
    – House
    Commented Mar 30, 2012 at 18:05
  • 1
    \$\begingroup\$ It has been a while since I responded to this thread and lots has happened. I just wanted to point out that there are now at least 2 games on the Windows 8 preview Store, that use MonoGame. The first ARMED! has been featured on Microsoft's stands and site recently. Rune Legend is another. Look out for more MonoGame powered games coming to Windows 8. Just 2 weeks ago, I and a fellow MonoGame developer, was asked to visit Microsoft Reading, UK and spoke to them about MonoGame. We presented to 8 evangelists. Also Bob Familiar, a Microsoft evangelist in the US, recently wrote a 3 part article abou \$\endgroup\$
    – Dominique
    Commented Aug 24, 2012 at 0:31
16
\$\begingroup\$

From what I understand about the situation it can go either of two ways. The API is either being deprecated or they are ramping up to create a XNA version based off DirectX 11.

Here is an article about each perspective:

\$\endgroup\$
4
  • 8
    \$\begingroup\$ I really hope it's the latter, because if they are deprecating XNA after how much they've been pushing it over the years, well poo. \$\endgroup\$
    – jhocking
    Commented Jan 12, 2012 at 13:00
  • \$\begingroup\$ @jhocking agree that it's poo. But as developers, we should always be multi-lingual. XNA was my favourite platform too, but now, I guess it's back to Flash or something. Sigh. \$\endgroup\$
    – ashes999
    Commented Jan 12, 2012 at 14:20
  • 2
    \$\begingroup\$ lol well not "too" since I've never programmed in XNA. I was thinking more that this could screw all my friends who keep evangelizing XNA. It may not screw me personally, but I also don't like to see other people getting screwed. \$\endgroup\$
    – jhocking
    Commented Jan 12, 2012 at 17:36
  • \$\begingroup\$ The things happening to DX itself would suggest that there won't be another version of XNA. But, technology changes. \$\endgroup\$
    – Blecki
    Commented Jan 12, 2012 at 18:00
11
\$\begingroup\$
  1. What is the future of XNA on Windows 8?

    XNA will only run on the Win8 desktop and there is almost no chance that Microsoft is working on a XNA compatible API running under Win8 Metro UI/DirectX11.1.

    If you really want to continue developing on a XNA like API on Windows 8 Metro, while still being able to use the content pipeline (one of the reasons why XNA is low-budget game developer friendly), you should follow the ANX Framework project. This project has some good chance to be ready before Windows 8 RTM (at least with SpriteBatch support). Although It will probably require to slightly change shaders (for example semantics), ANX is providing a way to import an existing XNA project, so that could greatly help. They are also working on other backends (like OpenGL for graphics), so they could also be able to target other .NET platforms (like Mono on Android/iPhone).

    MonoGame could be another option, but it is currently only for 2D, with a single OpenGL/ES backend, so It will not be able to run on Windows 8 Metro (OpenGL is not a "certified" API under Win8 Metro, and most likely not part of Microsoft plans).

  2. How will managed games [other than using XNA API] be developed in Windows 8 (Metro)?

    There are several options:

    • You could use directly SharpDX, a low level DirectX API (ANX is using it). For example, a minimal framework for a 2D game is typically feasible with a low level API like this (and could be done with Direct2D). I know at least two small companies that are using it to develop Win8 Metro games.

    • You could start using DeltaEngine that will be hopefully compatible with Win8 Metro in the coming months (will require probably a license)

    • You could try to develop with Unity3D, although they have not announced any Windows 8 Metro support yet (requires a license). But they worked recently on a Direct3D11 renderer, so that shouldn't be so hard for them to provide Win8 support (but as lots of Win32 API are not authorized from Win8 Metro, It's probably not the only thing they need to port).

\$\endgroup\$
5
\$\begingroup\$

With WinRT release it's becoming more and more obvious that Microsoft way have taken a big turn. Managed hype is going down, Native hype is stronger than ever. Apparently someone influential in company (some claims it's core Windows team) is not satisfied with .NET performance at all. The main trend I see in latest articles is something like

WinRT is the next .NET, and C++/CX is the next C#.

They say:

Hey it's just as easy to write in C++ as in C#! Why do you need XNA if you can write in C++ and DirectX?

That's the feeling I get all last time. Given that you can expect slowdown of all managed related projects, the only difference is slowdown amount.

The Microsoft have my respect for almost never dropping support for products, they are just not developed anymore. So at least we can use XNA 4.0 for quite some time even if it's the last supported version.

\$\endgroup\$
2
\$\begingroup\$

It's not looking good for us indie XNA developers who want to port our XNA games into Metro. Microsoft has shown no interest and expects us to go back to C++/DirectX programming or adopt third party C# frameworks, most of which do not support any XNA Content Pipeline.

All pretty sad, I really cannot understand MS sometimes.

\$\endgroup\$
1
  • 7
    \$\begingroup\$ Hello Jules. Welcome to GDSE! We're not really like a forum here, so answers like this that are kind of just chatty are discouraged. If you had factual information to add or sources for your answer that would be great! \$\endgroup\$
    – House
    Commented Apr 27, 2012 at 16:45

Not the answer you're looking for? Browse other questions tagged .