Phase Shift: Ludum Dare 30 Postmortem

ld30

This past weekend’s Ludum Dare game jam was my second (and the third overall game jam I’ve participated in); here’s my entry if you want to play it yourself.

My first thought was to take the theme–“Connected Worlds”–literally, and make a game around multiple planets–perhaps a simple 4X game or something based on orbits–but that felt a little too obvious. (In retrospect this was a good call, since there were quite a few games along those lines.)

My second idea was to do an action game where you can shift between different dimensions to avoid obstacles, from a top-down perspective using abstract, minimalist graphics (mainly to get around my lack of art ability). To add some tension, there would be an explosion you’d have to escape before it reached you. This felt a little more promising, so I decided to go with it.

I’d never done an action-oriented game for a game jam before; my previous game jam entries had been an adventure game and a puzzle game. So, how’d it go? Well…

What Went Right

  • Graphics: I experimented with a variety of colors and effects to make the minimalist visuals look pleasing, finally settling on the white/blue scheme for the twin dimensions because it made them both easy to see at once without clashing too much (especially during the animated transitions). I added a bloom effect to the scene for a little color, and then as a final touch put in a perspective camera with the two dimensions on different z planes; the parallax helps convey the separation between the active dimension and the inactive one.
  • Audio: When you’ve got almost no talent in music and sound production, it helps to have great tools. Thanks to the magic of Ableton Live and NI Komplete, I managed to put together some barely-passable sounding pulsing techno beats in just under an hour. The sound effects (all four of them) are just little musical flourishes written in Ableton and tweaked a bit in Adobe Audition.
  • Procedural level “design”: The procedural level generation algorithm is incredibly, ridiculously simple, but with some tweaking it managed to produce results I’m quite happy with. I tested and refined it quite a bit and am happy that it produces difficult but winnable levels at least most of the time.

What Went Wrong

  • C++/D3D: Every time I do a game jam I contemplate using higher-level tools but always end up going with what I’m famliar with. C++ and D3D are what I spend most of my time with at work, but it’s become increasingly clear that they’re greatly limiting my reach (to Windows only) and how much I can get done in a couple days. For my next LD, I’ll catch up with the rest of the world and use something like Unity. I’d like to never have to debug a GPU crash during a game jam again.
  • Inadequate framework code: Related to the above, but I hadn’t even implemented anything to maintain a consistent update rate, nor any support for postprocess shaders like the bloom–both things that took up time I could have used making the game better.
  • Focus: My eternal bugbear with these events. It is really, intensely difficult for me to stay focused on something like this for 48 hours straight. (For example, this distracted me for about an hour at one point.) It’s slightly disheartening to consider how much more I could accomplish if I could make better use of the limited time I have in game jams. Something to work on, I suppose…

I’m fairly satisfied with what I came up with, even though there are so many things I could have done better. Can’t wait for the next LD!