Robot Finds Ice Cream Post-Mortem

Well, it’s been well over a week, time to talk about how things went with Robot Finds Ice Cream.

In general, I’m pleased with the game, but less pleased with the production quality that came out of it.  I justify it by pointing out that it was implemented in just a week, and that explanation seems to satisfy everyone except me.

More beneath the fold.

So here are some interesting points.  I had the basic mechanics for Robot Finds Ice Cream designed in my head by Tuesday.  At that point, you could pull or push the robot one square at a time.  At that time, I imagined that as you advanced through levels, various complications would begin to appear (moving platforms, force bridges, collapsing floors, etc).  However, I simply wasn’t getting much actual coding work done.  I’ll remind that I started on this “Game in a Week” because I was feeling unproductive;  I simply wasn’t actually coding much, and this project was supposed to kick-start me into creating again.  But in practice, I didn’t actually start coding until Thursday.  And by then, it was far too late to actually get a lot of variety into the gameplay elements.

On the other hand, I did get a lot of gameplay concept work done.  By Thursday, I had realised that allowing the player to pull or push one square at a time made the two options symmetrical, and therefore kind of boring.  And so it was on Thursday that I stumbled over the idea of being able to pull or shove, so that the two ways of moving the robot were similar, but different in an important way, and in my opinion, that’s what ended up making the game interesting.

The game finally became playable (as is almost always the case) at about 6pm on Sunday, the last day of the week-long timeframe.  In this case, I ended up with about two hours to create all the levels in the game, and so I was a little disappointed to only have ten levels, six of which were tutorial levels.  It’d be easy to add more, but I didn’t have much time, and I didn’t want to have to code save game support.  (For anyone who’s interested, the level data is in the MapXX.lvl files;  they’re just text files and can be edited in notepad or wherever.  I used vim, because I’m a hopeless nerd old-school.  Just add more of those files and the game will use them automatically.  There’s no limit to how large a particular level can be).

Level creation was surprisingly easy.  Each of the real levels was basically made by me picking a level shape that I found interesting, picking a “correct” route through it, and then placing vending machines along that route without any particular care being taken.  Most of them were interesting and solvable on the first go (although a few required minor tweaks to the level layout).

In terms of stuff that went wrong..  I’ve been making games for well over a decade, but this is the very first game I’ve made which is turn-based.  It’s also the first game I’ve made which uses an isometric perspective.  Finally, it’s the first “puzzle game” I’ve ever written where there are a series of puzzles each of which have only a single correct solution.  These caused a lot of my problems, just because this was all new to me.  For example, the isometric view angle caused all sorts of unexpected problems when I started trying to create graphics for the player and the robot;  it was almost imposible for me to create a robot sprite that matched the view angle of the isometric map.  And so in the end, I gave up and did the 2D outline of a Maximillion-style robot.  And I didn’t have time to create a sprite for the boy, and once again used the ancient “human” sprite that I made for the very first Game in a Week game (and have since used in most of the other games I’ve made on this site).

On the other hand, I was really thrilled to discover that I could automatically create an in-game tutorial just by using carefully constructed levels, just by adding a few optional text strings to the level definition.  I’m totally going to use that idea again in future projects;  it’s an awesome way to cheaply and quickly get a tutorial into a game that desperately needs one.

Also a last-moment addition was the music by Coconut Monkeyrocket.  I must remember to put music in earlier in these projects;  having the music track there really seems to inspire me to write more code faster.  So that’s something for me to keep in mind the next time I do one of these Game in a Week things.

But for right now, I’m back onto MMORPG Tycoon.  I have some really exciting things in mind for 1.1, which I’ve talked about a little over on the forums, and will undoubtedly talk about more in the coming weeks.  It’s still a little ways off, but I’m actually making progress again, which wasn’t the case back before Robot Finds Ice Cream!