Getting used to Ogre 3D

I’ve been using Ogre for a few days now, just going through the tutorials on the website and messing around, and I really like it. After the pain of programming a uni project directly in OpenGL, I was kind of dreading how much work it would be just to get a model into a real-time renderer. As an analogy, imagine wanting to cook a nice meal, and having to build the oven first – you know what you want the oven to be able to do, but actually going about it is a slow and painful process.

However, with Ogre 3D, the oven is built for you! If I don’t want to, I never need to go into quaternion maths, building a scene hierarchy system, frame listeners or any of the other complex engine necessities. After years of using 3dsmax, I found the Ogre workflow really simple and straightforward. There are lots of nice features and it seems robust. It is not too bloated in my opinion either – although the set-up process was rather long. The tutorials on the wiki website are really easy to read and learn from, although one was unable to compile on my computer.

Here are some screenshots of the demo scene I just made (having done Tutorials 1-6), using some example media and my own ships/ space-station:

You can read the code I wrote to create the scene shown in the screenshots here: – there’s exponential fog, texture shadows, a spotlight, a skydome, and some C++ structures like for loops to get me back into the flow! If you know some C++ and are somewhat familiar with making 3D graphics, I think the code’s pretty short and easy to read.

The structure of getting models into the engine takes some getting used to. There is a human-readable .scene file (which can be exported from Max, Maya, Blender, etc) and a dotSceneParser class. What this means is that scenes can be altered from within the .scene file, .mesh files and .material files without you having to recompile the source code. It’s amazing that you can use Max as your game editor almost, placing lights and objects, without having to constantly recompile your C++ code!

Here’s a screenshot of the “Easy Ogre Exporter” open-source Max plugin,, which is a really nice and simple way to get max scenes into the .scene format:

I had a really enjoyable few days taking it slow and learning all about Ogre – I don’t want to get disenfranchised by jumping in to making the game too quickly and doing everything wrong. Also I bought a load of expensive computer parts to make a new system, which will speed some things up a lot compared to working on my laptop – compiling and running the game takes about a minute, and those minutes sure add up. Hopefully I’ll start making the actual game soon though.


Tags: , , , , , , , , , , , ,

About reecpj2

I created this blog to motivate myself and chart my process in the production of a video game I am making over the summer. I also want to share ideas and feedback with anyone interested in the process! I'm not really a programmer; I starting learning C++ a couple of months ago. I did a C++ and OpenGL halftone program for a uni project, which, despite plenty of bugs, has given me the confidence to try and make a 3D game without a studio or masses of time. It remains to be seen whether this is total folly. I'm 20, male and studying Computer Visualisation and Animation at Bournemouth University, UK. I have always been interested in making games but haven't done anything about it since I was about 14 and making terrible flash games. I recently got an inkling as to how complicated games are when modding Skyrim to change the mesh of one hat. This is about the first time I've committed to sharing any work I've done online or started a blog/ personal website.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: