Sign in to follow this  

Disadvantages using XNA

This topic is 3489 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I often hear people say they only use the XNA framework for smaller games and demos. What do you think are the main disadvantages with using the XNA framework when producing a "large" complex title for the XBox360 (lots of content, massive multiplayer support, etc)? Is it that it's not complete enough, not stable enough, not fast enough.. Are the XNA components not good enough to match development on a larger scale? Please give me your opinion :)

Share this post


Link to post
Share on other sites
I wouldn't say you can't do larger productions with XNA. I think you can. I don't really know why it has been labeled as a ground for casual puzzel games.

It probably is a bit slower than pure c++ with directx, as it is built on the .NET framework. But I don't think it is by that much.

Share this post


Link to post
Share on other sites
I think a lot of it has to do with the marketing aroud XNA. The audience they are targeting is the hobbyist and independent developer, and most of the games produced by such an audience are small-scale. As for performance, I think the number I heard a while ago for XNA was like 98% of native.

Share this post


Link to post
Share on other sites
The only ones I can think of right off the bat:
-Portability, constrained to PC/360/Zune
-Controller support is limited(I heard it only supports the 360 controller)

I have yet to use XNA yet, so I'm sure someone can add more, or correct me if I'm wrong.

Share this post


Link to post
Share on other sites
Well when you're specifically talking about the 360, the main disadvantage compared to having a real dev-kit is that you don't have full low-level access to machine's capabilities, and instead have to go through a managed API. This brings the following problems:

-You can't manually manage memory. On the PC this is hardly a big deal at all (since even in native code you're working with virtual memory anyway), but on the 360 it's a different story. You have a very very limited set of memory to work from, and if you're looking to make full-scale commercial-level games you will probably come up against the limits pretty quickly. For smaller games it shouldn't be a problem.

-You have to work with .NET CF's garbage collector. Whether you love working with one or not on PC, on the 360 the situation is once again different because GC compactions can cause some serious latency. You have to be careful and forward-thinking with how you handle your data to avoid this (for example, using structs and making sure they don't get auto-boxed).

-No access to Xenon's (360 CPU) vector unit. Because of this your floating-point abilities are limited compared to many PC CPU's, or what commercial devs can achieve.

-No native access to Xenos (360 GPU). You're essentially limited to what you can pull off in D3D9, so that XNA is consistent for both the PC and the 360. This means you can't work with native command buffers, read from the GPU's z-buffer, manually manage tiling, or use MEMEXPORT. Also the biggest problem, IMO, is that you can't use the special FP10 back-buffer format. This is a special 32-bpp format that allows you to use floating-point components while still maintaining a small footprint for your back-buffer (which is important since a larger back-buffer means more tiles are needed in order to fit in the 10MB of eDRAM). Without this you have to either use A16R16G16B16F (which has twice the footprint and doesn't support HW blending) or some custom color-space in A8R8G8B8 (requires special shader math which adds complexity, also can't be alpha-blended).

-You can't sell your game, unless you find a publisher or somehow get MS to publish it for you.




Share this post


Link to post
Share on other sites
The other serious limitation is that the XNA Framework on Xbox 360 restricts your application space to 2.0 GB in size - this includes source code and game assets.

While most games by small or independent developers will never approach the 2 GB cap, contemporary commercial games are now reaching 10+ GB of game data. As an extreme example, Age of Conan just released with a record breaking 24 GB install after patching. That's a factor of 10 over what's allowed by the XNA Framework for Xbox 360 games.

Cheers!

Share this post


Link to post
Share on other sites

This topic is 3489 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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

Sign in to follow this