Nat! bio photo

Nat!

Senior Mull

Twitter Github Twitch

C# .NET 3D Frameworks / Wrapper Frameworks built-in obsolesence ?

I am looking into a 3D engine framework for a C# application. 3D Engines get released and abandoned at a frightful fast pace only a very few survive for a few years. As I want to use the 3D engine in an enterprise class application, it needs to have longevity which basically means open source. I have spent a good deal of my life profitably rewriting abandoned vendor frameworks, but I would rather do something else now, if I can help it.

Enterprise class meaning, an app that has to work for more than a few years.

So anyway what I found to be available for C# .NET coding is:

Wrapped Engines

Name Language Version .NET Wrapper Wrapped Version Latency
Irrlicht C++ 1.4.1 Irrlicht.NET CP 1.3.1 1 year
Horde3D C++ 1.0.0 Horde3D .NET 0.13.0 1/2 year
Ogre C++ 1.4.9 MOGRE 1.4.8 1 month


One major problem with the wrapper frameworks is, that they are maintained outside of the main project and aren't released with the core frameworks. So there is always a latency between a core release and a wrapper release. The common theme of these frameworks is, that they are maintained by students. Students like to code for kicks but maintaining gets boring very fast and after they leave college they suddenly have no time.

There is nothing wrong with that, if you don't get paid, do what you do for fun.

Irrlicht used to have a .NET framework inside the core release, but it got abandoned in favor of the third party product...

Quick Judgements

The Irrlicht CP wrapper is just lagging too much, to be a candidate. The Horde 3D .NET wrapper also has the looks of being abandoned. So MOGRE is the sole survivor in the wrapper category.

Native Engines

Name Language Version Adoption Release Latency
Axiom C# 0.7.3 0 1 Year
Axiom Multiverse Branch C# 0.7.? 1 3 months
JAD Engine C# 1.0 0 unknown

Adoption is the number of real outside projects, that use the framework. Axiom gets a zero, because the only real project using the framework has created it's own fork.

Quick Judgements

Until I looked into the Multiverse branch, I discounted Axiom as another abandoned student project. There is little traffic in the forum and the threads that exist are all about fairly basic problems. The JAD Engine is short on developers and it sounds like its dying and can't yet boast a single outside project, that has adopted it.
So Axiom Multiverse Branch is the sole survivor in the native category.

Remote Alternatives

Name Language Version .NET Wrapper Wrapped Version Latency
OpenGL - - TAO 2.1.0
Direct X - - Xna 2.0

Quick Notes

Xna is not open source, but Microsoft usually - contrary to other vendors - does not abandon users at the whim of the CEO and it certainly isn't expected to go belly up in the foreseeable future. Therefore the Open Source requirement could be relaxed at this point.

Tao appears to be a collection of well maintained and ill maintained wrappers for OpenGL, SDL and some physics frameworks.

Both are a little bit too low level for my wishes (yet).

Conclusion

Without looking into any technical details yet, there are only two candidates left MOGRE and Axiom Multiverse. MOGRE carries the stigma of the wrapper with it and Axiom Multiverse is just used by one project. Both choices are not very enticing.