Huggy Bear Post-Mortem

So about a month ago, Doublefine programmer Anna Kipnis asked offhandedly on Twitter whether anyone would be interested in attending a Peter Molydeux-themed game jam. If you understood that sentence, feel free to skim the next few paragraphs:

Peter Molyneux (emphasis mine) is an esteemed British game designer. Selected ludography: Populous, Dungeon Keeper, Black and White, Fable. He has a reputation for being able to convince you his ridiculous ideas are going to turn into the most amazing game you've ever played, and although the games themselves rarely live up to his breathless pitches, few would argue that the world isn't a better place for his craziness.

Peter Molydeux is a satire Twitter account, posting game idea gems such as these:

  • Imagine a game where 3 pauses and it's game over. The game plays door bells, ringtones etc trying to make you accidently pause the game.
  • You are a Pigeon who must go around the city trying to persuade business men not to jump off buildings by retrieving¬†items from their homes.
  • You are a small girl flying a talking kite. The kite seems to know about a upcoming major terrorist attack and floats towards clues.
  • You are a bear but for some reason your oxygen comes from hugging people. Problem is that hugging people breaks their bones.
  • Let me ask you this. What if you could control the speed of emotion? Think Max Payne but with an 'Emotion Time' mechanic.
And game jams are -- well, there are actually two kinds. The first kind is the kind where a bunch of people get together in a room and bring their own projects, the point being just to feed off of each other's energy. TIGJam might be the biggest example of this. The second kind is the kind where you form teams at the jam, create a game, usually based on a theme, and finish it at the jam itself.

The Molydeux jam was the second kind, the theme being that every team would pick a particular Molydeux game idea and turn it into a real game. The response from developers was enormous, the proposed San Francisco jam site filled up and an Oakland site was created in response, and there were many other jam sites all around the world. Peter Molyneux-with-an-N actually showed up at the London jam. At the end of the weekend, we collectively created around 300 games.

Brian and I attended the Oakland jam, and we banged out a game based on the Oxygen Bear tweet. The results speak for themselves, but for some reason I'm going to speak some more here:

