views:

2573

answers:

7

I've been thinking about tinkering with 3D graphics programming in .NET. In the past, I've thought about Truevision3D, and XNA, but I've not used either of these. I scanned Stackoverflow for the exact question, but neither of the (almost) relevant question (such as this question about rendering graphics, and this question about Learning Game Programming) answer my specific question.

Out of the graphics engine APIs you've used for .NET, which is the easiest to use, which has the most features, and which is the cheapest? Which would you recommend for a .NET programmer to learn first?


+3  A: 

I would suggest getting the XNA Studio 3.0 beta, as that will be the easiest way to get your game project up and running, and even give you the option to compile the game for both PC and Xbox 360.

http://creators.xna.com/en-us/3.0beta_mainpage

TravisO
+2  A: 

The Tao Framework is open-source and cross-platform. It includes bindings for OpenGL, SDL, and various other game development libraries. This would allow you to easily port to other OS's with Mono later.

Also, knowledge of how OpenGL work applies much further than .NET. Understanding OpenGL will come in handy if you ever have to work with non-.NET code.

Mark A. Nicolosi
+1  A: 

If you're targeting Windows or XBox, XNA is the easiest to work with. I've tried a few and even rolled my own (great exercize, but way too much work to make efficient).

GeekyMonkey
Yea, i tried rolling my own - but ending up smokin it ( ;-) ) since creating a 3D engine from scractch was - more time than i have this life :-)
schmoopy
+2  A: 

Actually TrueVision and XNA are not of the same class, you can't compare them directly. XNA is more like an API provider for your graphic card, comparable to Managed DirectX.

If you're looking to write a Direct3D based game from "scratch"(to ahve control over every aspect), you can look into XNA or SlimDX. XNA has some restriction over the existing DirectX, which is that you must use shader to do most of your effect(alpha blending, multitexturing, bump mapping), where as the original DirectX would allow either shader and or FFP(fix function pileline). You can't go far with FFP, but for simple effect, it's more than enough. With so much Direct3D sample you can find online, it's harder to learn if you need to convert every one of them into XNA. XNA do have a good community, but nothing compare to DirectX's. SlimDX is a managed wrapper for DirectX, allowing you to use DirectX without learning C++. Thus with a little bit of conversion, you can easily get those sample online working in no time. I'm currently using SlimDX for a production project.

As for Game Engine, which does most of the basic job for you behind the scene, there's plenty to choose from. It's hard to make a decision here. I would suggest you to look at Ogre3D and it's .Net wrapper MOgre3d. Actually I was considering MOgre3d before jumping to SlimDX, but I scrapped the idea later due to the fact that support for video playback is weak in Ogre3d.

faulty
+1  A: 

I've used XNA a bit, and it's pretty nice...

The built in libraries are GREAT. I implemented all of the Vector and Matrix stuff myself in the past (for a class) using c++ / OpenGL, and it is certainly very very nice to have a well thought out library that is designed with 3D games in mind.

If you've never done 3D graphics, the barrier to entry is going to be pretty high, although the documentation isn't bad, and the library is great, you still need a considerable amount of relevant knowledge if you want to get anything decent going.

On the other hand, if you do have a background in 3d graphics / game programming, be warned that XNA uses matrix multiplication "backwards" (uses inverted versions of your matrices to do it this way). It's easier to read this way, since the "first" transform goes on the left side, but if you used any other systems, you will likely make the mistake of doing your multiplications from right to left rather than from left to right.

TM
A: 

From MY own experience - I would avoid TrueVision at all costs. I purchased a licence a year or so back and my experience was horrible - thier documentation was horrible and very incomplete so i turned to support and forums - It felt like a company ran by 16 year old kids with attitudes - when the 'developers' weren't pissing you off with thier attitudes and you werent getting bashed in the forums - well, it still wasnt a pleasant experience. .. Just to be clear, i was not asking Noob questions and looking for help w/o consulting all of the documentation and forums.

I had a fully functional 3D game (very limited but used some very nice models others had created) - but because of the dealings with TrueVision I abondoned the project.

I have since 'played' with XNA which was really good. You might want to take a look at SlimDX also (just learned about it).

schmoopy
A: 

A few of my friends built a little game using Xen and were quite impressed with it. It's built on top of XNA.

Mark Simpson