DirectX vs XNA

Started by
3 comments, last by G-Man9566 14 years, 1 month ago
So my understanding of the difference between DX and XNA is that: - DX is mainly for PC and XNA mainly for console(XBox) - DX is mainly native and XNA mainly managed I'm not even 100% sure that these statements are correct, but that is how I currently understand the difference. Now my question is, is there any reason, if I develop mainly for PC, why I should not use XNA, since managed is so much nicer to work with and easier to maintain? What are the consideration that I should take into account if I want to write a game engine for PC when it comes to deciding between DX and XNA?
Advertisement
Either platform is equally viable for the PC, its just that XNA makes it easier for indie to get on the Xbox.

The only possible drawback for XNA on PC is that you will be stuck with whatever DirectX version the current Xbox has. AFAIK XNA is DirectX 9 most likely until the next Xbox ships. If your game doesn't have Crysis graphics though DirectX version probably makes little, if any, difference to the end user. Look at Modern Warfare, it looks amazing, gets 60 fps on the Xbox, and sells a bajillion copies. =)
Quote:Original post by G-Man9566
Now my question is, is there any reason, if I develop mainly for PC, why I should not use XNA, since managed is so much nicer to work with and easier to maintain?

Note that XNA is not the only option you have for writing a game in managed code on the PC. You should take a look at SlimDX if you want to write in managed code and see if it fits more with your project.
Some other anecdotes and wisdom I'll throw out there...

1. In general, getting started with XNA is a lot easier than native D3D. D3D9 has quite a bit in the way of helper classes, but D3D11 has almost nothing in that regard. And either way you still have to deal with things like getting a window up and running, or managing a game loop. XNA has a framework you can use to handle these things for you (you don't have to use it if you don't want) which lets you get up and running very quickly. The XNA Creator's Club site also has an extensive education catalog that includes tutorials, guides, samples, and starter kits.

2. Using native D3D requires a decent grasp of C++. A lot of people try to learn D3D without learning C++, and they end up getting stuck really quickly. You'll of course want to also know C# before doing XNA, but in general it's easier to learn C# (and also a lot harder to **** up with C#, IMO).

3. With XNA you can target the 360, as well as Windows Phone Series 7. These present two places where you could possibly sell a completed game. You could sell on PC too of course, but there's no built-in marketplace or anything like that. You would have to try to get your game on Steam or something similar.
Thanks a lot for all the replies, this make it very clear.

This topic is closed to new replies.

Advertisement