Saturday, July 2, 2011

Game Jam Tips

I've done a few game jams. At Google, I've done a few at work, and been asked for tips on running them internally and externally. Thanks Seth Ladd for nudging me to post. So, why not jot some thoughts down here:

Prepare, and make sure participants are prepared. You want to spend the jam making awesome, not doing the boring stuff:

  • Publicize frameworks in advance and encourage attendees to come with 'hello world' games already under their belt so they can hit the ground running. Possibly include a super simple template of our own that isn't a 'framework', but just a tiny simple example.
  • Publicize easy / free tools for e.g. audio & 2D drawing. (e.g. Audacity & Paint.Net)
  • Publicize source control and encourage teams to already know how to use it, set it up in advance, and have made a trivial pull, edit, push cycle.
  • Publicize game hosting tech (appengine, nodeJS) and point to relevant examples (Well, for web games)

Hold something back until the Jam - usually the theme. Generate a surprise theme that balances creative license and enough constraint to remove the 'blank page' effect.

Decide to allow pre-formed teams or not. Most Jams I've been in discouraged pre-formed teams or game concepts. Instead, we brainstormed them up, pitched them to the wide crowd, and formed small teams to work on the top ideas. Pros and cons either way, but I've enjoyed the mixer style.

Small teams tend to work out much better than large. E.g. 2 or 3 coders. Communication is a killer on a tight schedule.

Have an art plan. Either set expectations that people should work with minimal art (e.g. procedural, 'retro' lo-fi-pixel-junk, or freely available stock), have artists and a plan for how to get art out quick, or pre made art. Some contests have run in two phases of 'prepare art' and then 'make games using only prepared art'.

Encourage rapid prototyping development practices! Games should be functional half way through!!! They'll need the second half for polish. People always always always blow this and mis-estimate. Encourage frequent re-prioritization of what people are working on. One good technique is have a team list out the top few tasks, rank `em, and have people work on those and only those. Don't work on anything unless it's an agreed top priority.

Eat, sleep, don't try to mash it all out. Taking short breaks through the day let's you get Meta, re-evaluate progress and priorities, and plan. Sleep helps you make the remaining time more effective.

Don't make it a contest, but if you do, run several wildly different categories. E.g. most original, best use of new tech, most hilarious. Don't just have "the best".

Plan for games to have more work done after the Jam, and how they will be publicized. Can teams update links, images, YT videos, etc?

Capture the presentations at the end, e.g. video recording. Snapshot the code and art too. (Good reminder, Mike Mahemoff)

Have fun. If it's not fun... do something fun. ;)