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?