Today we want to highlight one of the many games based on Ogre3D that have come out recently. This time: iUBES:2
We asked the team behind the game if they could share some insights into the Ogre3D usage and how the game was built in general, and codrer was kind enough to provide those:
- iUBES was developed using Visual Studio Express + Ogre 1.9 ; I didn’t upgraded simply because everything was running perfectly fine, without any need for additional power. Even if I’m looking forward to try out Ogre 2.x in the near future.
- From my point of view, one of the main advantage of using Ogre engine is that it doesn’t carry any overweight. For this indie / somehow minimalistic design, it’d be a shame to ask for consequent configuration: Ogre helps iUBES running on almost any low-end laptop (DX9/ XP/ integrated graphics…).
- At this time I only released a Windows/DX9 version of the game. However, beta testers proved the game to be running perfectly through Play On Linux / Play On Mac steam emulation. I was quite surprised actually.
- No change have been made to Ogre, the game simply dynamically links to ogre’s dll right from the SDK. I only had to use my own functions for a couple of optimizations like math (hundreds of units bouncing on a spherical ground consume a lot of trigonometry), strings functions, … those kind of small things.
- I didn’t use further libraries than Ogre itself. I even decided at some point to discard OIS (I feel more confortable using windows API directly). Everything else (GUI, winsock, directsound…) has been written from scratch for maximum flexibility.
- Again that’s one of the things I DO love with Ogre: this is a pure rendering engine which doesn’t mix unrelated things like most game engines do. We can create our very own setup.
- Except from trees and the iubes themselves which are very low-poly assets created using 3DS, the world is entirely procedural. Ogre’s ManualObject class was a huge friend.
- As each building is build up bloc per bloc (hundreds), Ogre’s convertToMesh() method could have been a bottleneck. Hence each construction is split between a couple of meshes, then piled up and revamped from time to time during runtime.
- Apart from water which use a classic 2.0 fragment shader, all the other textures are using the fixed pipeline. Terrain and Constructions use VertexColourTracking plus modulative detail textures. Since meshes are built procedurally, vertex colours have major benefits here (using basic math to finely darken inner faces of a building to improve lighting, and so on).
- Fun fact: while I use PSSM hand written shadows on other projets, for this game I switched back to… built-in Ogre shadows (i.e. SHADOWTYPE_TEXTURE_MODULATIVE). Apart from some very little glitches, it fits quite perfectly my spherical world!
- At this point I may confess that I’m a huge fan of the K.I.S.S. principle…
- At the end of the day, this game only uses a fragment of Ogre’s capabilities, but benefits utterly from its versatility. “Hey let’s make a procedural RTS online game in a spherical world” – for such a custom idea, Ogre was the obvious way to go.
If you too want a spot on the news for your Ogre powered application, then you can e-mail us at .