{"id":224,"date":"2008-08-06T21:34:34","date_gmt":"2008-08-06T11:34:34","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=224"},"modified":"2008-08-08T09:00:48","modified_gmt":"2008-08-07T23:00:48","slug":"robot-finds-ice-cream-post-mortem","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2008\/08\/06\/robot-finds-ice-cream-post-mortem\/","title":{"rendered":"Robot Finds Ice Cream Post-Mortem"},"content":{"rendered":"
Well, it’s been well over a week, time to talk about how things went with Robot Finds Ice Cream.<\/p>\n
In general, I’m pleased with the game, but less pleased with the production quality that came out of it.\u00a0 I justify it by pointing out that it was implemented in just a week, and that explanation seems to satisfy everyone except me.<\/p>\n
More beneath the fold.<\/p>\n
<\/p>\n
So here are some interesting points.\u00a0 I had the basic mechanics for Robot Finds Ice Cream designed in my head by Tuesday.\u00a0 At that point, you could pull or push the robot one square at a time.\u00a0 At that time, I imagined that as you advanced through levels, various complications would begin to appear (moving platforms, force bridges, collapsing floors, etc).\u00a0 However, I simply wasn’t getting much actual coding work done.\u00a0 I’ll remind that I started on this “Game in a Week” because I was feeling unproductive;\u00a0 I simply wasn’t actually coding much, and this project was supposed to kick-start me into creating again.\u00a0 But in practice, I didn’t actually start coding until Thursday.\u00a0 And by then, it was far too late to actually get a lot of variety into the gameplay elements.<\/p>\n
On the other hand, I did get a lot of gameplay concept work done.\u00a0 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.\u00a0 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.<\/p>\n
The game finally became playable (as is almost always the case) at about 6pm on Sunday, the last day of the week-long timeframe.\u00a0 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.\u00a0 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.\u00a0 (For anyone who’s interested, the level data is in the MapXX.lvl files;\u00a0 they’re just text files and can be edited in notepad or wherever.\u00a0 I used vim<\/a>, because I’m a hopeless nerd<\/span> old-school.\u00a0 Just add more of those files and the game will use them automatically.\u00a0 There’s no limit to how large a particular level can be).<\/p>\n Level creation was surprisingly easy.\u00a0 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.\u00a0 Most of them were interesting and solvable on the first go (although a few required minor tweaks to the level layout).<\/p>\n In terms of stuff that went wrong..\u00a0 I’ve been making games for well over a decade, but this is the very first game I’ve made which is turn-based.\u00a0 It’s also the first game I’ve made which uses an isometric perspective.\u00a0 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.\u00a0 These caused a lot of my problems, just because this was all new to me.\u00a0 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;\u00a0 it was almost imposible for me to create a robot sprite that matched the view angle of the isometric map.\u00a0 And so in the end, I gave up and did the 2D outline of a Maximillion-style robot.\u00a0 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).<\/p>\n 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.\u00a0 I’m totally going to use that idea again in future projects;\u00a0 it’s an awesome way to cheaply and quickly get a tutorial into a game that desperately needs one.<\/p>\n Also a last-moment addition was the music by Coconut Monkeyrocket.\u00a0 I must remember to put music in earlier in these projects;\u00a0 having the music track there really seems to inspire me to write more code faster.\u00a0 So that’s something for me to keep in mind the next time I do one of these Game in a Week things.<\/p>\n But for right now, I’m back onto MMORPG Tycoon.\u00a0 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.\u00a0 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!<\/p>\n","protected":false},"excerpt":{"rendered":" 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.\u00a0 I justify it by pointing out that it was implemented in just a week, and that explanation…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[26,17],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-3C","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/224"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/224\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}