Speedrun: A Ludum Dare Postmortem
Last weekend, I took part in the 25th Ludum Dare, an online game jam that challenges participants to create a game – from scratch – in just 48 hours. This was my first time doing a game jam, but it definitely won’t be my last. It was a lot of fun!
Each Ludum Dare has a theme, chosen by popular vote. This time, the theme was an interesting twist: “You are the villain”.
My entry is Speedrun, a simple game about evading the highway patrol through heavy traffic for as long as possible.
Here’s a video of the game in action:
It’s not perfect, but I’m very happy with the way it turned out. In keeping with Ludum Dare tradition, I’ve written a postmortem to reflect on the experience.
What Went Well
I finished! It may seem obvious, but this is really the primary challenge of any game jam. The beauty of the 48-hour format is that it forces me to lower my expectations – in a good way.
Development strategy. My goal was to budget the first 50% of the time to getting the game fully playable (feature complete), then spend the rest of the time on polish (graphics, sound, tweaking gameplay, etc.). Although I fell slightly behind schedule, having a plan made it much easier to get a full night’s sleep both nights, knowing that a playable, submittable game was within reach.
Simple gameplay. Although the theme inspired a lot of ambitious, complex ideas, I chose the simplest one that I felt would make a fun game. In fact, I initially wanted to make a one-button game, but I added steering once I decided to do a driving game. It was easy to prototype and tweak because it was so simple.
Graphics. At first, I struggled to get a look that I liked. Luckily, things eventually felt right and the graphics came together rather quickly.
Audio. I had trouble figuring out how to synthesize a convincing engine sound. At the last second, I managed to create decent loops from an actual recording of a Ferrari F355.
Testing. I played the game a lot during development. Not only did this help me iron out some bugs and refine the gameplay, it helped reassure me that there was actually some replay value to the game.
The community. On the evening of the deadline, the IRC channel was full of other participants who were eager to play each others’ games. It was a very friendly, constructive atmosphere.
What To Improve
Make sure the game includes instructions. I planned to create a title/instruction screen as part of the polish phase, but I ran out of time. It really should’ve been included with the “core” game functionality. That way, it won’t be missing if (that is, when) I run out of time.
Ask others to test – early and often. Although the importance of instructions seems obvious in hindsight, I totally overlooked it because I was so focused on other details. If I had asked others to playtest the game before it was ready for submission, I would’ve realized it sooner.
Stick to familiar tech. I started out with Flixel, which I had only toyed prior to the competition, and quickly found myself frustrated and unproductive. I wasted several hours before starting over from scratch with Love2D.
Build a web version. It’s hard to overstate the value of instant gratification. Games that are playable in the browser are much more likely to be played than other ones, which is why I initially wanted to use Flixel. I did try the Love2D WebPlayer, but there were just too many unsupported features and little issues.
Keep my weekend clear. Easier said than done, of course.
Results
I was stunned to see how well my game scored out of all 902 games (wow). It was rated 7th best overall, 9th best in fun, and 17th best in graphics!
Of course, positive feedback is always nice, but the real reward is finally participating in Ludum Dare after procrastinating for so long. Up to the last minute, I couldn’t decide whether I was going to join in or not – but I’m so glad that I did.
In Ludum Dare tradition, here’s a timelapse recording of my desktop during the development of the game: