Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
84 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Intel sponsors gamedev.net search:

Contents
 Page 1
 Page 2
 Page 3
 Page 4
 Page 5
 Page 6

 Printable version
 Discuss this article

Using Evolutionary Design for computer games

A board game is a simple example of evolutionary design in action.  Computer games offer a whole new set of difficulties involving technology and content development.  Imagine attempting to test your game design when it takes 6 month for the graphics engine to show something on the screen and 4 more months before there is enough art to describe the environment.

How do you integrate evolutionary design with software development and content creation constraints?  I don't have a short answer, but I've experienced some powerful, proven techniques that may one day lead to a unified iterative game development process.

Adapt an agile software development process like Extreme Programming

There a relatively new type of software development process called Extreme Programming.  The goals are similar to evolutionary design.   Development occurs in short iterations and all code is constantly tested.  The goal is to manage change.  I've worked within this system for about a year in a non-game project that required the co-development of a 3D engine, an editing environment, and content.  So far I'm impressed.  Modifying the process to include game play testing in addition to code testing could place evolutionary design in the context of a proven software development method.

Use standard formats for art and then adapt the technology to the results

There are proven methods for efficiently creating artwork involving concept artwork, modeling, animation, etc.  Such activities require extensive planning.  Evolutionary design poses an interesting dilemma because it intentionally avoids abstract upfront planning so that it can adapt easily to the reality of the situation.

I have a heretical theory, and mind you this comes from someone who has been painting and illustrating for much of my life.   Suppose you were to test art like you test game design and code.  You would get back comments like "It needs to be pretty.  It needs to have a coherent style."  You would hardly ever get back "The art caused the game to fail because the character had goatee instead of a full beard."

Why?  Because the only function most art has in a game is to help create the setting.  Art needs to be attractive, evocative and vaguely related to the game concept.  Everything else is up to the vision and talent of the artist and the technical requirements of the engine.

During the first few iterations, the game will rapidly solidify.  At this point the designer should be able to describe the basic setting requirements.  The team can decide upon:

  • Technical requirements for getting artwork into testing as soon as possible

  • Rough background story that gives artists conceptual details to draw from.

  • A general artistic theme that will fit the game

  • The first batch of content artists should start working on.   For example: "A cool player character that fits the theme and background story."  Or "Some monsters."

If possible, create high quality artwork and then constantly evaluate how that information is getting into the game engine.

I'm glossing over two particularly tricky content related elements.  The first is the user interface.  This requires numerous iterations of both design and content.  The second is map building.  Maps are heavily content dependent, but they are part of the game design.  There are ways one can separate map functionality (game design of map skeleton) from art creation (making map building blocks) and application (prettifying the map skeleton by applying art resources).  However this requires an intricate robust process that is heavily dependent on the tools and people available.

A Proven Technique

Evolutionary design is not an original concept. Similar ideas have been called iterative design or prototyping for many years. Dozens of companies practice grass roots processes that are evolutionary design in spirit if not in name. 

For my first game design, I worked with a small company called Epic Megagames on a project named The Circle.  As a enthusiastic designer fresh out of college, I led a small team that fluctuated between 3 and 5 people for the chaotic two-year length of the project. I was a fervent believer in intelligent game design, and proceeded to write a concise hundred-page design document describing everything.  To call the design ambitious would be an understatement.  In no particular order, the document included: 

  • Large tracts of plot
  • Dozens of intricate game systems
  • Detailed character art.

There was another project at Epic named Unreal.  The Circle used the same Unreal engine and authoring tools, but the Unreal team went about the development process in a very different manner.

  • They made stuff, including seemingly random maps, characters, and weapons
  • They messed about with their creations
  • They tossed things that didn't work
  • They kept on doing this for the length of the project
  • For a long time, Unreal had no design document.  Eventually they settled for a rough description of levels and weapons.  I'm not sure how much they actually used them.

The Unreal engine was in a constant state of revision.  Content created one month would fail to load inexplicably the next. The documented limits were not the actual limits, and the only way to find out was to break the editor through accidental stress tests. Projected features never materialized, and the completion of the engine was always estimated at a year away. 

Two very different projects had two very different endings. The Unreal team managed to figure out the limitations of the engine and create the most enjoyable game possible given the constraints.  One could say they evolved their game to fit what they were given.  The Circle team would try to build the ultimate inventory system, or the ultimate movement UI, completely ignoring the state of the engine.  Months were wasted on textures for areas that were impossible to build. For two years, the Circle team carefully built the items in the design document only to realize they were unworkable.

In the end, The Circle was canceled, and Unreal went on to fame and fortune.  While there were other issues involved, the design methodology contributed greatly to the final result.

I hear tales from around the industry.  Blizzard mentions that one of their most important design activities is playing the game. Sid Meier discusses his test bed philosophy of trying out game designs. Peter Molyneux expounds upon the prototypes that help him polish original ideas. Each appears to build 'fun' into their game designs throughout the entire development process. Is it really surprising that players worship the games these developers produce?

The Benefit of a Process

In conclusion, I'd like to tackle why an explicit process like evolutionary design helps the industry. 

With Giants & Castles, I stumbled upon the various iterative steps and then codified them. Once I began following the rules, my design proceeded more quickly and the modifications I made were better. The Unreal team also stumbled upon the basic concepts.  However, they had no steps to follow and large amounts of effort were wasted due to disorganization, lack of communication, etc. 

A process turns implicit and instinctual knowledge of what works into a repeatable series of steps that improves a group's ability to manage their project.

  • A process creates common language so group members can accurately discuss elements of their mutual activities.

  • The team can justify scheduling time for essential tasks that often get lost in the rush of development.

  • There are concrete expected results listed for each step, so everyone knows the goal of their activities.

  • Each step can be improved by checking the actual results against expected results

The hope is that codifying observed successful design practices would help other game designers improve their own design processes.  Take the evolutionary design concepts in this article.  Adapt them to the situations you find in your unique work environment.  There's a very good chance you will build enjoyable games.

References

Diablo II Post Mortem
http://www.gamasutra.com/features/20001025/schaefer_01.htm

Extreme Programming
http://www.xprogramming.com/

Daniel Cook
daniel.cook@anark.com
http://www.lostgarden.com/


© 2002 Daniel Cook. All rights are reserved.