Desert of My Real Life











{March 4, 2011}   Game Design Education

I belong to the International Game Developers Association (IGDA) which has a fairly active listserv.  The most recent discussion on the listserv was prompted by Brenda Brathwaite‘s rant at the most recent Game Developers Conference, which ends today.  Brathwaite is a well-known game designer, educator, IGDA board member, and author.  She wrote one of my favorite game design books, Challenges for Game Designers.  So people pay attention to what she has to say.  And what she had to say in this latest rant has been quite controversial.

The title of her rant is Built on a Foundation of Code.  Her basic point is this: “Game design programs must be firmly rooted in a foundation of code.”  What she means is that students graduating from a game design program must be good programmers.  They must learn to create digital games from scratch.  Code is the tool of the trade and if we game educators do not teach our students to program, we are doing them a huge disservice.  She makes this point as a game designer who started in industry, went to academia, and is now back in industry.  She sees thousands of resumes and wants us all to know that she will not hire entry-level game designers who have not created their own digital games.  That is, she will not hire game designers who can’t code. 

I’ve heard this kind of argument before but it usually comes from computer scientists who think that their discipline is the most important one for the multidisciplinary field of game development.  But Brathwaite is not a computer scientist and so her argument is a bit surprising.  And it’s also why no one is simply dismissing what she is saying–she’s not saying MY discipline is the most important. 

At the risk of sounding discipline-centric, as a computer scientist, I think that the training that computer scientists go through is extremely important for anyone who wants to create any sort of procedural content.  What do I mean by that?

Procedural content is any artifact that is executed by a computer, any artifact that is comprised of a series of instructions that are to be run by a computer.  For example, this blog entry is digital content but not procedural content–it does not contain instructions for the computer to execture.  The blog software that I’m using (wordpress) IS procedural content–it is comprised of instructions that are executed by the computer as I write my blog entry.  Creating procedural content requires a particular way of thinking about that content.  Creating procedural content also requires the development of debugging skills because no one writes procedural content that works perfectly the first time.  Making this content work properly can be tedious and frustrating and the developer needs to be persistent and detail-oriented, while also being able to take a step away from the content to think about the obstacles in new ways.  It takes practice to implement this cycle of creating the content, testing to find bugs, planning a fix for the bugs, implementing the new content, testing to find bugs, planning a fix, and so on.  And the ability to think in a way that allows you to go through this cycle over and over seems important for anyone who wants to work in game development.

Notice that I’m saying something a bit different than Brathewaite.  She says she wants all game developers to be able to code.  I’m saying I think game developers need to be able to think like coders.  But perhaps it boils down to the same thing, perhaps the only way to teach someone to think like a coder is to teach them to code.  In any case, I think this is an interesting question, one that I’ve thought about quite a bit as I’ve tried to teach game design and development to non-computer science majors.  I’m still trying to figure out the best way to teach this kind of thinking.



Steve Graham says:

What you are saying is different from what she said, but not necessarily from what she meant. I interpreted her comments very much along the lines you suggest. A similar (but more general) perspective is the whole idea of “computational thinking” — see http://www.cs.cmu.edu/~CompThink/.

Learning to program to a considerable depth, rather than a bit of introduction, seems a reasonably reliable way to develop the skill. I’m not aware of other ways to acquire it, though there may be.

cheers,
skg



Comments are closed.

et cetera