|
Evolutionary Design
Page
6 of 6
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/
Back to the Beginning
Goto Page: I :
2 : 3 : 4
: 5 : 6
Return to Home
|