Is XNA using DirectX 10/11 yet?

Started by
6 comments, last by Hazard_X 13 years, 5 months ago
I have been working on a game engine for a few years now and it has evolved into basically XNA. I still have bugs and stuff so now I'm just thinking about using XNA instead but I need to know it has some of the same functionality my game engine has:

Does it support DirectX 10 and or 11?

Does it have a physics engine and if so which physic engine is it using?

Is it reasonably fast?

Anything else I need to know about it?
Advertisement
XNA doesnt currently support DirectX 10/11. And future support hasnt been announced yet...

XNA games are programmed in C# instead of C++.

It doesnt have built-in physics support, but you can integrate PhysX (and other physics engines) in your game.

About the speed, I never used XNA but a lot of people use it, and there are, I guess, hundreds of games developed with the XNA framework, even games for XBOX360 so I guess it is fast...
Actually I think XNA 4.0 moved on to DX10 or DX11 but can only use DX9 on the Xbox360.

Something to do with Hi-Def profiles or something of the sort.

Err, maybe not. I am a bit confused on the subject but Shawn seems to say they just borrowed the state object designs from 10 and 11.

http://blogs.msdn.com/b/shawnhar/archive/2010/04/02/state-objects-in-xna-game-studio-4-0.aspx

so uh, never mind.
my blog contains ramblings and what I am up to programming wise.
XNA does not directly support DX10/11 but there is a library that does:

http://www.machinaaurum.com.br/blog/post/DirectX-10-in-XNA-40.aspx
How do you know your engine turned into basically XNA if you don't know XNA? :)

XNA is still DirectX 9.0c only and I very much doubt that this will change. The XNA devs have noted at every release that they've had to cut features, so re-implementing the whole graphics infrastructure on a second API is probably not going to happen. As least not by Microsoft.

Physics engines are a bit rare. The most famous and complete ones are BepuPhysics and JigLibX to my knowledge. Some russian developers also started a port of Bullet (named BulletX) but abandoned it in a semi-working state. XNA isn't that great with number-crunching (and there are no SSE2 intrinsics or anything like that), so fully managed physics engines aren't quite as fast as their native counterparts.

Using native solutions like PhysX, Bullet and such is possible on Windows, but XNA doesn't allow the deployment of native code to Windows Phone 7 or the Xbox 360 (you need the Xbox SDK for that).

It is reasonably fast, I'd even go as far and say that performance in general is fantastic. Programming with XNA is a pleasure as it completely hides lost devices and has a decent and extendable build system including HLSL compilation and model importers already integrated.
Professional C++ and .NET developer trying to break into indie game development.
Follow my progress: http://blog.nuclex-games.com/ or Twitter - Topics: Ogre3D, Blender, game architecture tips & code snippets.
As some other people stated, no. XNA is built atop DirectX9. When will it upgrade to 10 or 11? Probably when Microsoft releases the XBox-720-Xtreme-HD 2018A. :) And that's one of the principle reasons I switched to SlimDX.

Don't plan on seeing any radical changes to the XNA Framework anytime soon. I'm only interested in PC development at this point in time (and have been so for a long time). It always annoyed me that it was technically possible to boost XNA's PC capabilities WAY up, at the cost of compatibility with XBox, Zune, etc. And the differences could simply be stated so that cross-platform developers could stick to what works all across the board, while PC-buffs could go to town with the latest, cutting-edge features. But that's not happening. While it's technically possible, it's a logistical problem for the guys who would have to build it: MS's XNA team. You might think MS is sooo big and they're just being lazy. But then you remember all of the (probably hundreds of thousands) of projects the entire company's programmer workforce is split up into teams to do. Needless to say, they don't have a million man army to devote to XNA. So I forgive them. But I'm going to stick to SlimDX for big PC projects, and I'll use XNA for hobby projects and quickies.

As for physics...my philosophy is that a well-designed and written managed physics engine can be just as fast or faster than a native one. I believe this because you can very easily create a heap of nightmares (pun intended) in big C/C++ projects, and the CLR manages memory extremely efficiently (though not always very transparently). If you do things right, you can have a hot, smokin managed physics engine (or practically anything) which can match or beat its unmanaged counterpart (theoretically at least).

I just spent today doing some benchmarking of my own code (C# and native C/C++). Nothing yet has convinced me that either language can blow the other out of the water. The advantages of each mean you can do certain things quicker and more efficiently than others. Never just assume language A is better and faster than language B. Because language A might do X better, while language B wins at doing Y. The only way to know is benchmark, analyze and find out what works the best for you. Also, what good is it if you have a 0.03% faster physics engine written in straight C if it takes you three years longer to do it than doing the same thing in C#? Just saying, don't jump on any bandwagons!
Quote:Original post by glaeken
XNA does not directly support DX10/11 but there is a library that does:

http://www.machinaaurum.com.br/blog/post/DirectX-10-in-XNA-40.aspx


That's a very interesting proof of concept, but it's not more than that at this point.
Use SlimDX if you really want to develop for DX11. XNA is (and will ever be) a X-BOX interface and thus is limited to DX9.

This topic is closed to new replies.

Advertisement