
The
Case For Game Design Patterns
By
Bernd
Kreimeier
Gamasutra
March
13, 2002
URL: http://www.gamasutra.com/features/20020313/kreimeier_01.htm
Game design, like any other profession, requires a formal means to document, discuss, and plan. Over the past decades, the designer community could refer to a steadily growing body of past computer games for ideas and inspiration. Knowledge was also extracted from the analysis of board games and other classical games, and from the rigorous formal analysis found in mathematical game theory.
However, while knowledge about computer games has grown rapidly, little progress has made to document our individual experiences and knowledge - documentation that is mandatory if the game design profession is to advance. Game design needs a shared vocabulary to name the objects and structures we are creating and shaping, and a set of rules to express how these building blocks fit together.
This article proposes to adopt a pattern formalism for game design, based on the work of Christopher Alexander. Alexandrian patterns are simple collections of reusable solutions to solve recurring problems. Doug Church's "Formal Abstract Design Tools" [11] or Hal Barwood's "400 Design Rules" [6,7,18] have the same objective: to establish a formal means of describing, sharing and expanding knowledge about game design.
From the very first interactive computer games, game designers have worked around this deficiency by relying on techniques and tools borrowed from other, older media -- predominantly tools for describing narrative media like cinematography, scriptwriting and storytelling. Computer games are a visual medium, and game designers are increasingly relying on design techniques developed for movies - to the detriment of efforts to identify methods genuinely suited for game design. The discussion of narrative techniques has come to dominate the discourse on game design, almost extinguishing alternatives.
If the techniques borrowed from other media were sufficient to express and address game design issues, there would be no need to search for alternatives. However, the metaphors and devices borrowed from narrative media are usually insufficient (or even inadequate) to capture the essence of the interactive game medium. The community is aware of this [12], although the response is often an attempt to reconcile the contradiction by redefining the term "narrative" [24]. Taken to the extreme of an artificial playwright [23], this constitutes proposing a technological solution to a conceptual problem. The real issue is not the shortcomings of narrative techniques with respect to their utility in game design, but the lack of techniques genuinely suited for interactive media.
The game design pattern method proposed here is concerned with content patterns, as opposed to software engineering patterns [19], specializations of which that have been proposed for game programming [33,20]. Similarly, process patterns to organize and manage game development projects (such patterns could be extracted from [17,28]) are beyond the scope of this article.
What Are Patterns?
In a nutshell, patterns are simply conventions for describing and documenting recurring design decisions within a given context, be it game design or software engineering. Specific patterns are the result of applying this method consistently, leading to collections of design patterns which have been assigned a name and are documented by an anecdotal or abstract description. Pattern methods provide semi-formal tools for problem domains in which rigorously formal methods cannot easily be applied, or are simply not available or even conceivable.
Patterns are traditionally expressions of problem-oriented thinking. The seminal book by Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software, quotes Alexander [3]: "Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of a solution to that problem, in such a way that can you can use this solution a million times over, without ever doing it the same way twice." There can be several alternative solutions to a given problem, each one defining its own pattern, but the combination of problem statement and solution proposal is the essence of any Alexandrian pattern.
A game design pattern collection would provide a shared design vocabulary that allows experienced designers to:
It is important to distinguish between pattern-based methods, which are very generic and general, and specific pattern collections created for a given purpose. The decision to use patterns merely determines form, not content. The conventions of any pattern template do not guarantee (or prohibit) that useful patterns will be found and documented. Pattern methods are simply a successful way to express existing knowledge.
A Pattern Template
Pattern templates typically contain these four essential elements:
Pattern Examples
To show the method in action, let's look at some pattern candidates. The following examples are admittedly very simple, and weren't selected necessarily for their particular relevance to game design.
|
PROXY
|
PROXY was chosen to illustrate potential problems in using the same name for different patterns existing in different contexts. There is a software engineering pattern with the same name, introduced by Gamma et al. However, there is no meaningful connection between the two concepts. On the other hand, in some cases a given pattern language might translate into a sensible OOP implementation hierarchy, if there is a correspondence between the purpose of a given game design entity within the design context, and its implementation in the software that constitutes the game engine.
|
PREDICTABLE CONSEQUENCE
|
PREDICTABLE CONSEQUENCE is my rewrite of FADT "Perceivable Consequence" introduced by Doug Church (see [11] for the original description). Aside from changes to the description itself to refine its meaning (as I perceived it), this pattern candidate illustrates that FADTs can expressed as patterns.
|
PAPER-ROCK-SCISSORS
|
PAPER-ROCK-SCISSORS is a recurring game design device that may have been the very first to be semi-formally described. It can also be presented as a pattern. There is no new information in this rewrite; the existing knowledge has merely been reorganized to match the other examples. The pattern could be extended to include a description of payoff matrices and examples for sets larger than three (see [28] for such a discussion), but even the minimal description captures its essence.
|
PRIVILEGED MOVE
|
PRIVILEGED MOVE is a pattern proposal for a mechanism rarely discussed, but frequently used for a multitude of purposes. A single solution can solve or address multiple problems; a situation that is not clearly addressed in Alexandrian pattern languages that emphasize the problem-oriented aspect of pattern use. PRIVILEGED MOVE is also a very close relative of FILTER. This example set is by no means comprehensive. As Gamma et al. wistfully remark: "Finding patterns is much easier than describing them."
|
FILTER
|
|
WEENIE
|
|
WEENIE CHAIN
|
Pattern candidates can be harvested from many sources. For example, the pattern FILTER is taken verbatim from a game postmortem. WEENIE is taken from a discussion of theme parks and techniques of environmental storytelling, and has been presented under a different name in lectures on level design. WEENIE also is the foundation of WEENIE CHAIN, illustrating pattern dependency, composition, and hierarchy.
Once you start looking for patterns, you start noticing them everywhere. Erich Gamma et al. point out that whether they are aware of it or not, novelists and playwrights already use patterns. Many "narrative devices" (see e.g. [32]) could also be described using a pattern template.
Sometimes the need to differentiate patterns on distinct levels of abstraction leads to different labels: "One person's pattern can be another person's primitive building block" (from [19]). Alexander et al. present a total of 253 patterns, subdivided into three sets for "Towns, Buildings and Construction" [3]. Preferences regarding the virtues of a given purpose might apply: pattern are just recipes, means not ends, and disagreement on the ends is beyond the scope of a pattern. Designers might also have different views on the quality of a given solution: one person's pattern might well be another's "anti-pattern" -- a recurring example of a bad design decision. Ideally, the pattern description itself is just a candid summary of cause and effect, describing one way to reach a given objective.
Alexandrian patterns are not unknown to game developers. Many programmers are familiar with Gamma's concept of software design patterns. Will Wright of Maxis credits the same book as the original inspiration for The Sims, and refers to Christopher Alexander's works (namely [1]). Steven Chen and Duncan Brown, former level designers at LucasArts, refer level designers to the 253 Alexandrian patterns merely as a guideline to create "meaningful environments" [10].
Instead, game developers strive to develop their own forms and templates. The Formal Abstract Design Tools (FADTs) proposed by Doug Church can easily be rewritten to fit the canonical pattern template. Another recent attempt to document game design knowledge in semi-formal ways is "The 400 Project" by Hal Barwood and Noah Falstein, is a project to collect proven game design rules and techniques. This 400 Project dates back to a GDC 2001 lecture by Hal Barwood, in which he also presented four examples.
Their effort has now spawned a column in Game Developer magazine, in which Noah Falstein introduced the rule "Provide clear short-term goals" as the opening example. The 400 Project uses a five-part template: Imperative Statement - Domain of Application - Dominated Rules - Dominating Rules - Examples Aliases (see [18] for details). The concept of dominance (that some rules take precedence over others, and might in turn be trumped themselves) is absent from Alexandrian patterns. An Alexandrian pattern simply lists one possible solution to a given problem, acknowledging that other solutions might exist. Alexander sees each pattern as a recipe that strives to balance competing imperatives and conflicting forces in order to achieve the best possible results with respect to a specific objective. The decision to use a given pattern will also depend on whether there are multiple objectives to fulfill or when aside effects of applying a given solution, influence the. Falstein's rules appear more rigid, implying that all games have the same goals, and the same concerns. The names of the rules in the 400 Project are imperative statements, like Provide clear short-term goals, and their description contains only the solution part of a pattern. The problem to be solved by the pattern is merely implied or presumed obvious in this revision of the rules. WEENIE, as well as WEENIE CHAIN, capture parts of Provide clear short-term goals but also explicitly state the role of the pattern. Like rules, pattern names typically name the solution, not the problem: a matching pattern might just be called SHORT-TERM GOALS.
Outlook
Patterns
are a formal means of documentation, and such means open the door to software
tools for maintaining and editing game design documents. Take screenplays: word
processors can be configured to handle the canonical format for scriptwriting,
and some applications have been designed specifically to support that movie
industry format. Many game companies and game designers have devised their own
internal standards for game design documents. But defining a standard format
for game design documents is of limited use unless there are editing and search
facilities that support and enforce the format.
A pattern language is a natural match for descriptive markup, e.g. XML, with
a huge potential for tool support based on off-the-shelf software. The value
of any "living" document is directly related to the ease of its maintenance.
Structured editing aids structured thinking: if a design document does not have
clear organization, its use of keywords and names is inconsistent, and relevant
information can not be located quickly when needed, the document is practically
useless.
Consequently, game developers have to make a sustained, conscious effort to define and describe the recurring elements of their daily work - whether as patterns, rules or some other method -- so we can begin to create software tools made or adapted specifically for game design purposes. The case for Alexandrian game design patterns [22,29] seems strong: they have proven themselves in other and diverse professions; they are intuitive, well documented, and a familiar concept to software engineers, yet are flexible enough to permit anecdotak or informal descriptions of artistic choices.
Bibliography
[1] Christopher Alexander. Notes on the Synthesis of Form. (Harvard University Press 1964, 1966, 1979.) ISBN 0-674-62750-4 (cloth) ISBN 0-674-62751-2 (paper)
[2] Christopher Alexander, Murray Silverstein, Shlomo Angel, Sara Ishikawa, and Denny Abrams. The Oregon Experiment. (Oxford University Press, 1975.) ISBN 0-19-501824-9
[3] Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksdahl-King, and Shlomo Angel. A Pattern Language: Towns, Buildings, Construction. (Oxford University Press, 1977.) ISBN 0-19-501919-9
[4] Christopher Alexander. The Timeless Way of Building. (Oxford University Press, 1979.) ISBN 0-19-502402-8
[5] Brad Appleton. Patterns and Software: Essential Concepts and Terminology. Last update: Feb. 2000.
[6] Hal Barwood. "Four of the Four Hundred 2001". (GDC lecture, 2001.)
[7] Hal Barwood and Noah Falstein. "More of the 400: Discovering Design Rules 2002" (GDC 2002 lecture)
[8] Cliff Bleszinski. "The Art and Science of Level Design." (GDC 2000, pp. 107--118.)
[9] Jon Blossom and Collette Michaud. "Postmortem: LucasLearning's Star Wars DroidWorks" (Gamasutra 1999.) Originally Game Developer magazine, Vol 3, Issue 28, pp. 52-58, July 1999.
[10] Steven Chen and Duncan Brown. "The Architecture of Level Design." (GDC 2001 Proceedings, pp. 167--175.)
[11] Doug Church. "Formal Abstract Design Tools." (Gamasutra, 1999. Originally Game Developer magazine, Vol 3, Issue 28, July 1999.)
[12] Doug Church. "Abdicating Authorship: Goals and Process of Interactive Design." (GDC 2000, San Jose, Lecture 5403 (not in proceedings).)
[13] Stephen Clarke-Willson. "Applying Game Design to Virtual Environments" (Digital Illusion, ACM Press, Vol. 2, Issue 1, January 1, 1998.)
[14] (N/A).
[15] Chris Crawford. The Art of Computer Game Design, Chapter 6: "Design Techniques and Ideals." 1984.
[16] Troy Dunniway. "Using the Hero's Journey in Games." (Gamasutra, 1999. Originally published in Game Developer magazine, August 1999.)
[17] Troy Dunniway. Professional Game Design. (New Riders. To be published June 2002. ISBN 0-7357-1184-4. )
[18] Noah Falstein. "Better By Design: The 400 Project". (Game Developer magazine, Vol. 9, Issue 3, March 2002, p. 26.)
[19] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. (Addison Wesley Longman, 1994.) ISBN 0-201-63361-2.
[20] Chris Hecker and Zachary Booth Simpson "Game Programming Patterns & Idioms." Game Developer magazine, Sep. 2000.
[21] John Hopson "Behavioral Game Design." Gamasutra, April 2001.
[22] Bernd Kreimeier. Game Design Patterns. Wordware Publishing, Inc. To be published March 2003.) ISBN 1-55622-967-4
[23] Brenda Laurel. Computers as Theatre. (Addison Wesley Longmasn, Inc. 1991, 1993 ISBN 0-201-55060-1.)
[24] Marc LeBlanc. "Formal Design Tools: Emergent Complexity, Emergent Narrative." GDC 2000, San Jose, Lecture 5304 (not in proceedings).
[25] Gerard Meszaros and Jim Doble "A Pattern Language for Pattern Writing"
[26] Pierre-Alain Mueller. Instant UML. (Wrox Press, Ltd., 1997) ISBN 1-861000-87-1.
[27] Karen Pryor. Don't Shoot The Dog! (Bantam Doubleday, 1999) ISBN: 0-55338-039-7 (revised paperback edition)
[28] Andrew Rollings and Dave Morris. Game Architecture and Design. (The Coriolis Group, 2000.) ISBN 1-57610-425-7
[29] Andrew Rollings and Ernest Adams. Patterns in Game Design. (The Coriolis Group, to be published May 2002.) ISBN 1-57610-873-2
[30] Richard Rouse. Game Design: Theory & Practice. (Wordware, Inc., 2000) ISBN 1-55622-735-3
[31] Aamod Sane "The Elements of Pattern Style." December, 1995.
[32] Viktor Shklosvsky. Theory of Prose Dalkey. (Archive Press 1990, 1991.) ISBN 0-916583-54-6 (cloth) ISBN 0-916583-54-6 (paper).
[33] Zachary Booth Simpson "Design Patterns for Computer Games." 1998 CGDC Austin, TX, November 1998, also San Jose, CA, May 1999.
[34] John Vlissides. "Pattern Hatching - Seven Habits of Successful Pattern Writers." C++ Report. Nov/Dec 1996, and Pattern Hatching: Design Patterns Applied (Addison Wesley, 1998).
[35] Christopher Vogler. The Writer's Journey: Mythic Structure for Writers. (Michael Wiese Productions, 1998.) ISBN 0-941188-70-1
Copyright © 2003 CMP Media Inc. All rights reserved.