Tell me more ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I couldn't find good overview of those and decided to ask experienced people. I'm writing in C# and want to learn some 3D graphics stuff. I used to write some 3d scenes and shaders 4 years ago in DirectX SDK and C#. In fact, I started learning C# from those directx tutorials. So I'm already familiar with simple shaders, effects and meshes. Now I want to learn some more but I found out that DirectX SDK is no longer exists and Microsoft has developed XNA Game Studio instead. So, since I have to switch framework that I knew, I want to ask which one better suits my needs.

Here is the list of my preferences:

  • I want is to write some game-like stuff.
  • I will use C# language.
  • Performance does not matter, I'm not going to write production quality code.
  • Ability to quickly write what I want does matter, I don't want to write lots of engine-kind stuff.
  • Engine architecture should be .NET-style (not just straightforward C++-like P/Invoke wrapper)
  • I will use external physics processing (PhysX I think)
  • I want to write lots of shaders, preferably in HLSL
  • I'm not going to add lots of content and assets, I'm even not going to ship the game. It'll be kind of testing-world app.

So, basically I need framework, that will handle all game mechanics like setting up viewport, switching resolutions, model loading, animating, physics processing etc. and will let me place some objects to scene and customize their look and interaction parameters.

What engine should I use? And why? I heard about XNA and OGRE, are there any other notable engines?

share|improve this question
@Poma: Where did you find out it doesn't exist? How could we ever write in D3D11? – Marnix Apr 7 '11 at 21:50
I mean managed directX SDK. And thanks, I didn't noticed that gamedev site exists. – Poma Apr 7 '11 at 21:53

migrated from stackoverflow.com Apr 8 '11 at 9:44

4 Answers

Xna is more a framework type of thing. You will have to create your own Nodes and set up your own type of scenegraph. A lot is done in the framework (like math).

If you are going to work on your own, Unity is indeed a good option. It contains PhysX.

Another option is not in C#, but mentionable: http://jmonkeyengine.org/ (Java)
I heard good stories about this one. It contains a physics library.

Ogre is C++ all the way. It has a very strong community, but it's maybe not what you want. Another engine could be Panda3D, which is python and C++. So also not what you want.

And there is also the Unreal Development Kit, which you will do in UnrealScript. It is somewhat the same as C# and Java and is parsed by Unreal. This engine has a large community and a lot of tutorials. It supports shading and all of that as well, but has a very overwhelming interface.

So yes, Unity is a very good beginners engine (and the Pro version of €1000 is very well). The free version misses a lot of options you might want (RenderTexture, Primitive GL support for drawing lines, external dll's, Subversion?) You can create nice little games with the free version though.

share|improve this answer

Sounds like you actually want a game engine, not a graphics rendering engine.

Check out Unity3D, should have everything you want.

share|improve this answer
@Adam: Depends on going on your own or showing €1000 for subversion support. – Marnix Apr 7 '11 at 21:48

If all you want is a rendering engine, SlimDX wraps the DirectX API with a .NET layer.

If you want a scene graph (take into consideration that the are articles, that justly state that scene graphs go against separation of concerns and don't necessarily improve performance) then there are no good scene graphs for .NET, however you could wrap NVIDIA's scene graph or OSG.

If you want a game engine, checkout the comparison table at gamedev.net, you can filter by C# there.

share|improve this answer

You can look at SharpDX it generate code from the headers of the c++ directx api direct to the LI code of .Net

Read more Here

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.