Ludum Dare 42: Grid Locked Post-Mortem

Hey there! So, Ludum Dare 42 was this weekend, and as always, I thought I should probably do a post-mortem. The theme for LD42 was ‘Running out of Space.’ Which was actually one of the themes I liked… until it was selected. As soon as the theme was announced, my mind went blank. I had ideas, but I couldn’t see any of them being fun. My first idea was a wave based survival game where the walls slowly closed in. I also had an idea where you had to collect items from a shop in 1 minute, with a limit on how much you could carry at one time. I decided I didn’t like either of these ideas and went to bed. I had work in the morning, so I knew I had to come up with an idea as soon as I woke up, as by the time I  could start working on my entry, I would already be pretty far behind schedule.

When I woke up, It didn’t take me long to get a pretty solid idea. I took the survival shooter element from my first idea, and decided it would be better if, instead of the walls closing in, the floor would start to break away. This lead me to thinking that instead of a health bar, it would be cool if the floor tiles represented the players health, slowly falling away as you took damage. I took the idea to work with me, and slowly built the game up in my head.

It was a pretty bad day at work, but when I got home, I was pumped up and ready to get to work. Within an hour, I had the player walking around, shooting and being chased by enemies. Things were looking good.



After I had all of these basic element in, I jumped straight into programming the main mechanic. It was actually super simple. I created a grid of tiles, 3×3 and put them into an array. I decided it would be better if instead of decreasing an integer when the player took damage, I increased it. I could then minus 1 from the amount of damage taken, and destroy the tile in that position of the array. It worked pretty well.

I then worked on making the enemies spawn infinitely. This was simply a case of adding spawn positions around the scene, and writing a function that loops through the spawn positions, checking when they last spawned an enemy, and then spawning one if it had been long enough.

I then added a score counter and wrote a script that slowly increased the displayed score so that it would look like the score was counting up in intervals of 1, rather than 10. At this point the game was pretty much feature complete. I was quite happy with this, as it gave me a whole bunch of time to add polish to the game.

I had considered adding some real art to the game, but decided against it. The super simple shapes with toon shaders looked pretty cool and super clean, so I decided to stick with them.


Now it was time to polish. I watched a talk quite a while ago now called ‘Juice it or lose it’ by Martin Jonasson & Petri Purho. Its pretty much a talk about making your games feel ‘Juicy.’ This means adding small things such as satisfying sound effect, screen shake etc. I’d never really tried to juice a game up, but I felt like this was the perfect time to try.

I added a whole bunch of sound effect to the game, a super powerful sounding clip to the gun, a satisfying squelch to enemies as they died, a loud boom to the floor tiles as they fell, and a chiptune drum and bass background track to tie everything together. I added gravity to the floor tiles, so that instead of just disappearing, they fell away and made it so that enemies exploded into a bunch of tiny cubes as they died. I also made it so that the screen would shake when a bullet hit an enemy or whenever a tile fell away. Things where feeling good. The game was fun and super satisfying to play.

Then I decided it was time to wrap things up. I added the basics. A main menu, a death screen, a pause menu and I was done. I uploaded the game just before the compo deadline ran out, even though I was actually participating in the jam, which had an extra 24 hours.

I’m extremely happy with how the game came out. Its fun, satisfying and super polished. I think the main reason I managed to make something so polished was due to my super small scope. I kept things nice and simple, and therefore had a whole day to focus on making sure everything was working and feeling right.

Check out Grid Locked here:

Leave a Reply

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