iO – A little history

I’ve mentioned it from time to time, but as yet I’ve not really gone into any real detail about the development of my iO project. In this post I hope to remedy that a little starting with some history.

Some years ago (around 2004/2005) I created a somewhat complex game concept which for lack of a better name I called ‘spod’. It was a robot construction game in which you were tasked to create a team of automated battle robots and pit them against teams created by other people (or and AI opponent). Without doubt it was far (far far) to ambitious, and as such it was never completed.

The screenshot below shows the main robot editing area.


Looking back at it now It’s clearly a disaster of poor interface design. If you knew what things did and how stuff worked then you could create some really interesting robots but in terms of usability it was a very long way off the mark. Any new player would probably spend a while poking a things feeling generally lost and then just quit. That or just quit in horror at the sight of all those buttons.

So I stopped.

Instead I decided the best thing to do would be to select the core mechanics and ideas that I wanted to include in Spod and make a much simpler game out of them. Something approachable that anybody who liked building stuff could be drawn into. So after some thinking I distilled it down to something like this:

Build a thing … set it against things your friends have made … be ranked by the results

I realise that’s a pretty abstract and vague position from which to start writing a game but I was sure I’d work the details out as I went along. All I needed was to decide on what the ‘thing’ was, how it would compete against other ‘things’ and how the ranking would be dealt with.

Very quickly I decided that the ‘thing’ should be something more like a program instead of a robot. This would avoid the need to make hundreds of different robot-bits, instead I just make a few program-bits and have lots of ways of combining them (a bit like lego). However, as any programmer will tell you, programming is neither approachable or fun to watch so my big challenge would be to make something that was like it, but fun. As I mentioned in a previous post this search took up most of my effort and ranged from the super complex to the numbingly simple.

Eventually (and for a long time) I thought I was on a good path. At the sad expense of being able to challenge your friends creations I had added some simple back story (save the digital universe), crafted a simple graphical programming language (much like logo but with icons) and created a handful of characters to lead the player through the game world. As you can see from the screens below, this concept went quite a long way towards completion.

  iOScreen2Main World View

iOScreen1Team Selection Screen

iOScreen4Program Editor – with incomplete icons

iOScreen3Character Intro Screen

In several areas it was a great success. It was much more approachable, it had a tutorial plus a help system and it was very often quite fun to play. I like to think that if I had a whole lot more time I might actually complete it (in some form).

So why was it not finished? well, for one thing It was also starting to get too big and for another, I regreted having taken the ability to challenge your friends out of the design. At this point I still had all the rest of the levels to create, the sounds, music, effects, end game, power-ups, dificulty balancing and the rest of the program editor to write. So Instead I put it all aside and wrote ‘Efficiency’ (which is exactly the right size for a one man project) and decided to take another look at making the iO project even smaller.

What happened next? well that, I think, will have to wait for another time. This post is already an epic.

At some point I might zip up what there is of the intermediate iO project and make it freely available (as is). That of course depends if there’s any actual interest in such a thing.


Leave a Reply

Your email address will not be published. Required fields are marked *