Only You Can Build the Language You Need to Create Games
By: Chris Barney
Tags: Pattern Language, Game Design, Pattern Library, Game Development, Videogames

PATTERN LANGUAGE FOR GAME DESIGN

Only You Can Build the Language You Need to Create Games

Most game developers will agree that we need a shared language to talk to each other about games. A language to communicate our ideas to each other and create a shared vision for a game, to talk to each other as we work through the problems of development, and to tell the world what we have made.

A distressing number of designers will be happy to tell you what that language is, and why it's the one that you should use. I’m not one of those designers. I think that the games we want to make are so unique, and our medium so new, that to rally around any monolithic lexicon is at best premature and at worst antithetical to good design.

And yet…

We DO need to talk to each other, we do need to create a shared understanding of the design space of our games. So someone has to step up and define the language. Right?

Having just spent several years researching, teaching, and writing on the subject, I might surprise you by saying no. I’ve concluded, instead, that for each team, each game, and each developer, that they are the only one that can define and choose the language that they need to create their game.

“Okay,” you may be saying. “That’s very fair-minded and egalitarian of you… but I am not the great game designer needed to forge a language for creating a game out of my experience, insight, and hubris!” Or at least that’s what I said to myself for years. I didn’t have the experience, the brilliance, or the tools to even begin.

I had spent years waiting for word from the great designers on high. For a paradigm that would solve all my problems, a language that we all could agree on. Each new attempt had great value, but none served all my design needs, even for a single project, let alone for all the games being made across the industry!

Then I finally came across the work of Christopher Alexander. He had faced this problem in the field of architecture. Not just the problem of finding a language for design, but finding a language for good design. I decided that the answer was to adapt his methods to help me create the design patterns I needed to solve the personal design challenges I faced.

And it worked! But the patterns I found, while useful, were mine. Creating them taught me what I needed to know to solve a specific design problem, and they helped me communicate my ideas to others. Some of them may even have served similar needs of other designers. But I quickly realized that the valuable thing was the process I had used to create the patterns, not the patterns themselves. I talk about that process and how I created it in this article:

A Pattern Language for Games

I have taken the two years following writing it to develop those ideas into a book that describes a method that any designer, no matter how new or how experienced, can use to create their own language of patterns. It contains 25 exercises that you can use to get your language started, and provides example patterns created from each exercise. It shows in detail how each pattern was constructed from the exercise.

Pattern Language for Game Design

The book does not lay out The Pattern Language for Games. But it does show you how you can create the Pattern Language you need for your games, and how the arduous process of building that language will make you a better designer.

Despite the title of this article, I do think there is value in sharing our patterns. They are a solid way to exchange design ideas, and their shared format can allow you to select patterns created by others and add them to your own, driving the state or our art forward.

To aid in the process of recording and sharing patterns, I created a Pattern Library website. I have added all of the patterns from the book, and my students have added at least a hundred more. With any luck, you, the readers of the book, may add hundreds more.

I hope that they help you create the language you need!