DoomCake – Postmortem

Posted by
April 28th, 2009 7:30 am

DoomCake was my first LD entry.  It was developed in Lua, using the LÖVE 2D engine.

In making this game, I learned a bit about Lua, and a lot about cake.  Read on to find out what a sugary zombie invasion might look like…


The competition was flagged up to me by someone at work, though I wasn’t sure I’d be able to do it until the day before the start time (which was 4AM local time).  I didn’t even decide what development environment I was going to use until the Friday evening, when I spied a Lua book in the office library on the way home from work.  I’d seen LÖVE mentioned by a couple of folk here, so I decided I should give that a shot.

I should mention I’d never used Lua before, so when I started reading on Friday evening, I was literally starting at ‘HelloWorld’.  I went through a few examples, then started playing around in LÖVE, seeing what it was capable of.  Satisfied I could put together a simple sprite-based game, I went to sleep a few hours before the competition start.  I figured no point trying to stay up late just to find out the theme, only to ruin myself for the next day.

Trying to learn a new language, whilst against a deadline

Never having used Lua before, I had to learn how to solve a number of problems against the clock.  Things I take for granted in my day-to-day C#/.Net life.  Things like multi-file projects, debugging and error-handling, collections & queues, and so on.  At first it felt like I was reaching for a book five times for every line of code I wrote.  Not very productive!

I managed to pull together enough to make my game work, with minimal bugs.  However the code-quality is horrendous.  Inconsistent styles throughout, as I learned my way around the language.  Huge amounts of copy-paste, since I couldn’t get certain code-reuse aspects working properly.  Certainly not my prettiest work, from a development point of view.

Quick and easy love

The LÖVE engine made getting assets into the game very simple.  Images (static and animated) and audio were easy to bring in.  I would recommend it as a good choice, especially if I knew Lua better (or even at all!)


The idea for the Wall Of Battenburg Doom came about as I was filling up on sugary snacks on the first day.  I went around the house, collecting anything that might work as ingame enemies, with the intention of taking photos of them to make sprites from.  (Art isn’t my strongest skill, so I figured that would save me time).  However I underestimated the amount of photoshop processing that would be required to turn the pics into something usable.

In the end, I only used two items: The battenburg cake, and some candy teeth.  I had an idea that I would create a parade of Marching Sugary Doom.  Doughnuts, fizzy drinks, lollipops, chocolate bars, and so on.  All of these would be following behind the main wall, covering the ground with sticky, sugary rubbish.  This obviously didn’t happen, which lessened the effectiveness of the other idea I had:  Creating a Left4Dead parody, specifically the survival-until-rescue part.

The food.  It’s… infected!

Imagine you’re the survivor of a zombie attack.  Only, instead of zombies, the virus/mutation/whatever is causing sugary snacks to rise up and eat people.  What’s more, their weapon of choice is CANDY TEETH!  So all the while, we’ve been told not to eat too much sugary stuff, as it will rot our teeth.  Now the roles have been twisted around.

Anyway, this side of the game never really worked out, simply due to time constraints.  I wanted to have multiple levels, with different types of wall behind the teeth, and various obstacles that the player would have to navigate around.  I also wanted to have different coloured pick-ups, with different effects.  But sadly time was against me.


One of the great parts of L4D is waiting for rescue, against a seemingly never-ending hoard.  I blatantly ripped off the rescue-helicopter idea.  As the chopper got closer, he would radio in encouragement to hold out just a little longer.  If you managed to survive long enough, he would pick you up, and fly you to safety.  (Note how he flies you over the wall and beyond, where the legions of marching snacks would be, if I had time)

I wanted to have an actual radio, sat on a table next to the helipad, with the pilot’s speech bubbles coming from it.  But again, this didn’t make it in.

A familiar plateful of cake?

The final part of my L4D inspiration was the box art.  I’m talking about this

which I copied slightly to make this

Spot the similarity?  Apparently it was too subtle, since no-one mentioned it.  Oh well…

Tags: , ,

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]