« May 2013 | Main | October 2013 »

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 07:42 AM | Comments (0)

August 08, 2013

So, I'm Moving On

This week I gave my notice at Bethesda Game Studios. I've been a lead programmer there for five years. In my time at BGS I helped ship Fallout 3 and led the systems programmers for Skyrim. I'd be enormously pleased to have either of those on my résumé; having both is humbling, and I'm very grateful to fans and friends for their support. I will continue to play the games Bethesda carefully crafts, and I kind of look forward to being able to spend hundreds of hours in those worlds when the products are finished instead of when they're still being built. It is certainly bittersweet to leave. It's a great team. I've made many friends there. My last day will be on August 30, which will leave me unemployed just in time for Labor Day.

My departure isn't about them; it's about me. I've largely been doing the same job for most of the last dozen years or so of my life, and so I think when I saw this SMBC comic the kernel of the idea of doing something at least a bit different was lodged. I didn't think about it too hard at the time. There is a bit of truth in that series of panels. It nagged at me.

There have been other signs. I was asked on a podcast whether I'd ever considered going indie and I had to take a long pause before giving an answer that was kind of rote. I went to GDC this year and didn't return as recharged and energized as I always have in the past. I kept at the job, giving it my best, being a professional. I was content. All my basic needs were well accounted for. But I've had an itch.

As I've told a few people this week, I'm young enough that I'm not done with seeking new challenges. I'm also old enough that I know my ability to meet those challenges won't be there forever. Huge thanks go out to friends with whom I've discussed this change; lending me your ears and listening to me cavil and kvetch has been enormously productive for me in my thinking. Your support has been hugely beneficial to me.

Some of the challenges I'm really curious about are in videogames¹. I've been really impressed with the work in the indie space in the last year and some of my favorites come from small groups or solo creators. Some have shipped, and some have yet to ship. When I started programming games as a kid, I did it all myself and that holds some appeal to try now with years of experience. There's still that little kid in me. Having been an IGF judge and jury member for a couple of years has exposed me to so many more possibilities. It's a heady time for videogames. Explosive growth. Explosions of meaning and markets and membership in the creative club. Terrific stuff.

In the short term a certain amount of idleness and reflection is called for, just to catch up on some chores that need doing, finish up some games that need playing, and enjoy some extra time with my sons. One of the challenges I have in mind will call to me.

In the meantime, if there are any indie friends out there who need a little technical advice or feedback on your upcoming games, I'd love to help out. Hit me up on Twitter and we'll figure it out.

PS. If you are a colleague at BGS and learning about this here, I'm very sorry. I figured the news would have gotten around via sneaker-net by now, and time was somewhat short before I got out of town for a few days.

¹I also may like to write. I've had some novels and stories in mind for a while, jot down notes from time to time. So that's something I may need to do for myself at some point, too.

Posted by Brett Douville at 11:38 AM | Comments (8)