Chris McGuirk's WebLog

Axiom on Linux/Mono

It feels good to hush all the naysayers who thought .Net code would never be portable.  With an extremely minimal time investment, I've been able to run Axiom successfully on Fedora Core 2 on Mono 1.0.5.  There were a few minor differences in the MCS compiler vs. CSC, but overall it was fairly painless.  Whats even cooler is seeing the 3rd party assemblies (such as the Tao Framework) work on both Windows and Linux without recompilation.  With a little help from the <dllmap> .config option, PInvoke calls to native libraries like opengl32.dll can be redirected to libGL.so on Linux, which removes the need to compile seperate versions.

Here is a screenshot of it in action: http://www.axiom3d.org/Axiom/linux1.png

.maxstack 1 ldstr "Hello world!" void [mscorlib]System.Console::WriteLine(string)

 I’m new to this game so I’ll keep it short for the first post.  I’m an enterprise application developer by day, and a game developer by night (sometimes…late at night even J ).  Over the last year I have been porting the C++ OGRE (Object-Oriented Rendering Engine, http://www.ogre3d.org) to pure C#, and I’d estimate I’m about 75% there.  The effort is dubbed Axiom and the source is available at http://axiomengine.sourceforge.net. I’ll be blogging about that most of the time to bring some “fun” programming into the mix, and also bring up comments about what I’ve come across along the way in trying to develop a high performance C# application.

It is currently in pre-beta, with a beta release hopefully available in the next week or 2.  Currently I’ve implemented an extensible scene graph, Managed DX and OpenGL (using Tao.OpenGL, http://www.randyridge.com/Tao) render systems, skeletal animation, numerous texture effects, basic GUI elements, a DirectInput plugin, programmable pipeline supporting both low-level shaders and high-level shaders with a Cg plug-in currently being wrapped up, a fairly complete math library, and much more. 

More Posts