« So, I'm Moving On | Main | Notes on Device 6 »

August 26, 2013

Game Jamming

Over the weekend, I participated in my first ever game jam, which is kind of funny considering how long I've been developing games¹. It was a terrific experience. Here are some simple lessons learned.

Even A Small Amount of Time Is Enough for a Jam

I had all of six hours Sunday afternoon to jam. Six hours doesn't seem like much, but it goes a lot further than it did when I was young. But in the morning I had an idea while driving to do the groceries and I thought I'd give it a whirl. To get it done, though, I'd have to:

Keep It Simple, Stupid

My idea was small and implementable in just a few hours. Based on the theme of "10 seconds", I built a simple puzzle where you have to defuse a bomb in five steps (and in under ten seconds). The only information that you had was the name of the terrorist organization that planted the bomb, and the fact that their bomb-making was never random. Simple also meant I had to:

Use What's Familiar and Lying Around

I used tools which were readily available to me and which I more or less had lying around². I had some text files with tons of English-language words in them that I could use for the randomly-generated content. I didn't try to learn a new tool like GIMP for my simplistic graphics (I used mspaint), and I went ahead and implemented in HTML and JavaScript because I'm fairly comfortable there. It was also pretty cool to bang out a game on my PC, prop it to my website, and hand my iPad to one of my kids to have him test it out.

Anyway, I'm glad I stuck with the familiar because:

Issues Will Arise

As I mentioned in the footnotes, I had to download the latest versions of some things, and specifically with Python, I hadn't realized that there were some pretty significant differences between how Python 2.x and Python 3.x used various collections³. I also ditched some programmer art for some images off the web when they didn't turn out how I'd have liked. And I fiddled with how to display the graphics so they'd line up without any gaps for far too long.

But that was all fine, because I was able to:

Let Go of Preconceptions

In the python script I used to generate the words that randomly make up the first part of the terrorist group's name, I went ahead and brute-forced something that could have been programmed elegantly... but would have taken more time. I had to keep in mind that speed was important, and speed bumps would quickly eat up my available time4. I knew my art was atrocious... but I had to let that go, too, because I had six hours. In the javascript I used a few idioms I might not use in a regular shipping game because of performance concerns. There were a million little things I just let go.

I had a hard deadline. I needed to be upstairs finishing dinner at 6pm; which reminds me, because I also feel I benefitted from:

Regularly Scheduled Breaks FTW

As it happened, I was jamming while dinner was roasting in the oven, and every hour I had to run upstairs5 and baste for a couple of minutes. I was worried that this would break my flow, but it actually had completely the opposite effect and allowed me to instead keep my sense of urgency. As it turns out, when you're doing all the individual bits even for a stupid little game, you don't have a lot of time to get into a flow state because you're jumping into different parts of your brain -- but a sense of urgency really helped me still attain a sense of flow because I knew I had to keep tackling those things quickly. Taking those little breaks both reinforced the sense of urgency, increasing focus when I returned, and also gave me the little breather I needed, sort of like taking a drink along a running race route.

That's the Short List

Those were the things I can think of off-hand for my first game jam. You can play the result of six hours of "work" by clicking the image below:

Thanks for reading! I look forward to jamming again in the future. Now I need to go and play some of these great LD48 games. Let me know how your game jam went in the comments!

¹Fifteen years, if you've been reading. And while Bethesda had a game jam that was publicized at DICE after Skyrim shipped, the programmers were fairly busy patching issues that arose once millions of people started playing our game so much, so we didn't participate. A later game jam incorporated the programmers, but I was still too busy with other work stuff.
²To be fair, I bought a new system earlier this year and so I actually had to download and install some stuff I like to use, a particular text editor, latest JQuery, latest version of python, etc. That ate up a little time, but not much.
³It's a point release, no harm no foul... just totally caught me unawares, especially differences in how things work when they return iterators instead of collections in the functional programming stuff.
4The game's name, Ticking Down, is as much a reference to the bomb you're defusing as the sense of time eroding as I was making it.
5My treadmill desk man-cave is in my basement.

Posted by Brett Douville at August 26, 2013 07:42 AM