Thursday, March 11, 2010

Game Jams in the Classroom

Just talked at GDC yesterday for a whole five minutes, on applying Global Game Jam in the classroom in five non-obvious ways (you know, other than "get students to participate"). I think I was talking too fast for anyone to actually take notes, so here is the gist:

1. Have students read post-mortems and do a cumulative analysis.

The "post-mortem" is a tradition in the game industry: after a project is released, a reflection on what went right and what went wrong in the process (or as I put it: "figuring out why your game sucked as badly as it did"). You can find these on Gamasutra and in Game Developer magazine, and you can even see student post-mortems on Game Career Guide. And to start with, reading these is valuable for students so that they can see the patterns and get a feel for the most common pitfalls and dangers of game development.

Beyond this, though, it's instructive to have students search for Game Jam post-mortems (these are unofficial and tend to be on individual participants' blogs, so you have to do some digging to find them). The interesting thing is that a lot of themes in industry post-mortems on 5-year AAA projects also appear in Game Jam post-mortems (scope control, pipeline problems, engine difficulties, team communication, etc.). So a lot of the same lessons apply on how to develop a game, whether the game takes 2 days or 10 years.

2. Game Analysis

I teach a class called "Game Criticism and Analysis" (sort of like art criticism or film criticism, but with games). The goal is to be able to play games and analyze them in a way that's a little more sophisticated than "it's good" or "it sucks."

Normally, analyzing a full game is really hard in a class, because many games are very long to play ("80+ hours of gameplay!" is a common marketing tactic), and even shorter games are still 8 to 10 hours, which is hard to justify if you want students to analyze a new game each week.

Game jam games offer a solution. Because they are made in a short period of time, they tend to play quickly and have relatively simple systems, lending them to play in class or as homework without taking too much time.

3. Minimum bar for student projects

For "capstone" and other project-based courses where students work individually or on teams to make complete games over an academic term (or several), game jam games provide a realistic, achievable yardstick to measure project quality. I mean, these games were made in 2 days, so your students should be able to do at least as well with 15 weeks.

The best, most clever Game Jam games can be used as a source of inspiration for students, that they should be able to do better with so much more time. They can be used as a grading rubric, letting students know the quality level you expect (and informing the teacher about this as well).

4. Achievements

We tried some new things at Global Game Jam this year, among them Xbox-Live style "Achievements": totally optional extra challenges to allow experienced developers to really push their boundaries. It allowed people to seek their own level of challenge and comfort.

I see no reason similar things can't be implemented in most class assignments. (We already offer "extra credit" but "Achievement Unlocked" sounds so much more fun.) You can offer extra points, or you can simply make it available for the purpose of bragging rights.

5. Fix a broken game

As you might imagine, with only 48 hours, some games don't actually work. Maybe the team overscoped and had to make drastic cuts at the end. Or maybe the programmer stayed up a little too late and wrote some terribly insane code at 3am and now the entire thing is a mess. The whole project team would like nothing better than to sweep the whole thing under the rug and pretend it never happened (and hopefully take away some life lessons about how to not make games).

Additionally, there is often a disconnect between classes (where students typically start with a blank slate and write a complete, simple program from scratch) and industry (where you are almost always working with someone else's pre-written code, not even counting the use of game engines).

Luckily, one of the rules for Global Game Jam is that everyone (in theory at least) has to submit their complete game (including source code)... working or not. This suggests an interesting assignment: find a game that has the source code posted that doesn't actually run, and assign a programming team to fix it, while staying as close as possible to the original design intent.

Your students will hate you. They will complain that the people writing this code were horrible programmers. They will complain that the code is a mess, and that they just want to rewrite it all from scratch. They will probably use a lot more profanity than you are used to hearing from them. In other words... they will start to sound a lot more like professional game programmers :-)


Unknown said...

I'll have to come back and read more in depth later. My boys LOVE designing games.

Debi said...

Hi Ian,

I think your suggestion has a lot of merit and draws parallels to what a typical graduate would experience when they eventually go out to industry. One of the first tasks they'll definitely get is to clean up someone else's broken mess. So what better practice than with a game assignment! And as a reward they get to play a fully functioning game at the end!... well, hopefully.

So, have you actually tried setting an assignment like this for your students? Or were you merely speculating about how you think it might pan out? If you have set an assignment like this and it did work (despite them swearing at you) let us know how it went - were they successful? - did they enjoy the experience? - did they learn something?

I'm actually thinking of suggesting this to my old C++ lecturer who insists that whenever he creates a programming assignment that he first code the entire project himself first so that he knows and has a better appreciation of what the students are up against and in turn know how to design the marking criteria.

I personally think it's a great idea by teaching students to plan and think things out before diving in.

Ian Schreiber said...

Hi Debi,

Having students read post-mortems, doing game analysis, and using game jam games as minimum bar for longer-term student projects, are all things I've done in my own classes. (I would add that I also use IGF Student Showcase winners as a "maximum bar" for student projects.)

Achievements are not something I've had occasion to try yet, but I certainly will the next time I teach in the classroom. Fixing a broken game, likewise, is not something I've been able to try yet -- I normally teach game design, not game programming -- but would love to hear about it if anyone is brave enough to tackle this!

Jacquelyn said...

t sounds like you really have figured out what the keys to great game development are. It's awesome that you're applying game jam to the classroom, help young developers learn how to think critically about their games and other games. Sounds like worthwhile stuff!!!

Quark said...

About achievements, at our school we actually implemented them in our education system. We students came up with them ourselves and our project group is really going for it and its working quite well actually.

Altough saying that is being a little forward, since this is our first time working with them and there aren't actually any results yet.