I'd like to program a .NET app that provides a 3D render of an animated world. I'm coding on a Windows PC, but many of my target audience will be on Linux.
There are a bunch of frameworks out there that look useful, categorised into high and low level as best I can:
Low Level Graphics
Game Development Frameworks
Are any of these non-contenders? What have you found to be the best option and why? I'm looking for any insightful comparisons, and recommendations for/against. Some of these claim to work as XNA substitutes. Does this literally mean you can deploy to Win/Mac/Linux as well as Xbox? Is there a catch?
I'm not yet familiar with OpenGL/DirectX/XNA APIs for 3D graphics. Are any of these easier than others to work with? Do you lose any flexibility/power/performance due to higher abstraction levels?
Note that I won't have access to a Linux machine for a month or so, so I won't be able to test my development on Linux (hence this question).
EDIT I found this table which adds a few more to the list. I've merged them above.
EDIT 2 I'm leaning towards Axiom. It gives a pretty rough landing, but shows real promise in terms of features. Here is a great summary article with user reviews. But so far the beginner documentation and sample projects are pretty hard to make use of. Tutorials all reference different versions of the API, and they all recommend you use different base classes (not included in the API) to get started. Certainly not designed with the Pit Of Success in mind, but still promising.
Maybe not quite what you're looking for but, Unity3D is a cross platform 3D gaming environment which is based on Mono, which means that you can code the bits you need to in C#. There are indie and pro versions with the indie version being free. http://unity3d.com/
Use OpenTK
I'd second the idea to look at Unity, which if I remember rightly uses C# as a scripting language to let you write the game code (using Mono), allowing the actual rendering engine and so on to use native code (presumably C++).
Otherwise, I'd be wary of using Mono for anything like 3D graphics or other 'hard core' uses... anything involving GUI or rendering I'd be nervous. But that's my personal choice, if you've time to spend researching it might be worth throwing a prototype together... but i would not write a lot of C# code without the ability to test it on Linux very early in case there are big issues.
You might look into using Qt and OpenGL. I imagine, however, that OpenGL is probably too low-level (read: "needlessly complex") for your particular needs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With