My first dare won’t be the last
(Cross-posted on my blog @ blog.cr0ybot.com)
It’s now two days past the end of the Ludum Dare 23 48-hour compo. I had to take two days to recuperate before attempting to write about it.
I would say that my first Ludum Dare was a success. I’m not particularly thrilled by the game I came up with; it’s not about to change the world, but that wasn’t the point for me. I did it. I made a game in 48 hours. It’s possible. It’s also really, really hard.
I almost sat LD 23 out to wait for the next one. Too many things to do over the weekend, not enough time. I also had serious doubts about my own abilities. I’ve never come up with any game idea and also executed it within 48 hours before. It’s just not possible. I’ve only made a few games by myself in the past, and they took months. But when the hour arrived, I said to myself, “What have I got to loose?” and got to work. I was only vaguely aware that the answer to that question was “sleep, nutrition, and a little bit of sanity.” But it all worked out.
Nearly all of the first 24 hours was spent simply coming up with a game idea in response to the theme, “Tiny World.” Almost immediately, my mind went to pixels, and then to the possibility of what pixels are made of. I started reading through Wikipedia articles about pixels and subpixels. I thought about creating fictional subpixels that mirror quantum physics, and quickly dismissed the idea for time’s sake. I also toyed with one or two other ideas, totally unrelated to pixels, but my brain simply wouldn’t let the subpixel idea go.
I recently watched a video of a lecture given by John Cleese on Creativity, which gave me reason to keep at it. If you haven’t seen that video, go watch it NOW. Honestly, this blog post can wait. Those 30 minutes will probably change your life, although I can’t guarantee that it will help you with a 48 hour game jam.
Done watching? Good.
Now, under such strict time restraints, Cleese’s advice begins to break down a little, because it’s hard to get into “open mode” with a deadline looming. But there is one thing that absolutely does apply: nothing you come up with is “wrong”. When you are creating just for the sake of creating, and the point is to better yourself and the community, nothing you think of is “wrong”. But once you have that idea, you must execute.
That being said, I am not a computer science graduate. I went to art school and gradually realized that the art world was not for me. Halfway through, I picked up a “Programming for Artists” course and was instantly hooked. At this point in my life, I have about 4 years of experience working in various scripting languages; I’m not sure if I could have accomplished anything without that.
I chose Flash and Flixel to develop my game with, as I’m relatively comfortable with ActionScript 3 and I’ve played around with Flixel a little. Eventually I settled on a mechanic of matching sets of subpixels together to form whole pixels. I immediately set to work, though the rest of the game could have used some more thought, such as: What happens when a stack of subpixels touches the edge of the game screen? What constitutes an end state? Why are we able to move subpixels around in the first place, considering they are built in with a specific order in real life?
However, once the idea was in place there was no time to think about anything else; If I had, I wouldn’t have anything playable. I pulled an all nighter (like most of us did, probably) working for about 12 hours straight trying to come up with solutions to code that Flixel just wasn’t built for. Next time, perhaps I will stick to something more platformer-ish. Or maybe not.
Check out my barely-functioning-but-somehow-completed-in-48-hours-how-crazy-is-that game, SUBPIXEL.
Click to play SUBPIXEL
As a side note, one of the parts of this that I’m most proud of is the code that generates a grid of subpixels corresponding to any BitmapData it’s fed. A separate function generates BitmapData from perlin noise, feeds it in, and out pops a subpixelized version, which was used as the background of the start screen pictured above. The code isn’t particularly complex or genius, but I liked the results. Check out the source code at github, specifically SPGrid.as and MenuState.as.
See you all next time!








