Background:So, I've been hanging around here since this spring when I discovered XNA. My programming background is that of a novice studying game development at a university. Basically I was hoping to make a list of things I think are missing and that I'd like to really see. I think I'm a pretty good person to do this since XNA is aimed at the non-professional game developers that aspire to make games that take it further than a Breakout/Pong clone.
Now this isn't just about what's missing in XNA. It's also documentation, tutorials and so on.. things that the community can produce. So this is aimed at... well.. anyone interested in XNA.
Oh, and if anyone got a "Connect" ticket open for any of these issues please link them so I can go and give them a vote. I tried fiddling around there but it got kind of annoying to find any.
General XNA:I understand that Microsoft really wants to push this for Xbox360 but personally I don't even own a 360 and I'm not really planning to get one. If I want to make a game it's still a lot easier to distribute on the Windows platform (since most people own a computer but maybe not a 360). Anyhow..
- Make it easier to distribute Windows games.This has been up before. I've read threads about it and I don't understand at all why this isn't taken more seriously.
There's some about it on the FAQ
here (ZMan's soapbox):
Sadly I lost the link to the best thread about this. Summed up there's too much of a hassle to get XNA games running on any given Windows computer. It requires NET 2.0 (that apparently can take a lot of time to install), DirectX 9.0c (this is technically not a probably if it wouldn't have been that there are different versions of 9.0c and that XNA doesn't run on the older ones!), XNA redist.. uhm.. did I miss anything? Well, regardless this is a lot of stuff. Especially if you want people to download this. Just imagine trying to convince peopel that they don't have the latest DirectX even though they are running 9.0c.
A lot of people are looking into XNA right now are people aspiring to make commerical games with it. The technology sure lets you do it. It won't be the next AAA game but hey.. a good game is a good game. But the installer issue kills a lot of potential on the Windows market. As someone put it in a thread.. this is like a queue at the supermarket. People won't wait at the longest queue.. people don't have the patience to make sure that their system can run the game. Thus it falls on the developers responsibility.
Oh.. I just realized that I forgot another dependency.. Windows XP SP2.
- Give more examples on typical optimization processes. How to deal with optimization.What I think is the most underestimated things with managed code is performance. Just because it's managed a lot of people automatically think that any code will work just as well, cause hey... it's managed. Everything hard is already taken care of... or... not.
I read this
tutorial over at the Education section yesterday and I was amazed how code that looks completely correct still can be optimized so subtly... and it had quite a lot of impact. More articles with these kind of things would most likely be really appreciated by the community and I'm pretty sure there are a lot of competent people on these forums that can produce similar articles.
Maybe even some more experience person could make some fun contest called "optimize my code". Then when a winner is found there'll be some brief explanation on the problem and how to solve it.
- A better/centralized XNA resource collectionI think I've checked the major XNA community sites as well as the MSDN documentation (it's so slow!) and honestly it isn't enough. There are a lot of good tutorials out there but there's no organization (and still not enough tutorials)! It would be really awesome if there was some site that collected everything into categories or something like that. I realize this isn't really Microsoft's ball so yeah... anyone who's good with websites.. it'd be really appreciated I think. Or maybe have some of the major sites get together and make some joint site?
As many people have said. One of the major obstacles of making managed code more viable for professional game development is the fact that C/C++ has been around for a decade and the codebase, solutions and so on is just too huge to put away. So building up a real major dedicated community site would probably give XNA a nice boost as well as making things easier for us new people. Well.. it's already a lot more easier but yea.. :)
As it is now... finding something is just as easy as losing it. It's really hard to keep track of a zillion threads, mini-tutorials.. and so on.
On 3D:I think the reason I started to like XNA was cause the process of making 2D games was pretty simple. Since DirectDraw was removed(?) it has apparently been quite of a hassle to do in DirectX. Anyhow.. 2D is kind of limited but that's where XNA is shining the most. But I think that is only because there's so little information on the 3D aspects of XNA... and it's such a huge subject. Mostly it's the "links" that lack information (you will see what I mean).
- Going from 3D modeling application to XNA.Everyone knows how you can load and draw your models with XNA. Just export to the .x or .fbx format. So far so good...
But the whole aspect of what gets out from the modeling application and how you can access it in a good way. One thing that has eluded me is how I can make a level in say.. 3D Studio MAX and get it working in a game.
Just loading and drawing could be the same as any model really. But what about physics? Obviously I need to create some kind of collision data but how? There's most likely many solutions but... how do I do it in ONE way in XNA? Oh.. and then we have culling and all that fun stuff. Obviously this depends on the game.. just think a regular FPS game. I mean.. I've done most of the Riemer's tutorials and that shows terrain generation and some basic collision but.. honestly a heightmap doesn't have any resemblance to what I'm thinking of.
Oh and yeah... what exactly gets out and can be used with XNA by default? What happens if I group objects together in 3Ds? Can I get them out as a group in XNA too? Or hierarchies.. and so on. There's literally nothing about this anywhere.. at least from what I've seen. It is really one of the more important things to get 3D games going.
- How to get animations workingDo I even have to say anything? I don't think I've seen anything about this except that simple animation sample.. but I think something more advanced can be shown? Or less advanced maybe?
- 3D PhysicsI already mentioned physics once. But this is really the heart of a 3D game. You can have the best graphics in the world but it wouldn't get you anywhere without physics cause your character would fall through the world. Obviously physics can be done in many ways but hey.. there aren't even any bouncing ball samples out there I believe.
Summary:
Well, there's probably a lot more that I missed. It's getting late and these are the main things that I've had on my mind. In particular it's loading levels and distributing the games... well basically the things with a lot of text or the things mentioned more than once.
Anyhow.. any thoughts or comments are welcome
Oh.. and this post is kind of selfish :)