ORE gets off the ground
Well, after nearly 12 months of no action, I’ve decided its about time to resurrect our PGD competition entry from 2006. I’ve also decided that although we’re going to try and sell it, I’m going to keep a track of how things are progressing with the project on here.
Since theres a good chance you don’t know what the aims of the competition entry were, let me give you a brief overview. We wanted to create a top down 2D retro style roleplaying game (Hence the name… Outer Reaches Retro Roleplay Engine – or *ORE* for short). To begin with, the competition entry was looking good considering it was the first time I’d ever written a client based game engine, but towards the end… it was a nightmare.
The first thing I guess is to say where I went wrong with the orginal… thats easy… time pressure throughout the competition meant I made decisions on the fly without actually thinking about what I was doing. The net result was some very poor decisions that had serious consequences the further into the project I got. I actually had to rewrite the whole play engine in an attempt to make the final deadline, but to no avail… we lost by a whisker
to Tanx.
So, the first thing to do this time around is to actually think about what I’m doing and to try and address some of the issues that caused problems with the competition entry.
The first major hurdle was load times… All our image data was stored in an imagelist that formed part of the game data object that held everything about the game as a whole. When the game started, it had to decompress this object (a requirement of the competition was submissions that were less than 20MB in size)… this took an age, but what was weird was it took longer on faster machines? Scratch my head did I, but I couldn’t explain why this should be. Anyhow, this also created problems elsewhere… I was using unDelphiX and one thing that its not so hot on is dynamically loading media… you have to deinitialise it, load your media and then reinitialise. You also have to do this when changing from full screen to windowed mode. So, the more image data you have, the longer this process takes.
The other major hurdle was script execution times… Since I was going for flexibility everything was event driven and all the events ran Delphi Web Script II scripts. This sounds great, but it lead to some jerkiness when you moved…. you’d run into a new map cell and*clunk* a short but noticeable stop as the system waited for events to be checked and executed as required.
The final hurdle was one that any project can end up with if careful thought and consideration isn’t given to the guts of the system… Object/class/data mishmash. Not to put too fine a point on it, the code was a mess… convoluted callbacks, unnecessary checks in the play engine, and in general… code that was cobbled together on the fly in a complete rush to meet competition deadlines.
With these issues in mind, I’ve started work on a new version
One which *shock* *horror* I’m actually designing… yes, you did read correctly… designing first. I’ve decided its about time I did a proper job on one of my own projects so that instead of it becoming a mess, it actually has a decent chance of becoming a real viable little product.
So, without further ado, I’d like to introduce the first three class diagrams….
First up, its the map editor brush classes. These will be used to build complex brushes within the map editor allowing the placement of multi-tile elements, scripts, visibility etc. with a single click.

Next up, the map zone classes. These will be used to provide ‘zones’ on the maps. You could be in a forest zone for example, that will have the sound of birdsong playing… you could be within earshot of running water (a river)… I’m sure you get the picture.

And finally… the map container classes.

Its not much, BUT, the map brush and map zone classes are complete
So, its a start and a huge step in the right direction.
And here is what the old ORE engine did at the end of the competition….



Well it’s about time! I think I hinted that you should do this almost 3 times in the last year.
What can I say… I’ve been busy
But work is well under way.