A friend and I are doing a 2D XNA game. Thus far, the API seems really cool and performance is acceptable. My question is more towards the release of it though. As other developers how have done games, how well have they done for you on PC (as far as downloads, sales, etc)? I know the statistics about the Xbox360 from seeing it personally but, I was curious as to how successful these were on PC?
4 Answers
I don't have any stats to compare the differences between XNA and non-XNA game sales - I'd suggest that data is impossible to come by - but I imagine it would show there is no difference for equivalent games. So let me answer your question with a run through of the major issues specific to distribution of XNA games on PC (particularly online):
First of all: For an XNA game to run the system needs to have installed: the XNA Framework, and the .NET Framework.
The XNA Framework is a fairly small download, easy to install, but will requires admin privileges - so will cause a UAC prompt as well as a EULA prompt. The framework is not upwards or downwards compatible - but can be installed side-by-side. (ie: a XNA 3.1 game needs XNA 3.1 and won't run on XNA 4.0).
The .NET Framework 2.0 is bundled on Vista and above, so I recommend targeting that (Project Properties -> Target Framework). [UPDATE: XNA 4 requires .NET 4, so this won't work any more]
The .NET 3.5 installation is very, very slow - I recommend avoiding it. I'm not sure about the full 4.0 installation, but the 4.0 Client Profile install is fast enough if you need newer .NET features (you probably don't - you can still use lambdas and extension methods in .NET 2.0).
A .NET Framework install will of course cause a UAC and EULA prompt. It can also cause a reboot.
Currently the "standard" way to distribute XNA games is with ClickOnce. You can do an online install - the downside is that your user gets a small "bootstrap" installer executable that pulls all the loose game files from your website. Alternately you can just distribute all those loose files and the installer in a zip. Neither of these is a self-contained executable file like users expect from most games.
A major pain of ClickOnce is that it will display several warnings about downloading unsigned software, which can look quite scary.
Another other downside of ClickOnce is that you don't have much control over things like, for example, what start menu entries you have.
The upside to using ClickOnce is that it's very easy to set up, and it will automatically download and install the required frameworks from Microsoft's website.
I am under the impression that these issues with ClickOnce can be solved by using an MSI instead - and it can still automatically download and install the required frameworks. I'm afraid I don't have specific instructions for this on hand.
If you do your own installation, or no installation at all, you need to be aware that your game executable will crash with an extremely unhelpful error message if the required frameworks are missing!
Oh, and your install might be a bit bigger (or a lot, if you include frameworks). If you're using XNA's built in content stuff (and why not, it's there and it's easy) your user might have more to download because the files aren't compressed as well as they might be if you handled it yourself (especially audio).
That's about it. Once the game is installed you're in pretty much an identical situation to any other game using native DirectX (ie: most of them).
(If you're doing something like CD-ROM distribution, instead of online distribution, you may face some of the same issues I described - but you can put everything that would otherwise need to be to be downloaded onto your CD instead, including the required frameworks.)
If you're doing downloadable shareware you're basically trying to get users along a chain from finding out about your software, to playing the demo, to buying the full game. The downside of XNA is that it makes the installation step in this chain a bit harder to polish - but it's still possible.
(IMO the upside of easier development and XBox compatibility is well worth it.)
So to bring this back around to your question: using XNA might make a tiny difference - but not enough that it matters. So any stats you find about PC game sales should be applicable to XNA games on PC.
-
\$\begingroup\$ Cool, FINALLY I know how to distribute my XNA 2.0 game (yep, I made a game when 2.0 was new, and I searched extensively but could not find how to make easy a installer that download all stuff needed for it to not crash on the poor user...) \$\endgroup\$– speederCommented Aug 19, 2010 at 21:37
-
\$\begingroup\$ @speeder It's worth pointing out that the ClickOnce features were new in XNA 3.0, see this post here: blogs.msdn.com/b/astebner/archive/2008/09/18/8957968.aspx There are workarounds for 2.0 - although I think the easiest might be to upgrade from XNA 2.0 to 3.1. \$\endgroup\$ Commented Aug 20, 2010 at 1:57
-
1\$\begingroup\$ .Net 4.0 always causes a reboot on my machines - just be aware of that. \$\endgroup\$ Commented Aug 31, 2010 at 13:43
-
\$\begingroup\$ Isn't there some sort of licensing issue with bundling the frameworks on a cd to distribute yourself? \$\endgroup\$– BillCommented Mar 22, 2011 at 23:21
-
1\$\begingroup\$ @Bill: No: "The XNA Framework Redistributable download provides game developers with the XNA Framework run-time libraries they can include with their product for redistribution on the Windows platform." Reference \$\endgroup\$ Commented Mar 23, 2011 at 6:45
It's been more than a year since this topic was created, and since then there's been quite a bit of development on the XNA side. For instance, here's a list with a few popular XNA games that have been released for PC and are currently being sold on Steam:
...and these are only the ones I happened to buy and noticed that they used the XNA runtime - I'm sure there are more of them that I'm unaware of.
And in case you don't know them, Terraria sold an amazing amount of copies (if you couldn't tell from the "over one million copies sold" disclaimer on the link above), remaining in Steam's best sellers list for a long time. And Bastion... well it just won three Spike VG Awards (incluiding best downloadable game of the year) a few days ago.
I also urge you to check the other games. Chime is an amazing casual/music game providing an extremely relaxing zen-kind of experience. And Sequence is a really original mix of DDR and RPG (with some music by Ronald Jenkees for those who know him). Finally, Magicka is an action RPG similar to Diablo which is also pretty cool.
I suppose that should say something about the feasibility of using XNA for developing PC games.
-
1\$\begingroup\$ Also, another update worth noting is code reuse. These days there are projects like MonoGame that will allow the developer to keep most of their XNA code base (if not all) and be able to run cross platform version of there game. A good example is Bastion running in Chrome (available in the Chrome Web Store). \$\endgroup\$ Commented Dec 13, 2011 at 6:37
-
1\$\begingroup\$ @Layoric On that note, I'm pretty excited about this (just heard about it a couple days ago). :) \$\endgroup\$ Commented Dec 13, 2011 at 6:39
-
3\$\begingroup\$ +1 for showing where XNA has come. Though, as most developers will realize, XNA is becoming dated, it is still running DX9, and there hadn't been much word of development for it. I suggest having a look at ANX, it allows you to simply change your namespaces and use their system. The benefits of this is that you get an open source constantly updated framework that runs on sharpdx. An opengl system is also in development, which allows changing renderer on the fly.anxframework.codeplex.com \$\endgroup\$– ZeunO8Commented Dec 13, 2011 at 6:41
-
1\$\begingroup\$ @Twitchy That is true, but I don't expect this to be for long. Andrew Russell's blog post (andrewrussell.net/2011/11/predictions-on-xna-in-windows-8) regarding XNA's future / Windows 8 explains reasons behind DX9 use and provides good reasons that would suggest that a newer version of XNA that supports DX10-11 is probably already in the works. \$\endgroup\$ Commented Dec 13, 2011 at 6:53
-
\$\begingroup\$ @Twitchy Funny how you mentioned ANX right after I linked it up too! I'm really looking forward to checking it out once it becomes stable. But a new XNA version is also very welcome. \$\endgroup\$ Commented Dec 13, 2011 at 6:56
No idea on actual stats, but it might be worth seing if you can find anything about blueberry garden and flotilla. Both are written with XNA and both are avalible on steam. Flotilla even has some steamworks (just friendlist i believe) support built in
-
\$\begingroup\$ Oh cool. I didn't know Steam would actually accept XNA games. \$\endgroup\$– Corv1nusCommented Jul 15, 2010 at 13:03
-
\$\begingroup\$ what happens if the user doesn't have .NET installed? \$\endgroup\$– IainCommented Jul 15, 2010 at 13:50
-
2\$\begingroup\$ You can write an installer to check for both .NET and XNA. I've done it for almost all the small games I've released for XNA \$\endgroup\$– JeffCommented Jul 15, 2010 at 14:41
-
1\$\begingroup\$ Steam has support for checking for dependencies and installing them, i assume impulse has a similar system. \$\endgroup\$– Cubed2DCommented Jul 15, 2010 at 18:07
By creating your game using XNA, you are not going to hurt your sales too much. (Granted, users on Mac/Linux won't be able to play). What is going to be a bigger factor is the advertising, teasers, demo, and actual game play.
Most windows users are going to have everything they need to play your game. If you want to be really cautious I ubelieve you can have the installer check for requirements such as .net, xna runtime, directX, etc... And prompt them to install it.
Essentially, don't think that by using XNA, pure DirectX, or Direct3D that you will get bigger sales. You do get a bigger audience, but that doesn't equate to sales.
Focus on making a great game, invest some money in advertising (create a Facebook fan page and see if you can create some buzz there), spend time making a good teaser video, and most of all build a fun demo.