Irrlicht vs. Ogre for mobile game development
I have been evaluating several 3D frameworks for cross-platform mobile game development lately. Here’s my findings. To stay objective, I am just going to state a couple of hard facts as conclusion:
Irrlicht is smaller than Ogre. I did an actual experiment using both. I compiled both into static libraries (required for an iPhone deployment). A “Hello World” app with just one line of
irr::createDevice(to get stuff statically linked) results in an 4MB executable; the same app with one line ofnew Ogre::Rootresults in an 6.5MB executable. The Ogre one is already heavily optimized by disabling FreeImage and some other components. (For the record, Cocos3D’s “Hello World” app demo is 2.5MB, but it is not cross platform at the moment).The Ogre-iPhone “branch” is official; the Irrlicht OGL-ES branch is not official (yet).
Ogre-iPhone can do shader programming (OpenGL ES 2.0). There are OpenGL ES 2.0 files in the Irrlicht OGL-ES branch but I have not played with it and don’t know how mature it is.
That’s it. The size point might not be that relevant for desktop development but definitely is when it comes to small game developments. I actually prefer Ogre’s “more complicated” “syntax” (a much touted disadvantage by Irrlicht’s community) better but for this one I think I’m going with Irrlicht.
Nice post… I’ve been doing the same rounds, though I’m more focussed on the language i’m ultimately going to be working in. I’d love to end up with the whole thing scriptable from python or another high-productivity language, rather than working in c++ or lua (which tbh is a hideous compromise between scripting and true programming for games development).
Something like oolong has the advantage of simplicity, but I’d like something with long-term usefulness across a number of 2D and 3D projects. How has Irrlicht been working out for you? One difficulty I’ve run into has been a lack of decent starter projects, have you found anything useful in that area?
Comment by Kerome on December 22, 2011 at 8:08 pm
@Kerome
The Irrlicht official tutorials where more than enough to get me up and running within a day. This is another area where Irrlicht is IMO way ahead of Ogre — in terms of getting it up and running fast. Irrlicht tutorials often get straight to the point with one “main.cpp” file. (Though, I do appreciate the relative “elegance” of Ogre)
From my experience, if you’re doing mobile development — you’ll want to do C++ plus a bit of Lua. Let’s face it, mobile platforms are slow. If you want to squeeze performance (and you will) you really want it fast and small. Actually, as I mentioned, if not for the size reason I would probably have chosen Ogre. I speak from experience here, performance is really a concern on mobile platforms (and my favorite languages otherwise are things like Ruby, Haskell and friends)
Comment by kizzx2 on December 23, 2011 at 12:08 am
Hi, kizzx2, thanks for your nice work. I’m trying to use irrlicht as my iphone & android game engine, cause I have some impression, you might say it something like bias that the german things very robust. And in your article you mentioned that the irrlicht is little bit light-weight than ogre and that is also what I want, which makes our world in a more controllable way. BTW, I’m trying to build irrlicht on iphone & android too, since there are no official edition yet, I’m wondering if there is any possiblility for you to mail me a copy. Thanks for your sharing again.
Comment by david.wan on January 10, 2012 at 12:30 am
@david.wan
Since the Irrlicht ogl-es branch keeps evolving (still not officially released), you’re better off keeping up with SVN branch.
I published a branch of it at GitHub. It should be xcodebuild ready. Check it out
Comment by kizzx2 on January 10, 2012 at 7:51 pm