In April 2014, after many opportunities passing by with excuses or genuine poor timing, I finally committed myself to participating in the Ludum Dare 48-hour game competition.

My entry was, uh, pretty weird. The theme, announced at the very start of the 48-hour window late on the Friday evening, was Beneath the surface. Many people entered underwater themed games, or mining games. I decided that my game would take a look beneath the surface of my own fragile outward calm.

gameplay gif

Play the game: Beneath this cool, calm exterior

Move: wasd
Shoot: arrow keys
Start, next level: space bar

View the code:

View the competition entry: Ludum Dare

Fundamentally, it’s a very basic shooter game. The enemies are my insecurities, and some of them spout fun exaggerations on my own internal monologue. When a player collides with an insecurity, they are presented with a picture of my face, moving through an array of increasingly distressed expressions.

Did I win? No! Of course not. But I was pretty happy with my results. Competing against a not insignificant 2495 entries, I came in 14th place for humour (putting me in the top 1 percent!), 98th for theme, and… less good for everything else:


The making of

The heavy lifting in the code was done by a 2D game library called melonJS. It was very nice to work with and I’d use it again.

Bom bom bom bom

The rules of the competition state that all assets (e.g. graphics and sound) must be created within the 48-hour window. I did all the sound effects on bfxr, and the music with my own mouth. Sadly, I didn’t get around to putting in a mute button for the music, but I think the sense of agitation it evokes after about 8 seconds of listening really contributes to the overall feel.

Making it better

My flatmate, true to form, looked up from his own entry to peer over my shoulder and then put me onto a ridiculously good presentation by Vlambeer about improving the ‘game feel’ (although that’s a term they contest).

It came with an interactive demo, which sadly seems to have disappeared, but the talk it accompanied survives and is great: Jan Willem Nijman - Vlambeer - ‘The art of screenshake’.

The talk is filled to bursting with rich wisdom nuggets, but with my short time allowance, I chose to implement a just few of the improvements I thought would be most effective:

  • Upping the shoot frequency
  • Upping the bullet size
  • Adding some screen shake

The astonishing difference these small changes can make is hard to believe without watching that talk but you get some of the effect in these before and after gifs.

Pre tweak: before-tweak

Post tweak: after-tweak

In conclusion, this was my first timeboxed game/code jam and I enjoyed it a lot and will absolutely commit doing it or something similar again one of these days.