Global Game Jam 2011: A Postmortem
For my third year in a row, the Global Game Jam was an immensely positive experience for me -- an opportunity to meet new people, learn new skills, and see a game design through from inception to completion. I worked with a team of four at the San Francisco venue. Robin Yang and Sara Thatcher focused on game design, UI, web design and gameplay tuning. John le Plastrier and I played the role of programmers.
This year's theme was extinction. Not wanting to take the theme literally, we decided to brainstorm about more exotic ways to interpret the theme. Eventually, this led us to talk about our hopes and dreams and the fear that if our aspirations aren't nurtured, they can go extinct. After a few dead ends in the brainstorming process, this eventually led us to the two-player game that you can find right now at aboutOurDreams.appspot.com. [A warning: you may want to encourage a friend to play at the same time if you don't want to spend the day waiting around an empty chat room. If you don't get properly connected, try pressing the "New Game" button every 15 seconds until you connect.]
The game starts with a brief interview about your aspirations. You then enter a chat client where each player tries to guess the other player's answers through conversation. If you type one of the words that you entered, it gets censored. If you guess another player's word, then it gets highlighted in the chat client, and both players get a point. You can see an example game in the screenshot.
Game Jams are great for jam-packing a ton of real-life lessons into a 48-hour period. Here are just a few of the lessons that I came away with:
When the Jam kicked off, we were given an hour to brainstorm ideas. As it turns out, this wasn't nearly enough time for us. We tried to narrow down the scope of our ideas too quickly, which took us to a dead end. When our brainstorming time was over, we really didn't know how to turn ideas into a game.
Rather than jumping in to develop a half-baked idea, we took several steps back in the brainstorming process, put many of our previous ideas back up for consideration, and found a way to take the game in a new direction -- one that we were all happy with. In short, if you don't think the game concept has gelled yet, don't hesitate to keep on tossing around ideas until one finally sticks.
Lean New Tools
As always, I used the Global Game Jam as an opportunity to learn new tools. In this case, I learned to use Google's App Engine. John, our other programmer, was already familiar with the tools, so he was great to have around to help answer my [occasionally stupid] questions.
Take Time to Set Up Your Development Environment
For version control, we used Mercurial. To host our repository, we used Bitbucket. To share files with our design team, we used Dropbox. To develop, test and host our web server, we used the Google App Engine SDK. To merge different versions of a file, I used the Perforce tool set. The alternative, which takes no time at all to set up, is to use a USB key to share files. Setting up a proper development environment takes time, but there's no doubt it saved us a ton of time and frustration in the long run. The most amazing part is that all of the tools I listed above are free for small teams!
Select Your Foundation Wisely
We chose to develop our application in the Google App Engine. For the most part, that worked out fairly well for us. Our more questionable decision was to use a piece of open source code that a hobbyist posted on his webpage as the foundation for our game. It was a multi-user chat application, so at first glance, it seemed to handle most of what we needed. It was only much later that we learned that much of the code was half-baked with scattered bugs.
To make sure that I'm not sounding ungrateful, I want to clarify that it's wonderful that people are willing to share their code. Without some foundation, we may not have had time to complete our game at all. But don't forget that it's caveat emptor. A shaky foundation can be tough to debug, so whenever possible, try to use tools that have already been stress-tested by other developers. Spend plenty of time researching your options before you dive in.
I can't say enough how valuable game jams have been to me for learning new tools, connecting to new people, and advancing my career as a game developer. There's a reason that thousands of people from all skill levels and skill sets participate in this rapidly growing trend. If you haven't tried jamming, try to find one in your area!