Ubik

Sign in to follow this  
  • entries
    101
  • comments
    122
  • views
    57903

XNA

Sign in to follow this  
Will F

289 views

Have some free time so I started learning C#, so far i'm really impressed, and coming from a C++ background am finding it easy to pick up. I don't see myself using it for projects in the immediate future, but as I grow more comfortable I wouldn't be surprised if a large amount of my coding is done in that language.

I've also been playing around with XNA - very neat stuff there. I was able to throw together a 3D "hello world" app amazingly fast (a simple heightmap).




Unfortunately there is one very big problem with it - distributing a game. As far as I can tell there are 3 ways of doing so:

1) Published on Xbox Live Arcade
This is pretty awesome and could potentially be a great revenue generator, but the process of getting it greenlighted by Microsoft seems pretty daunting for a independent game studio, or even worse a "hobbyist" programmer team or individual.

2) Xbox 360 via content creators club
Nice that you can play it on a 360, but your potential audience is rather small. Though I can understand why Microsoft wouldn't want wide distribution of these games to the general 360 population, and do not blame them at all for requiring a content creators subscription to be able to play them.

3) PC
Absolutely horrible, the end user has to have The .NET Framework 2.0 Redistributable, the XNA Framework Redistributable corresponding to the version your game was built against, and a number of files from the DirectX 9.0c Redistributable installed.

A few years from now when Vista has become more widespread the .Net Framework requirement shouldn't be as much of an issue, but expecting a user to have the other 2 installed is a bit much. If you're making a commercial game your customers are not going to be happy about having to download all that extra stuff - they just want a 1 click installer (and if you've made a casual game only a few megs in size the total amount potentially needed to download jumps in size exponentially). Chances are people will download a demo of the game, then when they realize everything else they have to do just to play it will probably not even bother with it.

As it stands now I can think of 3 good reasons to use XNA - Rapid prototyping of a game concept (which I think is an excellent use of it). Having a publishing deal for live arcade (which I would think twice about if I already had an established codebase in another language from previous projects, or didn't have anyone with extensive C# experience on the team). And finally, if you are just learning programming and want to make games. From what i've seen so far C# is a much better language for a beginner (compared to C++ anyways), and XNA seems fairly easy to use.
Sign in to follow this  


3 Comments


Recommended Comments

You may want to look more closely at some of the methods of deployment available to .NET applications. I believe things like ClickOnce can be used to download required assemblies in an efficient and transparent way.

Share this comment


Link to comment
Using wix you can rig up a custom MSI that goes and downloads the .NET prerequisites from Microsoft, confirms the checksums, and then installs them automatically.

I'm sure you can do the same with ClickOnce.

Share this comment


Link to comment
Thanks for the feedback, haven't really looked in depth into it, those are just my first impressions of PC web based distribution. Though for me one of the biggest worries is the dependency on the .NET Framework 2.0, not only just the download, but the install can take quite awhile as well. There's not really much you can do about that if you are targeting XP - I would be curious to see some numbers of how many people actually have it installed.

I'm going to take a look at SlimDX (still have that dependency though) and Python too, the thought of having to continue using C++ for smaller personal projects just doesn't appeal to me anymore.

Anyways, I found an interesting thread over at the XNA forums with some discussion of the issue between the Zman and Stephen Styrchak (XNA team). Couple highlights from it:

Quote:
Quote:
Various setup technologies (including ClickOnce, which is free with the .NET Framework 2.0 SDK) include a bootstrapper setup.exe that will check for, and optionally install, prerequisites. In ClickOnce, for example, there is built-in support for installing the .NET Framework 2.0.....


We would ALL love to see a white paper on how to get click once working with an XNA app... there's been a couple of people in here tried and as you say I think one person was successful back in the beta or 1.0 days but I think this is the one where the wizard gets confused and will include the XNA DLLs (breaking the EULA) directly unless you go and edit the XML files by hand.



Quote:
Okay, all that being said, I completely agree that making an installer is too hard.

Yesterday and today, I looked more deeply into some of these issues. To be honest, I've never looked at a lot of this stuff before. So today I spoke to a couple people, and I think maybe we can make some reasonable, low-cost improvements in the v2.0 release.

No promises yet, but for starters, I wondered why our runtime redist doesn't install its own DirectX dependencies. Well, I found that I'm not the only one on the XNA team that thinks it's strange, so we're going to look into fixing that. Ultimately, the runtime redist would be bigger, but currently that would still be under 6MB total (I found our v1.0 Refresh DirectX dependencies listed here).

We also intend to document how to check if the XNA Framework is already installed or not. That means if you use a bootstrapper with a link to the redist, then you won't ever need to download it when it's already on the machine. If you do, then you only need to install the one dependency and you're done, without you or your users ever fussing with DirectX. I think that alone would be a big improvement.

In addition, I'm going to look at improving the behavior of the Publishing wizard so that it doesn't include your source content, and doesn't package the runtime assemblies. We still will not officially support ClickOnce publishing, but if I can improve its behavior enough, then at least the workarounds will be easy enough to explain.

Quote:
The ZMan:
Bottom line is that right now on windows its just too hard,


Yep, you're right. I wanted to keep people from being discouraged from trying, but it might be more frustrating than it's worth.


Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now