What went right?

  • Starting with a comfortable tool set. I've been building a framework for rapid development of Flash games over the past year and a half, handling things like asset management, input, state management, particles, GUIs, what have you. It was more organically grown than designed, but I guess I did a good job, because with the framework in place I was able to crank out features and game mechanics about as fast as I could type. I've been using FlashDevelop also for about a year and a half -- highly recommended if you're running Windows. Brian was running a Mac and ended up using Flash Builder, but we took the evening before the jam started to set up SVN and make sure he could build my framework, so when it came time to start, we could hit the ground running.
  • Scope management. It's crucial when working under any deadline, but especially at a game jam, to be able to say no to features. This can take the form of cutting out half-written features you won't have time to finish, but much better is being able to say no before you even start on them. Thanks in part to planning and in part to luck, nearly every bit of code we wrote ended up "on the screen," so to speak.
  • Multi-class developers. I'm a coder who moonlights as a musician and an audio guy, and Brian is a coder who moonlights as an artist. I did mostly programming on the project but also dipped into audio enough to make sure the audio was good. (Being childhood friends with Chris J. Hampton, an excellent, fast-working musician who happened to be available, helped too.) And while Brian and I showed up at the jam hoping to recruit an artist, as it turned out the jam was artist-poor and he was able to fill that role, like a Leopard frog reversing its sex in an imbalanced population. He also ended up writing the display code for the player avatar's different animation states, so I basically didn't have to worry about that stuff at all.
  • Well-defined developer roles. This is a lot easier to do with a smaller team -- we were basically "coder, artist, musician," which made it trivial -- but it was crucial to be able to plow ahead and trust that we're not going to step on anybody's toes.
  • Keeping up energy. The jam schedule being as tight as it was, we were both working 12 hour days all weekend, but we both took the time to sleep, and breaks for meals. (You wouldn't think sleeping would be a "thing," but a lot of teams at least considered the idea of working through the whole weekend.) Also, though we didn't get extra hopped-up on anything that weekend, at one point when I was feeling burnt out I went out running for 15 minutes to dump some serotonin into my bloodstream. (And to just take a break from staring at a goddamn screen.)
What went wrong?
  • Poor communication between team members. We could've gone way overboard in the other direction -- Brian joked about how his natural inclination would've been to take all weekend to write a spec -- but as it turned out we didn't talk enough. For example: we built the humans in the game out of modular shapes; I had a certain format in mind for how they'd be put together and Brian had a different one. We eventually made it work, but not before I wasted an hour trying to jam the square peg he gave me into the round hole I'd imagined.
  • Scope management. For the most part we handled this well -- see above -- but there was one feature I just refused to let go of: zooming in on the bear as he's huffing the can of Tartan Ward. I did eventually get it working, but it's a minor enough feature that long before I did that I should've cut loose and moved on to something more significant.
  • Not having a consistent scale for the art. This led to recurring export issues that we dealt with throughout the project.
Honestly, that's it. We didn't make many strategic mistakes during development; there are other things I wish could've been different, but these weren't really results of mistakes. Some examples of these:
  • Two problems with the Unreal Tournament-style hug announcements: I still think these work, but I hadn't done vocal production in this style before and they ended up not really having enough treble to cut through the audio mix. I never had time to go fix it. Also, I recorded these using a sequence of vocal inflections mimicking the ones in Unreal Tourament, in which they were used in a particular order. As soon as I put them in Huggy Bear I wanted to associate each announcement sound with the number of people in the hug triggering the announcement, but when I did that the inflections didn't make sense.
  • Our initial gameplay idea, on choosing the tweet, was for the bear to like certain people more than others based on superficial characteristics. For instance, the bear might be a big fan of short, fat, black children wearing blue sweaters, so killing those people would be a complete disaster for the mood meter, but killing just a fat adult in a blue sweater wouldn't be so bad, and killing a tall, thin, white adult in a green turtleneck wouldn't even faze you. This would presumably be randomized from game to game, and perhaps you could select your own preferred sweater and skin color and "play as yourself."

    I didn't want to bother implementing this feature until the art was in place, and the art for the people actually start getting hooked in until Sunday afternoon, at which time there was already gameplay in there we were happy with. It would've been nice to get the component-based mood hits in there, if only so that the huffy mode would be even more of a contrast, but the existing contrast was already pretty solid.

  • We also talked about, in the slower-paced huggy mode, implementing a swing meter hug mini-game so getting the most oxygen out of each hug took some player concentration. This would give huggy mode an even slower and more deliberate pace to contrast with huffy mode, but the feature never made it high up enough the priority list.
  • Along the same lines, since the humans are built from modular components, we wanted a bunch of different components to build them out of, but we ended up with only one each. The people don't look that samey thanks to each component having a choice of colors, but it would've been nice to have more shapes too. Also, at some point I wanted to go back and add more color choices; the existing colors, I just grabbed from Google image search for debugging purposes, assuming Brian would think about the colors later. Of course, this was a dumb idea to begin with because Brian is actually color-blind.
  • Everybody did the goddamn oxygen bear idea! We knew we were in trouble when one of the other six-or-so teams at the Oakland jam had chosen that tweet. We've never actually made a formal count, but there are four games I can think of off the top of my head that used the idea. They all turned out pretty different, though, and it's cool to see the different angles on the same idea.
  • We also wanted, in a perfect world where weekends were twice as long, to have little montages flashing by of the lives of everybody you killed, with images scraped from your friend's Facebook profiles. Man, that would've been sweet.
In conclusion: unlockable concept art! Since it's in this game, that's a checkbox I never have to tick again. Unless I can think of a really good way to satirize the idea.