Hands up which of you remember a truly beautiful little game called Head Over Heels? In case you've not had the pleasure of playing it, this game put you in charge of two intergalactic spies called Head and Heels who have been captured and imprisoned by the evil Blacktooth Empire. Through 300 charming flip screen isometric rooms, you drive the pair around, taking advantage of their unique abilities to firstly escape your confinement, and if you're brave, try and liberate five planets living under the iron rule of the Emperor. It oozed character, challenged you with diabolical puzzles, and the second I saw the first room, there was something just magical to me about having a little interactive world laid out in front of you, controlling your little fellow as he ran, jumped and pushed his way through his adventure.
And if that wasn't enough to sell me on the idea, doing a game like this has the rather splendid side-effect of ensuring all my objects keep a healthy distance from the camera so they won't look as bad.
So that's the kind of thing I'm working on: Head over Heels, plus some Fairlight, mixed in with some Darkmere and Relentless. I've got a few different ideas for the exact setting and story: a fantasy world filled with obligatory hulking barbarians and impractically lithe elves, a steampunk world set in an old London full of smoke filled pubs (I just finished the book Homunculus - brilliant), a 50s space B-movie, ... and the list goes on. How do I tackle such a huge list of half-thoughtout and entirely un-implemented game ideas? Why, I write a game engine of course!
I know, I know - writing a game engine is big and scary and a sure fire way to never make progress on your first game, let alone any others. But for me at least, this has worked out really well so far. It's allowed me to focus on one game idea to start with, safe in the knowledge that all I need to do is fire up Maya and start modelling my hefty barbarian, and my dungeon epic will spring to life inside the same engine that was only minutes ago powering a small smokey 1800s London pub.
Luckily for us, this whole engine dilemma happened a long time ago - and now that a few key pieces are complete, I can forget about XML, object models, animation curves, editors and console windows and start working toward something you can actually play. The final piece fell into place last night when I put in support for taking screenshots - so without further ado, let the screengrabs commence!
Here's a simple room in my test level showing my prototype tileset and a very long-in-the-tooth cow character I modelled in max years and years ago:
Here's the console (and if you look closely you can see the line of script code which is reaching in and changing the tint of the materials to red):
And here's a quick shot of the in-game editor that's used to assemble everything (you can see some tools down the left hand side, and the zoomy object palette along the bottom - the currently selected object spins around but it looks pretty crappy in the screenshot):
My focus is really on designing an engine and a content pipeline that's super easy to build a 3rd person adventure game in, so that myself (and anyone else) can just fire up their modeller and start cranking out objects that can then be dropped straight into the world through a super easy to use editor. To date I've only implemented Maya integration - but I might go back and dust off my old 3DS Max plugin at some point. I've also invested a huge amount in a pretty decent object model that should make it pretty easy to add new controllers and behaviours either in C++ or script.
Because I'm doing everything myself, there should be a bit of everything in here at different times: some low level architecture stuff, rendering, file format/streaming, level editing, scripting, character design, etc. We're starting off in the middle somewhere (or at least, not at the start), so there are lots of interesting things that are mostly or somewhat done. I'm happy to go back and write up a journal entry on some of these things if they're of interest to folk, but we'll probably bump into many of them as we go anyway.
Finally, there are two things I should warn you about:
1) I'm a complete donkey when it comes to the artistic and game design aspects - so check your expectations at the door
2) I'm slow. I'm doing this for fun in my spare time, and I enjoy taking my time to design things well rather than hacking things in as quickly as I can. This seems to provide a near infinite source of frustration for my wife, who has great trouble seeing any difference in things from one month to the next, but if you're familiar with the legendary "black triangle", you'll hopefully be able to bear with me.
With all the background out of the way, I'll hopefully start getting into some more current development items in upcoming entries. Thanks for reading!
Cheers,
G