I decided to spend the last weekend in a bit of an unorthodox way - instead of celebrating May Day along with the rest of the country, it was game development time for me. I've been hanging out on the IRC channel of Ludum Dare for a long while now, so it was high time I finally gave the 48 hour game development competition a try.
Ludum Dare, which was organized for the 20th time, isn't quite as large of an event as the Global Game Jam, though the rules and 48 hour time limit are similar. And unlike the very social game jam, Ludum Dare's main event is a solo competition, a challenging test of individual skills. I think I managed okay overall, with an end result that can well be considered a complete game. I even composed a small piece of background music, something I've never done before. Oh, and don't worry, the music can also be turned off.
My game Lasers are Dangerous is in Flash, and can be played at http://oletus.fi/static/lasersaredangerous/. Read past the break for a short post mortem.
What went right?
I used the same tools as in the Global Game Jam, and FlashDevelop IDE combined with FlashPunk is proving to be more and more valuable as a rapid development toolset. Anyone considering making game prototypes quickly should at least consider it. With FlashPunk, it's easy to get started with even with very little previous knowledge of Flash programming, and the library eliminates the most monotonous parts of 2D game development, enabling you to focus on the game itself.
As for project management, I went with a sort of "do fun things first" approach, and it worked surprisingly well. Tweaking animations or learning a music composition program (and music composition itself) from scratch might not be the most productive ways to spend a limited amount of development time, but at least I enjoyed myself. This helped me to stay pretty energetic too, despite working late into the night.
What went wrong?
The game would've definitely benefited from more experimentation in game mechanics early on. Even though I'm happy with the basic premise, I feel I haven't really explored the ideas presented in the game properly. The gameplay has an okay level of polish for a 48 hour game, but lacks variety.
Making the in-game level editor was also a bit tedious and forced me to break the program structure a bit, even though it was very handy for fine-tuning levels once I had it done. One thing to consider in the future would be making a sort of generic FlashPunk entity placement / serialization module, that could be quickly hacked into a game to add in-game level editing capability. Also, my way of saving and loading levels ended up a bit eccentric - since handling files is something that sandboxed Flash doesn't do very well, I ended up having the save command write the level data into a TextField on screen, from where I manually copied it into the game code. Talk about inelegant, but oh well, at least it works.
After I was finished with the code, it also struck me that there's only a single comment among the 1000+ lines I hacked together over the weekend. The comment says "Borders". Resuming development later on might prove interesting, though I'm actually quite happy with how I structured the code.