How it all began
Well the idea to create a new game started around July 3rd after talking to my son. He really enjoys playing Nyan Cat on the iPhone, more to the point he really enjoys the dancing robot on the pause menu. It is a simple thing, but it made me think, I need to make him a game with a robot. We called it “OCARBOT” an amalgamation of my 2-year-olds own mispronounciation of his own name and the word robot.
I am a one man indie game developper, I often help out on other peoples games via making music or sound but at Room 1 Studios it is just me at the moment. I am very pleased how the game has turned out and (hopefully) people will buy it, as I plan to be a student starting my Phd study shortly, so hopefully this game and others I make in the future will help fund my research into music technology and education.
This is how and why I made it the way I did. I documented the entire three months development from concept to release and here is a short glimpse of that process, the full process will be the subject of a series of lectures and workshops that I will be giving at several universities and schools later in the year, the aim being to get people involved in coding, making games and just generally being creative with technology.
In addition to the Apple iPhone version a XBOX 360, PC and a PC “EDU” version are planned, the “EDU” version is a free scaled down version (Levels 1-16) with level editor for educators.
Shown here is the first beta engine of the game on the iPhone, the pink block is a “coder graphic” a stand in for where the robot would eventually be. The 0′s around the pink block are for checking collision, they are “0″ is this photo because there isn’t anything around him, logical. The only graphic from this demo that remains in the finish version of the game is the ladders/lift and even they have been altered.
It worked and I was excited, I didn’t have graphics (I’m not very good at graphics hence the name Pixelh8) but I could see it’s potential to waste several more of my hours on it.
This original engine only took about 2 hours to make but probably a month to perfect, with little tweaks here and there. The addition of the obstacles often caused major rewrites of entire chunks of code, but hey, the magnets magntise and the fans blow.
The design for “OCARBOT” had to be simple, it really did, it had to fit into 16X16 pixels on the iPhone and 32X32 on the XBOX360, so it needed bright distinctive colours. Originally I thought along the lines of “GNK power droids” from Star Wars but it was soon apparent it was too complex to draw something similar in such a limited space. So a bright red head with a white control panel, with blue legs was created.
The other “element” of the character design was his inability to jump, this was also based on my 2-year-old and his early attempts at jumping (he can jump just fine now, and off of eveything, he even has a Spiderman costume!). I supoose it is my warped sense of humour to make a platform game hero, not be able to jump but I feel it has worked out just fine.
Level Design and Story
Originally the entire game was to take place in a factory style world, shown here, but it soon be came apparent “OCARBOT” needed to venture further afield if this was to be a 50 level puzzle game the graphics needed to slightly more varied. The idea of different zones and subsequently lead to a pseudo-story. I didn’t want to give it to much of a story several of my favourite 8-bit games have little or no cut-scenes or story and this was definitely a tribute to those games.
I though back to all those wonderful 8bit platform games and decided to create five zones, six if you count the tutorial levels. Industrial, Underground, Forest, Sky and Space.
In the Zones
These are the six zones of the game, “Industrial”, “Underground”, “Forest”, “Sky” , “Tutorial” and “Space” I wanted and tried to make them as visually different as possible.
I learned a lot from doing these graphics even though they are incredibly simple. I learned to slow down. I learned not to draw the whole thing at once, but each part at a time, instead of the whole background, I made each individual bit and pasted them all together (I am new to the graphics thing). But needless to say I learned a lot, doesn’t mean I got any better at graphics, I just learned how to do it.
Ok, sure it is only a few buttons left , right ,up , menu and reset, but when you compare the “menu interface” with the “play interface” you discover the button you press in the “play interface” are actually the buttons on “OCARBOT”. Umm essentially you press his buttons to controll him, like a BIG TRAK, your programming the robot, get it?
Yeah, I know, I need to get out more, but for me some one who isn’t very confident with graphics, this was something was very pleased with.
I love painfully puzzle/platform games, but I didn’t want this to be that hard. Remember the original idea was to make a game for my son, and although in a space of just a few weeks I had made it a bit too complex for a 2-year-old, I didn’t want it to be too hard. Several people found my previous release “6X9” on the iPhone to be torturous so I calmed it down for this one.
I also needed to create an awful lot of levels 50 to be exact and I realised while making “6X9” hard coding the levels, compiling then testing takes ages, so I made a level editor in Processing which outputted a simple .txt file which I then cut and pasted in to xcode. (psst I didn’t know how to program in Cocoa then else I would have done it that way, I do now.) Still this took a while as I couldn’t actually test the game in the editor, I still needed to run the game each time I changed something, but it worked for the first 40 levels.
I’ll come back to this.
The Soundtrack and sound effects
For me this was the easiest part, once I got the main hook, which is utilised in most of the different zone music, I simply changed the accompaniment to it. Upbeat fast percussion for the “Industrial”, bass tones for the deep “Underground”, light and jolly for the blue skyed “Forest”, a little more intense for the “Sky” to comment on the increasing difficulty of the levels, and heavy delay on the “Space” music like stars twinkling. These are all generic conventions or in some cases cliches , I still wanted to use them for once in my career.
The sounds are mostly made by a BBC Micro and an Acorn Electron virtually identical in sound however the Acorn is a bit clearer to record from, there is also a Casio VL-Tone on the percussion in the “Space” music.
The soundtrack was released for free for a week a couple of weeks ago and contained all of the iPhone music but the full soundtrack will be released with all the extras once the XBOX 360 version is done.
Gameplay Design (Level Editor take 2)
I loved the editor I made in Processing (probably one of the best languages/environments to code in) but halfway through making “OCARBOT” I decided to learn XNA for the XBOX 360 and Windows Phone 7. Now, “OCARBOT” only really uses Up, Left and Right and the XBOX360 has plenty of spare buttons, it suddenly dawned on my why don’t I simply make the editor accessible by pressing the “X” button that way I could play test it right away and better still not have to recompile everytime, so I did.
It was an enourmous help to me especially on the last few levels which were quite difficult to plan out when you have to keep everything thing in your head.
Cut-scenes or not
I mentioned earlier that I decided NOT to use cut-scenes in the game, in the end, I did however still go through the entire process of storyboarding the game and produce the cut-scenes, even though they were, umm, cut. This one shown here explains how “OCARBOT” is to be made obsolete and be replaced by a new version of robot that can jump, in the end I just don’t feel it fitted the style of the game. The game does have an “ending” but just like certain type of plumbers first “super” adventure, you don’t find out what your looking for until you find it.
You never really realise just how much goes into a game, until you make one, those flashy menus don’t magically appear, the “frames” around the level don’t just magic themselves and the game logic certainly doesn’t fix itself if left well alone with a cup of coffee. It’s down to you, or me in this case. I had to do something I never do, I had to make a “to do” list, I had to “schedule” things. I had to play through the game at the end of every day and write a list of things I needed to tweak. I learned I was better at level design in the morning, better at graphics in the afternoon and better at coding when the kids were in better and couldn’t interupt my train of thought. It was a lot of late nights listening to Flying Lotus and DJ Shadow while coding. It was a lot of chocolate. It was a lot of hard work but it was worth it, because, I made a game, again.
The game took three months to make.
The game should be out on the iPhone in a couple of weeks, followed by the XBOX360 version which has a “junior mode” a simpler path through the game, with the Windows version popping out around the same time. Please consider buying a copy if not please help spread the word as the money will genuinely go to help support a student trying to make a difference in music technology education, you can read and watch more about that work here.
You can follow me on twitter @pixelh8 or @OCARBOT for updates and give-aways over the next couple of weeks.
Check out some cool and crazy fan art from around the world and there are loads more on the Flickr page here.
This is where I’ll put the known bugs to be included in any update.
Level 25 – While under low ledge if you jump off a block you get stuck. This is due to the little pop you do when you walk off something to make it look like Wiley Coyote having the ground pulled out from underneath you leaving you stuck partially in the block. Solution, raise the ledges by one block.
Level 28 – Two mystery block that are there visually but shouldn’t be there, they aren’t really there blocks happily fly through them so it is just a graphical error. Solution, update graphic file.
Level 36 – If you push a block down the center hole and then follow it down, as it pops back up it will get stuck. Problem badly designed. Solution, dunno yet.