I was really excited about finishing the MMOG networking code recently and moving over to the Reality Engine. However, after looking at and discussing it for a few days it seems like there are some serious flaws in the design of RE.
First of all, they wrote most of the game in script. This is fine, except that the script they chose was C#. Which is also fine, except that C# requires that your end-users install the .net 2.0 framework. This is unacceptable because, at least with downloadable games, users might choose not to do that. I don’t blame them. Who wants to install some bloated crap from Microsoft and slow down your system just to play a game? It’s almost unheard of for a game to require you to install some 3rd party application just to play the game.
So now I have an engine with no game code.
Doubly bad, they also used C# for their GUI designer.
So I have an engine with no GUI code.
They also tied in Ageia physics to their physics library. Which itself requires an installation of a 3rd party driver. Which is also unacceptable for the same reason. So now I have an engine with no Physics either.
I’m not going to use their networking because although they used RakNet, they did a bad job of implementing it. So I have an engine with no networking.
RE has a good renderer. Except their toolset is very limited. For example, no particle editor and support only for MAX. Oops!
At least I get support in an engine right? Nope, because they aren’t answering the forum anymore.
So I’m left with a sound engine… an input engine… not much else really. I already have a sound engine though (OpenAL). I already have an input engine too.
So what am I left with?
I guess I have the option to either continue to use Irrlicht or to swap and start over with Ogre3D (Duke Nukem Forever!). I don’t want to keep starting over but the problem with Irrlicht is they are years behind Ogre3D. I really like how well written and easy to read and use the code is. But there’s no editor and a hell of a lot of other stuff missing. I spent quite a lot of time writing my particle editor. Then I was faced with writing code to render text on the screen. And so forth. With so much time spent on low level things, it would probably be faster just to use Ogre3D. I’m on the edge at this point and saying “Fuck it” and starting over with Ogre3D. It’s a sunk cost fallacy to stay with Irrlicht just because I already spent a lot of time on it. The question is, what is the fastest way to get my game done at this point? And it’s probably starting over with Ogre 3D. Since my network code is abstracted out I lose nothing there so I’m still maybe 40% done.