Monday, November 19, 2007

I Came, I Saw, I Jammed

Participating in a game jam is a very different experience than coordinating it. Each game really is like a full AAA development cycle, time-compressed down to less than 48 hours; spending a weekend on this can practically give you as much experience as working on a full game, so I highly recommend it to students and professionals alike. We even had a fair population of people who have never made a game before at all, so I would recommend this for instructors as well.

In true Post-Mortem fashion, here's how it went for my team:

What Went Right:

  • Multiclass Developers. On a small team with such a short deadline, having people who only know how to do one thing can lead to some precious time wasted; designers must sit on their hands while waiting for the programmer to implement their designs, while programmers and artists have to wait at the start until they know what they're supposed to make. Since team size is constant over the project (you can't scale up after "pre-production" like you can in industry) you need to make sure everyone is occupied constantly. I was a programmer/designer for my team, along with two artist/designers and a designer/audio guy. We all collaborated to get a basic concept quickly, and then everyone had some content to work on once we were done. Lesson for industry: The value of generalists with multiple skills increases in proportion to the rigidity of team size.
  • Research. The goal was to make a game for kids age 8-12, which none of us had done before. I took the liberty of scouring Gamasutra for relevant articles, and talking to colleagues about what kinds of design rules are different when designing for this age group. I'm glad I did; we did not have the benefit of anyone sharing tips on this at the start of the event, nor did we have the opportunity (or the time) to focus test. Lesson for industry: If your project involves targeting a demographic that doesn't exist on your development staff, make an extra effort to remedy this.
  • Constantly Shippable Code. We had something playable within a few hours of starting. It wasn't complete but it did run. This gave us the advantage of flexibility; no matter when we ran out of time, we knew that we would at least have something to show for it. Lesson for industry: Always have something to show. I think this is even more important in a world where deadlines can change, and publishers can unexpectedly drop by and ask to see how far along you are.
  • Concept and Technology. We first asked ourselves how we could keep the control scheme so simple and obvious that we wouldn't need any text to explain it; we came up with the idea that you controlled a paper airplane by "blowing" on it, using a flicking motion on the touch pad to blow wind that would cause the plane to move in that direction. I think we got that part of the game feeling pretty good. In the process we also managed some things that Python and Pygame (the required language for this hardware) were never intended to do: smooth-scrolling backgrounds, and adaptive background music that would gradually get more frantic and intense the faster you scrolled.

What Went Wrong:

  • Scope. We designed a game that we knew we could finish within the allotted time. Unfortunately, it took exactly the alotted time, so we had no time remaining at the end for polishing the graphics, sound or gameplay. As a result, our final project was one of the least compelling games of the jam. Lesson for industry: Design games that can be made in far less time than you have, and then use the extra time in the schedule to polish what you have in an extreme fashion.
  • ...And More Scope. Our audio designer went AWOL on the last day of the jam, with his work left unfinished. As a result, we had to divert some resources away from art just so that we had at least some background music, and what we ended up with was just thrown in at the last minute. The final game sounds horrible, even though it has the capability of sounding amazing. Lesson for industry: Avoid having people on your team who are irreplaceable, in case they get hit by the proverbial bus (ours might have been hit by an actual bus for all we know). Thank goodness we didn't have a multi-million dollar development project at stake!
  • ...And Even More Scope. We originally expected to have 14 regions in the final game, because the artists were able to finish the first region in only an hour or so, and at that rate that left them plenty of time. But the artists couldn't sustain such a high rate of work after sleep deprivation set in, and cut down to 7 regions... and four of those were thrown in at the last minute, so we should have cut down to only three or four (and just made those look really good). We also lost a lot of time to an undocumented technical limitation: Pygame blows up if any sprite is more than 14400 pixels wide, so instead of having one massively wide background we had to break it up into several regions, with one screen-length overlapping from each region to the next. This forced the artists to re-work a lot of their original files, costing valuable time that wasn't accounted for in the original schedule. Lesson for industry: Design your core mechanics to have scalable content. If your game needs a large number of levels to be playable, and you run into scheduling difficulties, you're in trouble. If your game can support a short play experience but becomes boring and repetitive if you try to add an extra 20 hours of gameplay time, you're also in trouble. Best case is a game that works no matter how much content you have, so that you can add exactly as much as time allows and know that it will be fine.
  • Concept is Nothing; Execution is Everything. Our execution was okay (especially considering we only had a couple of days) but not spectacular. A lot of great ideas were simply not implemented in a way that made them realize their potential. I tell this to my students over and over again, but saying it is one thing and experiencing it is another. The winning games were all very simple concepts with relatively little content, elegant mechanics and a high "fun" factor. Lesson for industry: Maybe the lesson here should be, make all of your mistakes in Game Jams rather than on big-budget projects. If you ever want to try a new development methodology (maybe you've always worked in Agile development and wonder what could possibly go wrong if you try to design everything up-front in a comprehensive design doc, or you've never done Rapid Prototyping, or you want to see the effect of a lengthy preproduction, or something), try it in Game Jam form, with the understanding that an hour of a Game Jam is roughly equivalent to a month on a large project if you're trying to compare schedules. You'll probably learn a lot about what works and what doesn't work, without wasting huge development resources.

I'll update this post with a link to the games, as soon as it's online.

1 comment:

David McGraw said...

"The value of generalists with multiple skills increases in proportion to the rigidity of team size."

This 'Generalist' thing seems to be where I'm at right now at college... I can't tell if I need to fix that or what.

This Game Jam sounds really fun! I might talk with our computer club here at the university to see if we can get one going sometime.

I'm pretty interested to see what you all were able to come up with in such a short time frame.