December 30, 2007 § Leave a comment
I guess I should admit it – I’ve been sidetracked over the last few days. Yesterday was not a particularly eventful day, the only real feature I got was mouse picking for tiles (and that caused far too many headaches for what it’s worth…) and sorta hit a dead end on what is the next logical step for progressing the engine.
Of course, when a decision needs to be made, what better place than to do it on IRC? The conversation went waaay off topic as always, and we started exchanging screenshots of our desktops (I did say way off topic) and my “real” desktop is my Mac not the Windows machine. So I restarted and thought… why can’t Overload run on here?
The Mono project is an open source effort to create a .NET implementation that can run on all operating systems, not just Windows. I gave it a try and wow – 1 compile time error! Saddly, runtime was far worse. Firstly there’s no Direct3D support on Macs, so the Direct3D renderer is already useless. Secondly, the System.Windows.Forms implementation in Mono is custom, not native to the OS. It also just didn’t seem to work, so I’ve slightly moving things around inside Moebius, Overload’s engine. Moebius now has now dependancies on SWF and all window management is handled by SDL. It is one more essential dependancy, but it’s not huge – and SDL is quite easy to redistribute.
Renderers are now given a handle to window created by SDL and are in charge of attaching themselves to the Window. I haven’t got Direct3D working with this yet, but it should be a pretty easy task. I wrote an OpenGL renderer and 6 hours later… here we are!
It’s exciting to know that Overload is capable of supporting multiple platforms now, and I’m glad to see that I’m finally capable of managing a cross platform project. Now, just got to wait for Daniel to get back from IOWA – and we can start some real development!