BETHKE, Erik. Game Development and Production
BETHKE, Erik. Game Development and Production
BETHKE, Erik. Game Development and Production
Back Cover
Writing comprehensive design documents, accurately estimating tasks and schedules,
setting up a comprehensive QA planthese are all important aspects of the game
development process that are often underplanned. Game company executive Erik Bethke
provides a guidebook that discusses these issues, along with detailed coverage of
development methods and project management techniques, all from the perspective of
someone who has learned the hard way and is still learning.Find out about every aspect of
game development and production from concept on a napkin, through development,
release, and beyond into patches and point-releases.Understand the challenges that game
developers face in producing successful game titles.Learn how to define the key elements
and requirements of a game.Discover how to create and maintain schedules using Gantt
charts and resource usage charts.Learn how to use Unified Modeling Language to improve
the efficiency of your game development process.Develop an understanding of how
intimately your business parameters affect your game designs.Explore strategies for
landing a job in the game industry.Find out about outsourcing different parts of game
production, such as motion capture, music, voice, and sound effects.
About the Author
Erik Bethke is the CWO of Taldren, where he holds the position of executive producer and
lead designer on Taldrens Starfleet Command series published by Interplay and Activision,
as well as the upcoming title Black9, published by Majesco. Bethke has held a variety of
positions in the game industry including senior group producer at Interplay. He has a
bachelors degree in aerospace engineering and has worked in the Space Sciences division
at the Jet Propulsion Laboratory.
Game Development and Production Previous Top Next
Foreword
It is a great honor to write a foreword for a book on game production, as this is a subject
that is very close to our hearts. We have played a very small part in helping Erik with this
bookhe has accomplished a Herculean task in a relatively short period of time. We believe
this book will serve as an excellent foundation for mastering the art of game production.
A multitude of books have been written on the specific disciplines of art, programming, and
design for games, but few, if any, have ever tackled game production as a topic. Perhaps
this is because there isnt a standardized way of referring to production in a manner similar
to programming and art. Programming is done in C and C++ and usually follows standards
that have been carefully crafted over many years. Art uses both traditional media and a
narrow range of digital art tools, such as 3D Studio Max and Maya, and is often practiced
by individuals with formal art training at their disposal. Perhaps game design is most similar
to game production in that, until recently, there havent been formal programs in game
design, and it is somewhat of an arcane art that could be realized in any potential medium.
At the current time there arent any formal training programs for game production, though
there are various courses available in project management. Project management doesnt
fully encompass the skills needed to manage game development, but it does provide some.
Appropriately, this book includes elements of project management, engineering discipline (a
tribute to Eriks engineering background), and a lot of common sense (an essential
ingredient in game production).
Erik explained that his goal with this book was to fully realize the discipline of game
production in a formal, yet widely appealing treatment. We were quite impressed with his
ambition, as weve learned over the years (via our work on games like Baldurs Gate, MDK2,
Neverwinter Nights, and Star Wars: Knights of the Old Republic) that game production is a
huge area. Erik further explained that he was going to provide additional information on
topics such as outsourcing and detailed production frameworks. During our review of the
manuscript, we learned a number of things that were going to be able to apply to
development at BioWare. Were also more excited than ever in seeing the final work with all
of the graphs, diagrams, and illustrations accompanying the text.
In conclusion we believe you, the reader and presumed game producer or game developer,
will learn a great deal by reading this book. Its contents cover a wide range of topics and
contain pearls of knowledge that will be of value to not only new game producers but also
to experienced game developers. Read and enjoy!
Dr. Greg Zeschuk and Dr. Ray Muzyka
Joint CEOs and co-executive producers, BioWare Corp.
Preface Previous Top Next
Part I: Introduction to Game DevelopmentIn This Part:Chapter 1: What Does This Book
Cover?Chapter 2: Why Make Games?Chapter 3: What Makes Game Development Hard?
Chapter 4: Game Project Survival Test
Chapter 1: What Does This Book Cover? Previous Top Next
Post-Release
After a game ships you will often have a responsibility and an opportunity to support your
game. This is especially true for the PC game market where it is possible to patch bugs,
fine-tune the balance, and add new features or content. The new content can take the form
of free downloads or larger packages that can be sold as expansions to your game. These
are the straightforward tasks; true mega-hits transcend the status of just a game to play
through and become a hobby. Enabling players to modify the game through the creation of
new levels, new modules, new missions, or even total conversions keeps your game alive
far beyond the life expectancy of a game without user-extensible elements. Pioneered to
great success, id Softwares Doom and Quake series coined the term level designer as an
occupation. Arguably, the greatest strength of Chris Taylors Total Annihilation was its
aggressive design for user modification. Chapter 9 discusses the technical design, and it is
here, in the earliest stages of architecture for your game, that you must plan for user
modification. Waiting until the end of your project is not a valid method for adding user-
extensibility to your game.
Fan communication is critical to long-term success; set up an Internet message board for
your fans to trade ideas, tips, gripes, rants, stories, challenges, and new content.
Success and the Long Race Previous Top Next
Games Teach
Games and stories are deep elements of human culture. Peek-a-boo and its more
sophisticated cousin hide-and-seek teach the elements of hunting prey and evading
predators. The oldest complete game set discovered so far is the Royal Game of Ur, an
ancient Sumerian game dating back to 2500 B.C. The rules for this game are unknown, but
the conjecture is that it was a betting game about moving a piece around a track of
squares, perhaps as a very early predecessor to backgammon. Wei-Chi, or Go, can be
traced back by one legend to 2200 B.C. China where Emperor Shun supposedly used the
game to train his son for assuming leadership of the state. Chess has a rich history
throughout the Middle Ages, the Renaissance, and through to modern times as the most
Background and influences on modern game genresGambling, Puzzle, and Parlor Games
Games evolved from elegant board games full of culture to a wide variety of wagering
games involving dice or cards. Games like Parcheesi and Scrabble took solid form during
the 1800s and early 1900s. Parcheesi is the father of board games and requires the
players to navigate their tokens around the board like Monopoly and Candy Land. These
games themselves have been directly ported as electronic games, but it is the fast-paced
puzzle games like Tetris that have developed new ground in this genre.
As I type these words, over 110,000 people are playing straightforward conversions of the
classic card and board games online at Microsoft MSN Gaming Zone
(http://zone.msn.com/ql.asp). These games have entertained families and friends
throughout the ages and teach deduction, probability, and social skills. The folks at Silver
Creek Entertainment (http://www.silvercrk.com) have taken the concept of spades and
hearts and have crafted the finest versions of these games, complete with a rich set of
features for social interaction including chat, ratings, and blasting your opponents with
fireballs.
One of the coolest parlors (in my opinion) happening right now is the Internet Chess Club
(http://www.chessclub.com) with over 1,000 players currently connected and 26 Grand
Masters and International Masters playing online. The ICC boasts an impressive chat
system, automated tournaments, over 30 flavors of chess, anytime control, and impressive
library and game examination features. Automated chess courses are broadcast throughout
the day, and many titled players turn their mastery into cash by teaching chess using the
shekelthe unit of currency on the ICC. It is an exciting place where you have the choice of
watching GMs and IMs or playing in tournaments around the clock. Instead of dusty
annotated chess columns in the newspaper, try some three-minute blitz action with the best
Various windows of the Blitz interface to the Internet Chess ClubMilitary and Sports
Simulations
Games have long been providing simulations of real-life experiences that many of us do not
get to experience in daily life. There are simulations for white-water kayaking, racing
minivans at night on the streets of Tokyo, fantastic-looking detailed professional football
simulations, skateboarding simulators, star fighter sims; in short, any sport, military action,
or transportation method is a good candidate for an electronic simulation.
Flight simulators have been the staple of computer simulations since the early 80s.
Microsoft enjoys the #1 spot with Microsoft Flight Simulator, which they release new
versions of every even-numbered yearthe latest being FS 2002
(http://www.microsoft.com/games/fs2002 ). Microsoft Flight Simulator has a huge following
including hundreds of virtual airlines and air traffic controllers, and half a dozen or so books
are available for Flight Simulator.
Austin Meyer of Laminar Research is the author of the most realistic and user-extensible
flight simulator, X-Plane ( http://www.x-plane.com). Aside from the obligatory features of
impressive 3D plane graphics, great looking scenery, and a realistic flight model, the truly
impressive features of X-Plane involve its expandability. Hundreds of planes and other
features created by devoted fans are available for X-Plane, including real-time weather that
is downloaded to your computer while flying! The author put his time into creating the first
simulation of what it would be like to fly on Mars: real flight with the gravity, air density, and
On Money
In this whole discussion I have not talked about the money to be made in making games.
Game making is both an art and a science. If you are honest with yourself, your team, the
customer, and to the game, you will make a great game. In all art forms, excellence is
always truth.
Honesty, truth, and clarity are all interrelated, and they are important not because of moral
standards; they are important because only with the ruthless pursuit of a clean, tight game
can you hope to make a great game.
The rest of this book will focus on how to get maximum value for your development dollars
with outsourcing, how to decide which features to cut, and how to track your tasks; all
these activities are heavily involved with money. That being said, look deeper and
understand that I am helping you realize the true goals for your game project and to reach
these goals as efficiently as possible.
Great games sell just fine, and the money will come naturally enough; focus on making a
great game.
Why Make Games? Previous Top Next
The darkened boxes represent the number of successful games published each year.
In 2000 an established developer in North America would likely receive between $1 million
and $3 million in advances paid out over 12 to 36 months for the development of a game.
The typical publisher will spend between $250,000 and $1.5 million in marketing and sales
development (sales development is the euphemistic term for the money the publisher must
spend to get the game actually on the shelf at the retailer and well positioned). The box,
CDs, maps, manual, and other materials in the box cost between $1.50 and $4.00
collectively. The royalties an established developer could expect vary widely, from 10 to 30
percent, depending on many factors including how much of the financial risk the developer is
assuming and the types of deductions to the wholesale price. Lets take a look at what
these numbers mean for a game that has an average retail price of $35 over the life of
sales in the first 12 to 24 months after release. Table 1 summarizes the financial
assumptions behind this hypothetical project.Table 1: PC Game Project Financial Basics
Average Retail Price
$35.00
Wholesale Price
$21.00
Developer Advance
$1,500,000
Developer Royalty
15%500,000 Units to Break Even?
Take a long hard look at Table 2. Notice that not until 500,000 units have been sold does the
developer see a royalty check. This is a $75,000 check that is likely to be issued to you
between 9 and 18 months after release of the title. The conclusion from this is that royalties
alone will not feed you and your team post-release. No problem, you think, my title will sell
millions! Unfortunately, even good games dont always sell many units. As an example, the
excellent developer Raven sold a little over 30,000 units of the strong game Hexen II.
Messiah, the long-anticipated edgy first-person shooter, saw fewer than 10,000 units sold
in its first three months (most games make the large bulk of their sales in the first 90 days
of release). Fallout 1 enjoyed a loyal fan following and strong critical reviews and sold a
little more than 120,000 units in its first year. The authors Starfleet Command 1 sold over
350,000 units its first year without counting the Gold Edition and the Neutral Zone
expansion. However, the sequel, Starfleet Command 2, has sold 120,000 units in its first six
months of release. Sure, Diablo II from Blizzard enjoyed over 2 million units of orders on
day one of release, and The Sims has been in the top 3 of PC Data for almost a year and a
half . These titles have clearly made a ton of money. In fact, those orders that Blizzard had
for Diablo II on day 1 had a value that exceeds the market capitalization of Interplay
Entertainmenta publisher with a rich publishing history spanning over 15 years.Table 2:
Game Project Payoffs at Various Sales Targets
Units
Royalty
Less Advance
10,000
$ 31,500
$ (1,468,500)
30,000
$ 94,500
$ (1,405,500)
100,000
$ 315,000
$ (1,185,000)
200,000
$ 630,000
$ (870,000)
300,000
$ 945,000
$ (555,000)
500,000
$ 1,575,000
$ 75,000
1,000,000
$ 3,150,000
$ 1,650,000
2,000,000
$ 6,300,000
$ 4,800,000 Employee Compensation and Royalties
Table 2 has other implications. Many development houses share royalties they receive with
their employees by some fraction. Many developers go even further and offset the often
too-low salaries paid in the highly competitive game business with overly optimistic
promises of future royalty payments. These promises are meaningless in many cases: After
the employees crunch through development and release and even during post-release,
supporting the fans, these expectations of monetary rewards for their labor turn out to be
false. Then these employees turn from energetic, highly productive creative developers to
disenfranchised employees looking for a new job.
What Are the Financial Expectations for Your Game? Previous Top Next
Excellence in Spades
Take a look at Hardwood Spades from Silver Creek Entertainment (http:www.sil-
vercrk.com). This is by far the most polished execution of spades the world has ever seen.
A core team of just three developers has put out an incredible series of classic card games,
where the quality of the executed games is way over the top. They have added a ton of
small, tight features and improvements to the playing of spades such as casting a fireball or
a shower of flowers at another player. This spades game is multiplayer and is played 24x7
on servers hosted by these folks. They do not take advance money from a publisher but sell
their games direct to the consumer online. They have slowly built up a following over the
years and are now quietly selling hundreds of units a month for each of their titles. I have
the utmost respect for these folks. They had a vision for creating the highest quality classic
card games on the planet and have executed that dream step-by-step, building up their
capital, fan base, and quality level as they went. Notice that they did not pitch the idea of
the worlds most gorgeous card games for $2 million up front to a publisher and then go find
an artist, programmer, game designer, and fan base. Instead, they released their first
game, Hardwood Solitaire, in 1997, which had moderate success and enabled them to build
upon this experience. I have no idea what their future plans are, but notice that they have
built up a strong collection of popular titles and a successful brand, and are now in the
powerful position of continuing to build up their brand and products, licensing their products
for a distribution deal, or perhaps selling themselves in whole to a larger company to lock in
a strong return on their years of investment.
Game Making Is a Long Race of Many Game Projects Previous Top Next
Part II: How to Make a GameIn This Part:Chapter 5: What Is a Game Made Of?Chapter 6:
Business Context FirstChapter 7: Key Design ElementsChapter 8: Game Design
DocumentChapter 9: The Technical Design DocumentChapter 10: The Project PlanChapter
11: Task TrackingChapter 12: Outsourcing StrategiesChapter 13: Shipping Your Game
Chapter 5: What Is a Game Made Of? Previous Top Next
Business Parts
Making games is big business. Depending on how you look at the numbers, the console
game market (hardware and software) along with the PC game market generates more
revenue than the box-office receipts of all of Hollywoods films annually.
There are a lot of different business executives who are involved in a game project; here I
will present the major roles.Business Development PartsBusiness Development Executive
The business development executive is casually called the biz dev.Jargon:
Biz dev is the short name given to the business development executive at a publishing
company.
When developers go around pitching games to publishers, they first need to get the
approval of the publishers business development executive before the game is sent to a
green-light committee.
The biz dev person keeps a close eye on what is going on in the industry and is the first to
know about games in development that are looking for a publishing deal. The biz dev person
often negotiates the key terms of a game publishing contract.Publisher CEO and President
A chief executive is responsible for all aspects of the game publishing corporation. Very
often this individual has ten to twenty years in the game industry and has a well-developed
instinct for making great games (not infallible though). Making sure that your game is visible
and impressive to this key executive at green-light meetings ensures the highest level of
support the organization can bring to bear for your game.Studio Heads
Founders, lead programmers, visionaries, game makers, CEOs, presidents, head
coacheswhatever you call them, studio heads are the chief decision makers at a game
development house. Studio heads generally have five to fifteen years of experience in the
game industry and at least one hit title under their belt where they held a strong lead role.
Studio heads most commonly come from programming and design backgrounds, although
there are some medical doctors of considerable renown running BioWare. Artists are the
majority shareowner at id, and Gabe Newell of Valve had an extensive background of
software development at Microsoft.
Studio heads decide the fundamental structure and working environment for their studios
based on past experience. The studio head is intimately involved when a game project is
starting up and is usually the salesperson pitching the game to the publishers. Studio heads
are generally the most qualified team leaders in their organization and spend a lot of their
time training new producers to run teams and subteams.Lawyers
Both the publisher and the developer need the best lawyers they can afford. Each contract
is unique, and while a publishers contract is the fruit of many painful relationships, the
developer should be patient and exercise great care in negotiating terms. This is something
you do not want to try on your own. Warning
Do not negotiate a publishing contract without the aid of a lawyer who has strong
experience in electronic entertainment publishing contracts.
Lawyers are actually good people who help you understand clearly what a contract is and
is not saying. Understanding what you are agreeing to before you sign a contract is a
fundamental safety mechanism for both the developer and the publisher. In Chapter 27 I
provide a list of law firms who are used by different studios.Licensing Parts
Many games are based on licenses such as comic books, novels, movies, and sports stars.
In turn, games themselves are licensed to create strategy guides, action figures, T-shirts,
and movies. Publishers may have their biz dev executive manage the licensing of a game, or
they may have a full-time staff member for routine licenses such as strategy
guides.Promoting, Buying, and Selling Parts
Sales? Is that not the job of the teenage clerk at the local Electronics Boutique? Well, yes
of course, but well before a gamer walks into a computer game store, a sales force has
made the larger sale of the game to the buyer agent of the retailer.
The decision on the retail buyers part of how many units of the game title to order on
release depends on how hot the title appears to be, the wholesale price, and the influence
of any number of incentive programs that have been negotiated between the publishers
sales force and the retailers buying force well before the games release.Sales Executive
Each publisher has a top executive in charge of sales. This person has a lot of influence on
the ultimate sales of a game. The executive in charge of sales has a budget that goes by
several different euphemistic phrases such as marketing development funds; this budget is
spent to buy shelf space at retail. This is a pretty strange concept to people who are
unfamiliar with the industrythat the publisher not only needs to absorb the risk of funding the
development of the game and its packaging and marketing, but also must completely
absolve the retailer from any risk. Selling games is a consignment business.
The retailer will put the product up on the shelves, and if it does not sell quickly enough, the
retailer simply sends the product back and gets its money back. Retailers take maximum
advantage of this relationship when a highly anticipated game is released by ordering as
many units as the publisher will deliver. It sounds great when you have an order of 200,000
units from CompUSA for your game, but if your game fails to meet expectations, CompUSA
will not hesitate a moment to send 160,000 units back to youall marked up with their price
tagsand simply order more later. Those 40,000 units you sold at CompUSA effectively had
the packaging and shipping costs of 200,000 units, which wipes out much of the margin
from those 40,000 units that did sell.
A careful study of some publishers financial reports to the SEC will show periodic write-offs
and one-time charges. There can be a whole variety of reasons why a business is forced to
report a loss on their books, but in the case of game publishers it is often massive
quantities of returned games that they have accumulated for as many quarters as they
could get away with. It is not unheard of to see six to ten quarters of accumulated returned
product discharged as a write-off. Keep in mind that during those six to ten quarters this
product was accounted for as revenue. This practice is not sustainable, and the stronger
publishers do not do this. A strong sales executive should work closely with the publishers
chief financial officer to manage what is called sell-in to the retailers with the goal of having
the highest sell-through to sell-in ratio. Jargon:
Sell-in is the number of units the retailers order or buy.
Sell-through is the good stuff; this is the measure of how many units of your game were
sold through to consumers
a true sale.Sales Force and Retail Purchasing Agents
Under the direction of the sales executive, the publishers sales staff meets periodically with
the retail purchasing agents, each of whom represents a different retail chain. Prior to
calling on the buying agents, a publisher will often host an internal sales meeting to
communicate their products selling points to the sales force. These meetings can
sometimes be fairly lavish with, for example, large ice sculptures and Klingon impersonators
to get the sales staff pumped up and primed to handle the buying agents.Press Relations
Manager
The press relations manager will oversee how the game is communicated to the press. For
large titles, this is a nearly full-time job, and a quality PR manager should be split across as
few titles as possibleone to three titles at most. The PR manager will field all press
inquiries, as well as inquiries by those claiming to be press. The PR manager will strategize
and plan how the details of your game will be released to the press.Jargon:
Buzz what the press, fans, and industry are saying about a particular title.
If PR has a solid date on when the game will ship, then PR can create a solid plan for
ramping up the buzz in a steady, ever-increasing volume to peak just as the title is released.
Releasing too many of your games goodies too early will provide you with little to say later
in the project, and interest in your title will sputter and fade before it is released. On the
other hand, if you do not release enough information on your game to grab press and fan
attention, it may be difficult to maintain the support of the executives at the publisher and
other project stakeholders.Trade Shows
The Electronic Entertainment Expo, or E3, is the largest show in North America for
publishers to get their products implanted in the agents minds. E3 is a vast show with tens
of thousands of attendees strolling through hundreds of displays ranging from mini
amusement parks from the likes of Nintendo to a folding desk and some business cards
from discount CD duplicators. Thousands of products will be on display and scores of tricks
are used to try to get your attention, from the obligatory booth babes to breath mints that
are rolled out like cellophane. E3 is a cacophony of sound effects, lights, noise, and people.
For all of this energy E3 is the largest news reporting event in the game industry and next to
the retail buyers, the game press is the second most important contingent of VIPs to grace
the floor. These folks have conspicuous press ribbons dangling from their badge so you
know when not to speak candidly (handy).
Like anything competitive, the press at E3 is out to get more viewers and readers. The
larger the market share, the more their business will grow. Years ago the press were trying
to figure out how to arrange their time more efficiently for those precious three days of E3;
they wanted to be sure they looked at every hot game. It would be a minor tragedy if a
competing magazine or site were to report on a major title that you failed to see at the
show. So the publishers and the press put together a schedule of viewings and
demonstrations for all of the large press. That might sound innocent enough, but if you think
about it for a moment, you will realize that all of the major press walks into the show with a
schedule of titles filling all of the required genres and platforms prioritized in order of
importance. Of course this journalist will still walk the floor, but it will be between
appointments or at the end of the show. This makes it really tough for the little games trying
to break out, as they are not even on the list to be seen.
The Internet game sites have another pressurereal-time reporting. To keep up, all of the
major game sites need to have nearly live coverage of the show in an effort to bring the
show to the fans and of course to gain more viewers. Real-time reporting is hard for
several reasons, not the least of which is that you need to have something to say. Here
again, publishers and the press will work together to give the press an E3 package a
couple of weeks before the show. This package always contains the best screen shots,
plenty of quotable material, and occasionally a playable preview build of the game. The
better journalists look at this material as just more information; the less rigorous journalists
(or those with very little time) have been known to lift the majority of the quotable material
and publish that in lieu of an original opinion on the game.Other Trade Shows and Events
E3 is important and dominant no doubt; however, it is hard to get your message across to
the buyers, press, and fans when there are 3,000 other titles. Publishers have been
creative about how to handle this problem; they hold their own shows in one form or
another. For example, Activision hosts its own show in Europe between E3 and ECTS (the
major show in Europe) to be sure awareness is implanted before and more effectively than
the ECTS show.
Interplay hosted a very cool event for three of the Star Trek games (one of which was
Starfleet Command) on the Paramount Studios lot. Press from around the world came to
view three games hosted by George Takei. The trailers for all three games were shown in
the posh Paramount screening theater, and a fine lunch was served where the press
mingled with the developers for an extended Q&A period after the press had a couple of
hours to play the games. It was a relaxed but focused event that gave those three games
ample time with the press.The Marketing of a Game
As you can see there is a lot of sales and promoting of a game behind the curtains, but
what about the adsthe traditional form of selling a product? Of course games have ads;
take a look at your favorite game magazine and it seems like half of the pages are full-page
ads. And the online sites have banners, navigational bar headings, and a myriad of
advertising terms for the various bits of electronic click-mes.
Like the press relations manager, the marketing director for a game should not be spread
too thin across many different games. The marketing manager will work with the producer
and development team to craft the games image in all of its various forms: print ads, banner
ads, and the all-important box.
Just like press coverage, it is important not to create too much hype for the game and then
fail to deliver on time. Publishers are getting much more savvy and are scheduling their
marketing campaigns to kick off only when the ship date is known with confidence.
The marketing manager will also be responsible for getting your game shown at smaller
venues such as the GenCon game convention held in Milwaukee. The marketing manager
will coordinate strongly with the press manager and sometimes supervises the press
activities. Sometimes it is considered a peer position, and in some places the same person
is overloaded with both jobs. In particular, the marketing and press managers will be
working closely with any playable demos that are to be released, making sure they are
cover-mounted on the game magazine CDs and that the retail stores carry a supply of
demos in a display.Hardcore Fans
It is commonly known that hardcore fans and the word-of-mouth sales they generate is the
largest factor in the number of games you will sell. Hardcore fans are eager to check up on
the progress of their favorite game at the developers web site, interact in the forums, and
beta test. If they like the game, they can be responsible for not just the sale of the box they
buy for themselves, but for the six or eight boxes that they have convinced their LAN party
to play with. Or in the case of console games, the hardcore early adopters get the game
first and invite people over to play. I have met fans who have sold ten, twenty, and more
titles just for their passion of the game. Hardcore fans are always looking for the best in
games; they also have a bunch of friends the industry calls casual gamers and mass-
market gamers. These casual and mass-market gamers ask for recommendations from the
hardcore gamers. The hardcore gamers will in turn recommend the titles they feel
comfortable with. This is just common sense, but what it means is that Blizzards Diablo was
perfectly poised to capitalize on the streamlined interpretation of the computer role-playing
game genre where just light taps on the left mouse button looted catacombs and
vanquished elemental evil. Valves Half-Life laid a heavy story on top of the first-person
shooter genre dominated by id (in fact they licensed ids Quake engine) to produce a mega-
hit. And depending on how you measure it, Half-Life and its free, fan-created mods
Counter-Strike and Day of Defeat are the most popular online games. These games are
simply the most approachable, solid, and just plain fun games you can buy. If you want your
game to sell, study how narrow the feature sets of Mario64, Half-Life, and Diablo really
are, and how well and deep these few features are executed.Manuals and Strategy Guides
Games need to have a manual, and if the game is considered a potential hit, then no doubt
a strategy guide will be produced for the title.Manual
How the manual gets written varies from publisher to publisher and from game to game.
The most common method is to use an experienced contract manual writer. This person
receives a copy of the game about four to six months before release and interacts with a
member of the development team while writing to create the most accurate manual possible
before a game ships. Another common method is for developers to create the manual given
that they are the most familiar with the games functionality. The biggest challenge in
creating a manual is that rarely does one have the luxury of waiting until all features have
been frozen and all stats in the game have been balanced. This results in almost all manuals
being vague in some areas and fairly narrow in the scope of just providing use of the
controls of the game, rather than how to play the game. Now enters the strategy
guide.Strategy Guide
The strategy guide fills a niche role in the game industry, providing detailed stats, walk-
throughs, strategy, and tactics to complete a game. Writers of strategy guides have various
stories, but it is not as simple a job as playing your favorite game and writing up all the nifty
hints and secrets. What really happens is that the publisher of the game and the publisher
of the guide work together to get builds of the game to the strategy guide author as early
as practical in the project. Essentially, the guide author is a beta tester too; this makes the
job of writing the definitive guide more challenging as the stats, missions, puzzles, and
various parts of the game are still in flux. For instance, even the ultra-high-profile game
Gran Turismo 3 (GT3) for the PS2 contains many discrepancies in the pricing of various
upgrades between the U.S. version of the game and the U.S. strategy guide. GT3 shipped
in Japan well ahead of the U.S. version and as such there was a little more time to produce
an accurate guide. Despite this there were still discrepancies.
For our own Starfleet Command: Orion Pirates, the strategy guide writer of SFC2, Dennis
Green, returned to write the most thorough guide possible. His project came under stress
when we at Taldren overlooked some of his requests for information during the final push.
Unfortunately, after we were able to catch up and provide him with the information he
needed, several strong chapters of the book had to be cut to reduce paper costs for the
guide. It is a tough market to make money when work already created has to be
cut.Manufacturing Parts
I am astonished at how quickly a PC game can reach the store shelves. Do you know how
fast a publisher can take the final gold master from the hands of the QA lead and deliver a
shrink-wrapped retail box in an Electronics Boutique shop in the local mall? Five days. That
is right, in five days a 30-cent recordable CD from the local OfficeMax can be turned into
$70 million of merchandise on store shelves in the form of Diablo II. This is perhaps the
quickest a game can reach the store shelves and usually only occurs at a fiscal quarter end
for the publishermost especially Q4 for the holiday shopping season!
To accomplish this a publisher has an operations manager who keeps his eyes peeled
looking for the strongest vendors for CD duplication, manual printing, box printing, and
assembly. This is quite a job, and normally they would like to see about 20 to 30 days
to get the job done, so as to not have to pay for express drop shipments between the
vendors. But when the end of the quarter is rearing its ugly face, the operations manager
saves the day. Toward the two-thirds mark of your schedule, meet with the operations
manager to nail down the firm dates for when they need everythingfinal box, final manual,
and final posters and other goodies in the box. This is definitely an area of the project
where it repays you in spades to be proactive and find out the due dates for these
deliverables ahead of time.Hardware Manufacturer PartsConsole Manufacturers
The console manufacturers assign a producer to oversee the development of each of the
titles for the platform. The console manufacturer retains broad editorial approval rights for
the game, and it is very important to follow their feedback to receive your ultimate approval
for the gold master.Hardware Representatives
Some of the coolest people to work with in the industry are the hardware vendors like
SoundBlaster and NVIDIA. These folks are motivated to be sure that not only does your
game work on their hardware but also that your game takes advantage of all of the
features of their latest cards. What that means to a PC developer is a bunch of free
hardware such as sound cards, video cards, joysticks, and speakers for use of the
development team to test the hardware. These folks are best approached at their booths at
the Game Developers Conference (www.gdconf.com). Tell them your story, where you are
working, and what game you are working on, and if they feel that you are for real, you can
get test hardware. Please do not abuse this if you are not making a commercial game and
will not be making a genuine test of the hardware, as it will only make those resources
harder to come by for the rest of us.
Post-Release Parts Previous Top Next
Post-Release Parts
Releasing a successful game to retail will be one of the most difficult things you accomplish
in your professional career. After all of the cleverness it will take to get your project funded,
staffed, and real; after all of the dedication to the craft during production; and after all of the
blood, sweat, and tears it will take to drive a game through the final candidate cycle, you
will find the day after you signed off on the gold master one of the most pure days in your
career with no task that must be done now. Instead, you and the rest of the team will most
likely disappear and rediscover what your family looks like and decide to talk with themand
sleep. After this much-needed rest is completed, is it time to dream up a new game? No, it
is time for post-release.
Post-release involves patches, updates, answering questions on the forums, helping
customer service field questions on the phone support lines, and combating cheating. For
massively multiplayer games, these issues are much more serious as you are billing for a
monthly service instead of a one-time purchase of a product. In fact massively multiplayer
games have whole development teams called the live teams to maintain the software, add
new content, act as gamemasters, and in general keep the product fresh and alive in the
hands of gamers.
Having a bunch of fans is a very good thing; that is the whole reason for your work.
However, a bunch of fans require a substantial amount of interaction and communication. At
Taldren about six of the employees have taken the initiative to read our forums on a regular
basis to field questions and moderate the forums.
Chapter 24 discusses the issues of post-release in detail with guidance from several
studios on how to most effectively support the fans of your game.
Chapter 6: Business Context First Previous Top Next
The Project Trianglepick two out of the three goalsImplications of the Project Triangle
Each line on the triangle is a relationship between two of the goals. Each line should be
responsibly labeled with the negative consequence of your decision. This triangle states that
every well-managed project will exhibit one of three negative behaviors: being late, being
over budget, or sacrificing quality. This sounds pessimistic, but it is true. Once again for
impact: Well-managed projects will be late, cost too much, or be of low quality; less well-
managed projects will exhibit two negatives; poorly managed projects will feature all three
failures.
There are many different software development strategies on the market such as Iterative,
Waterfall, Extreme, Unified, and others. None of these development methodologies are a
magic potion. You will still be faced with the question of how to best manage your particular
project and its challenges. Instead, each of these methodologies will have strategies and
suggestions for managing costs, time, and features. However, it will come down to the
business context of the game and how you manage your project to decide which two goals
you will meet and which one you work to control and manage.
On Budget and On Timemeans you must accept sacrifice of quality
High Quality and On Budgetmeans you must accept a late game
High Quality and On Timemeans you must accept extra spending
A project where being on budget and on time is more important than quality
A project where being on budget and having high quality is more important than timeliness
A project where being on time and having high quality is more important than costVarious
Games and the Project Triangle
The Sims series: High Quality
Diablo series: High Quality and On Budget
Quake series: High Quality and On Budget
Ultima Online series: High Quality
Starfleet Command series: On Budget and On Time
Baldurs Gate: High Quality and On Budget
Klingon Academy: no goals satisfactorily achieved
Various games and where they fit on the Project Triangle
How is the triangle related to success? The Sims is probably the highest grossing PC game
in history, being at #1 in the charts for close to two years punctuated by a few brief weeks
off to allow a major release to have its day. The Sims was notoriously late at over five
years and also over budget. Why did The Sims succeed when it achieved only one goal
instead of two goals? The Sims met a huge unfulfilled demand to play god to simulated
people doing ordinary things; this has enormous appeal to consumers and gamers of all
ages, especially women. The designers of The Sims knew that above all they had to get the
simulation right. If The Sims was boring or lame, people would be turned off and not play.
So they crafted and crafted the behavior of The Sims almost to exclusion of any other
features, considering the relatively modest effort spent on the graphics. No one had
modeled people before quite like this, and in the early days of the project there was only
modest support for it, as other games at Electronic Arts were given more resources. Thus
the designers of The Sims did the right thing and recognized the business parameters of
their project and focused on what would really matterthe behavior in The Sims. Sure, if
theyd had stronger corporate backing early on, they could have staffed up and perhaps
sped up the research and development phase to under a year and then just another year to
create the whole game. This would have been ultimately more lucrative for Electronic Arts,
as they would have made this ungodly amount of money earlier and would have had made
the team available to do the expansions to The Sims that much quicker. Looking back at
game projects from afar, it is easy to be an armchair executive producer and say what you
would have done better, but truthfully in the early developmental stages of The Sims there
probably was not all that much to see, and so it would be difficult for executive management
to understand this game and get behind it.
The Diablo series has been a fantastic hit for Blizzard and is the standard and envy of the
PC game industry to measure against. Blizzard first achieved outstanding financial success
with Warcraft II, which built upon the classic real-time strategy gameplay of Warcraft I and
polished it to a tight and smooth production that is the earmark of a Blizzard production.
Blizzards model for making mega-hits is to set aside a large budget of money, have a large
staff (Blizzard reportedly has about 200 full-time staff for a publisher of two concurrent
titles), and take as long as it takes to make the game perfect. Blizzard knows they have a
reputation for the highest quality games available, and each release they produce is an
opportunity to damage that hard-earned reputation. The Blizzard label is probably the single
most lucrative publisher brand in the industry. It is a common joke in the industry that if
Blizzard ever needed cash in a hurry, they could print a box called StarCraft II or Diablo III
and just ship a million empty boxes just for the pre-orders! This total focus on quality has of
course repaid Blizzard (and its owners) handsomely. So Blizzards answer to the triangle is
to bypass being on time and focus on quality and, to a lesser extent, budget. I just took a
peek at Blizzards web site and noticed that in their description of one of the programming
positions is a willingness to work long hours; apparently Blizzard games take as long as
they need to as long as everyone is pushing hard.
The statement of working overtime as a requirement of the job at Blizzard is a pretty clear
indication that they too are worried about getting their games done in some sort of timely
fashion. The point of this triangle is not to figure out which one of the triangle goals you are
going to abandon wildly and throw out the window; the point is to identify in what part of the
triangle you enjoy the most flexibility. Knowing where you are flexible will keep your project
from breaking.
Starfleet Command (SFC) is shown in the figure as on time and on budget. What this
means is that quality was the most flexible aspect of the project whereas on time and on
budget were not flexible. SFC was produced internally at Interplay during a time of great
expectations with the impact of going public and the beginnings of tight fiscal policy.
Interplay had many games in production at that time including three other Star Trek games
Klingon Academy, New Worlds, and the Secret of Vulcan Fury. Of all the Star Trek games in
production, SFC was considered the underdog as our game focused on the real-time
tactical simulation of naval starships based on the gameplay of a 20-year-old board game
called Star Fleet Battles. Klingon Academy was a sexy 3D space shooter featuring over
110 minutes of live footage with star talent like Christopher Plummer. The Secret of Vulcan
Fury amounted to taking the player back to the original series with fully digitized and
animated faces of Kirk, Spock, and Bones. New Worlds focused on capitalizing on the real-
time strategy genre and impressing the eye with ground troops of the Star Trek universe
rendered in breathtaking 3D detail.
We had a trick up our sleeve with Starfleet Commanda completely unfair advantage really.
Our game, as I said, was based on simulating naval combat in space between majestic
starships of the Star Trek universe. That is practically half of what the show is about if you
think about itphotons and disruptersjust watch Star Trek II: The Wrath of Khan . We knew
what we had and decided to make the best real-time tactical starship simulation we could.
Along the way we broke new ground with real-time tactical warfare, and after we released
SFC other titles like Dominion Wars and Bridge Commander attempted to find their own
path down the naval starship simulation. With the fixed budget and the requirement to ship
on time, our attention was focused on what would make the game: the real-time tactical
combat.
To create a foundation for our gameplay we licensed the mechanics of the hit board game
Star Fleet Battles. Here we had a coherent set of gameplay mechanics that were play
tested and improved over the years. However, these were gameplay mechanics for a hex
grid, pen and paper game, not the game mechanics for a commercial game of the late
1990s. Glossing over the hours and hours of design discussions, we settled on an interface
where the player sees a third-person 3D view of his starship traveling on an invisible plane,
battling with an astonishing array of controls for the operation of the whole warshipthe
electronic warfare, the shuttles, tractors, transporters, marines, heavy weapons,
engineeringbringing all of these systems to bear against the enemy starship in dark skies.
This purity of concept was a godsend. I listed SFC as on time and on budget. Yes we were
a little buggy when released, but we made a quiet hit game in a market where so many
have failedwe made SFC.
Quake and Diablo have a lot in common; both games are produced by development houses
with the strongest reputations, both companies have a when it is ready policy for shipping
their games, and finally both companies have paid their dues.
The real interesting question is not when Blizzard and id ship their games, but how they got
where they are today. How did they arrange to make their first hit game so that they could
have a pile of money to use for their future games? Blizzard was kind enough to produce a
recounting of their first ten years in the business in early 2001. The page is no longer
posted at their site, and that is a shame. However, the history of Blizzard started with the
name Silicone and Synapse. They, like all developers, started out doing work under contract
for other publishers. It is ironic that Blizzard is now eclipsing Interplay, the publisher it
worked for when it started in the industry. Blizzard was able to create Warcraft with the
help of the Davidsons, who had an uncanny amount of wisdom to invest in a pre-Warcraft
Blizzard.
The history of id Software is also about ten years long, where John Carmack and crew
developed the platform game Commander Keen featuring a football helmet-wearing child
protagonist. It was Castle Wolfenstein 3-D published by Apogee that blew everyone away
with its riveting 3D action and launched id into stardom to go on to create Doom I and II,
Quake I, II, and III, and to be the engine behind dozens of other hit titles.
These folks did not get lucky; they are creatively brilliant, have considerable business savvy,
and have worked hard consistently for the last ten years through an ever-changing set of
parameters involved in making games. What you need to do as the producer of your game
is to think hard, very hard, and articulate on paper what the business parameters are for
the game you are making. These parametersthese restrictions and requirementsare not
sources of angst to rebel fruitlessly against. Rather they should act as foci for your games
creation; they should act as genuine opportunities to shape a successful vision for your
game project.
Questions for You to Answer Previous Top Next
Walk Away
Ultra-low budget projects should be simple games polished to a high degree or perhaps a
port of an existing game engine into a new and compelling format.
Fixed budget, fixed deadline projects should organize their features into primary,
secondary, and tertiary piles and create their project plan in a manner that most supports
the completion of the primary feature sets.
High-profile/high-quality projects concentrate their best development team on a clean,
tight set of features that they will execute to a quality level everyone else in the industry will
then struggle to match. This will usually result in creating a barrier of entry that will place
your organization ahead of the competition, and like compound interest you should be able
to reap the result for years to come.
Chapter 7: Key Design Elements Previous Top Next
Business Context Shapes Design, or Does Design Shape the Business Context?
First of all, I am not asserting that having your business context in hand will act as a magical
tool that will turn any game idea into a well-thought-out game concept. It is only an
important aid to assess the requirements that your game idea is implying. Some game
ideas (such as the faithful recreation of Middle Earth where the whole world is modeled with
strong AI, 3D graphics capable of great indoor and terrain rendering, where an unlimited
number of players can join in together on both sides of epic conflict between good and evil)
cannot be reconciled with the business parameters of two artists and a programmer looking
to break into the industry, who have six months of living expenses available to them on their
collective credit cards. That Middle Earth concept is an example of a game that will dictate
the business parameters. If we take the business parameters of two artists and a
programmer, they might want to recreate an arcade classic on the Nintendo Game Boy
Color or Advance, use it to secure their first deal, and then move on to more ambitious
projects.
For many game projects there is a middle ground where the business parameters and the
game idea go back and forth and refine each other. Perhaps the developer pitches a
massively multiplayer game to a publisher who is wary of the costs and risks behind
massively multiplayer. From these talks it is quite possible the developer will end up
creating a game that exploits a license the publisher has rights to and features a much more
modest multiplayer feature set. This is not an acceptance of a mediocre plan; rather it is a
mature development of the idea into a viable concept. A viable concept is a game that
people with capital believe will be seen through to completion, with a high probability of
favorable reception in the market to overcome the inherit risk in game making.
Reconcile the Business Context and Game Idea Early Previous Top Next
Brainstorming featuresJargon:
Use case an interaction between an actor and the software system. A fully articulated use
case is composed of both text describing a sequence of actions and a graphical diagram
showing the relationship of this particular use case with others in the system.
Collecting these use cases and writing them down will drive our process to identify the
requirements of our software. The software requirements will then help us develop the
architecture for our software. The use cases represent function, and the architecture
represents form. The Unified Process is called use case driven because it is the effort to
capture our use cases that drives the development. All of our future efforts in the
construction of our software are to further the realization of these use cases into a
functioning software system. Now, what exactly does a use case look like?
A simple use case diagram featuring the use of an automatic teller machine
It turns out one of the fundamental tenants of UML is that the language shall be extensible,
flexible, and ultimately serve only to aid the process of distilling and communicating the
system requirements. This ATM transaction diagram uses only three UML symbols: the oval
use case, the stick figure actor, and the relationship line. The stick figure is called an actor .
Actors represented by a stick figure are most often users of your software, or players of
your game, who are interacting with the game. It is better to use the abstract term actor so
you will see all of the external users of your game system such as the single-player player,
the multiplayer player, the system administrator, and the database server of your online
component. After identifying your actors, the use cases will flow rapidly. The use cases are
the unique interactions between the actors and the software system (game). The use cases
are represented by a simple oval with an active verb phrase such as withdraw cash or
analyze risk.Jargon:
An actor is a user, either human or another external system, that is interacting with the
system under analysis.Jargon:
A relationship is a line drawn between actors and use cases, sometimes with extra notation
that further describes the type of relationship, such as <<extends>> and <<uses>>.
The level of articulated rigor in a diagram should be reasonably proportional to your needs.
For example, if it is important to describe the relationship line in better detail, use a one-
word descriptor between the less than and greater than symbols. Common examples are
the relationship descriptor of <<extends>>, <<uses>>, where extends would communicate
that a particular use case is really a special case of a simpler base use case, and uses
would indicate that a particular use case employs another use case as part of its action.
I shall now plop Pac-Man down on the cold steel of our examining table. Cutting the skin of
a clean, tight, mega-hit game, let us take a look at the innards of Pac-Man and see some of
these use cases in action:
Display System
Display maze
Display characters and their animation
Display score
Display high score
Display credits
Pac-Man dies
The game object interaction use cases of Pac-Man
Miscellaneous
Receive extra man
Enter initials
Miscellaneous use cases for Pac-Man
We can also take a higher-level view of Pac-Man and combine these low-level use case
diagrams into a generalized use case view of the software package as a whole. See the
Case Studies
It is now time to apply these tools to modern games that are of greater complexity than
Pac-Man. Each of the following two games, Diablo and Gran Turismo 3, has enjoyed
legendary marketplace success, and each has spawned a lucrative franchise of sequels,
expansions, and licensed products. Is there a common thread between these games? Did
the developers in each case just get lucky, or were the developers just extraordinarily
brilliant? I honestly do not know how much luck was involved, but someone with a lot of
intelligence, skill, and time honed these two game concepts into production plans that have
succeeded far beyond the industry standard. I can show you the elegance in the design of
these games, illustrating how, looking back, these were mega-hits from their
conception.Case Study IDiablo
Diablo is a computer role-playing game for the PC developed by Blizzard North, originally an
independent developer of another name bought by Blizzard during the development of
Diablo. Diablo featured the killing of hordes of monsters like skeletons, wandering around in
a dungeon, gathering gold, and collecting magic items all in the quest to vanquish ultimate
evilall straightforward fun stuff. The key concept behind Diablo was to make the user
interface priority #1, not the story, not the size of the game, not the number of different
character types, not customized character appearance, not a rich role-playing game
mechanics set; no, the focus was the user interface. Indeed, the mouse controls were a
stunning left-click on monsters to attack, left-click on chests to open, and right-click to cast
a spell. The interface itself was appealing to look at with large glass spheres that held blue
and red liquids representing remaining life and mana (energy to cast spells).
Shortly I will more carefully break down the use cases of Diablo; but there is a tremendous
amount of courage and insight behind the user interface design of Diablo. In the summer of
1995 I was up late one night with a bunch of other game developers talking about games
we could make. I remember we suggested just a simple variant of Gauntlet, the arcade
classic where you just went around bashing monsters, collecting gold, and powering up. I
remember how we all laughed at the time and said there was no way it could be viable. No
publisher would see the game as feature-rich enough to fund. Perhaps as a bit of forgotten
shareware, but no way it could be a commercial game. At that time RPGs such as
Bethesdas Elder Scrolls series were vast worlds with hundreds of NPCs, dozens of cities,
hundreds of locations, actual weather, and time of day. Imagine making a game that left out
all of these features and just concentrated on a tight interface and high production
valuesthat was Diablo.Use Cases of Diablo
Diablo is a simple game, a polished game with strong production values such as superb
voice-overs and movies, but we will see that Diablo is a simple game behind the features. I
will coner the major features and elements of the game: I do not propose to create an
exhaustive reverse design document in this chapter.
Display System
Terrain: Draw floors.
Terrain: Draw isometric walls.
Terrain: Color cycling special effects for water and lava (tiles do not animate).
Terrain: Ghost walls when a character is located behind the wall.
Characters: Render and animate characters (2D sprites composed from 3D rendered
models).
Game Objects: Colored outlines for interactive objects such as treasure chests, magical
rings, monsters, and non-player characters in the town center.
Spell Effects: Display any one of a couple of dozen spell effects with dazzling animations
and cool sound effects.
Menus: Display menu choices.
Movies: Display the intro and exit movies to the player.
Audio: Hear sound effects.
Audio: Hear music.
Now What?
Notice I did not give any opinions or suggestions on how to answer those questions or
which answers I thought you might choose. It is not my place to tell you that a cell-shaded
3D RPG would be the next big thing on the Game Boy Advance. No, the answer to the
questions above need to come from your heart, that place of inner vision where you can
see and play your game in your minds eye. That gameplay in your mindI want you to write
that down. This is your game. If you told me your game concept, I could offer suggestions
and opinions, but they would be just thatopinions and suggestions. For this game of yours to
be a success you must be able to have a strong vision for how your game will play.
Now find a table someplace comfortable and put in front of you the notes you have taken on
game concept, business context, and the feature questions asked above. Then I want you
to put this book aside and just keep visualizing your game. Get up and take a walk, get
something to eat, and come back to your table of notes. Now, start slicing out the parts of
your game feature brainstorm that are not actually central to your game design. Before you
invest in creating a hundred-page game design document and develop a total technical
design, you should figure out what you are making. The game design and technical design
stages are a lot of work; be courageous and kill the features that are superfluous before
you spend any more effort on them.
All of the great games have a small feature set that is well polished. Make your game
great.
Chapter 8: Game Design Document Previous Top Next
Chapter 8: Game Design DocumentWhat Is a Game Design Document and What Does It
Do?
When one says Look it up in the design document, folks are generally referring to the game
design document. This is the fun document that details all of the characters, the levels, the
game mechanics, the views, the menus, and so onin short, the game. The game design
document for most designers is great fun; here they get to flesh out their vision with
muscles and sinew on top of the skeleton of the game concept that it was before. By no
means am I saying it is easy to create a complete design document. Creating a finished
design document is so difficult I have never been able to finish one of my own, nor have I
seen anyone else finish his or her design documents. With my two latest projects, Starfleet
Command: The Next Generation for Activision and Black9, I am certainly taking the design
efforts to our highest levels, and I see the results paying off with faster and stronger
production.
Where the game design document lies in project life cycle
The game design document is part of a suite of documents that specify the game you are
creating. All of these documents I collectively call the production plan:
Concept/Vision/Proposal Document
Game Design Document
Art Design Document
Technical Design Document
Project Schedule
Software Testing Plan
Risk Mitigation Plan
design document.
A happy, productive game developer backed up with strong designs
The game design document should describe to all the team members the functional
requirements of the features they are implementing for the project. The ideal game design
document is complete and has seen revisions to fix gameplay and add clarity. In theory the
game developers should be able to take their copy of the game design document and run
with it. In practice it is very difficult to create a document that strong.Section One: Defining
the Game
I will discuss the content of the game design document by using sections; the order of the
sections was chosen to lead the reader from general information concerning the project at
large towards the details of the project that are specific to only certain members of the
development team.Articulate What the Game Is as Clearly as Possible
I remember reading the postmortem of Tropico in Game Developer magazine. I really
appreciate reading postmortems of game projects, and I am always grateful to the
developers who have the courage to document what they did wrong and what they did right.
The most amazing thing I read in the Tropico design document is that after a year of
development the team came to the shocking realization that there were about half a dozen
different visions of Tropico being developed by various team members. Each team member
was implementing his or her own version of the project! I was first shocked to hear that
something like that could happen; I was then shocked to read that the team had the
courage to document it and share it with the industry. Then I thought about it more carefully,
and I realized that every game project has the potential to splinter off into separate projects
and that many other projects have suffered from the same lack of central vision. I believe
this is why so many developers advocate a strong lead designer who dictates all decisions
from art to dialogue to placement of buttons on the screen. Experienced developers have
been burned by design-by-committee too many times to tolerate their time being frittered
away, and they demand a strong and clear vision for the game.
Every game design document should have a section at the front that clearly describes to
the reader what the game is. It should be written so clearly and succinctly that it does not
leave any vagueness in the readers mind what the game is about. It should describe the
world, the gameplay, and what motivates the player. Following are a couple of examples.
Pac-Man: An arcade game featuring a single joystick for controls where the player directs
the protagonist, Pac-Man, to clear levels of mazes of dots by eating these dots. The
enemies of our hero are four cute pastel-colored ghosts that will eat our hero unless our
hero is under the influence of the big power-up dot.
Doom: A first-person shooter played on the PC platform, where the player controls a space
marine in a 3D environment against a horde of bizarre monsters. The player has a
configurable set of controls taking advantage of the keyboard, mouse, or joystick. The
gameplay is action based with no strategic or role-playing elements; instead the game
depends on bleeding edge technology providing a rush of adrenaline through its aggressive
attention to carnage. Single-player mode will provide three episodes of missions against an
increasingly horrible cast of monsters and scary settings; the multiplayer mode will feature
an unprecedented level of player-to-player combat.
From my own experience I know there are many personalities in the game business; some
personalities belong to wonderful human beings you want to spend a bunch of time with;
other personalities are less inviting. I think a lot of projects suffer when the leaders of the
projects choose to practice conflict avoidance. I would hazard a bet that members of the
Tropico team sensed they were working towards different goals yet decided not to rock the
boat either in an effort to create a more pleasant workplace or to selfishly give their own
version of the game more time to grow (perhaps to a level of commitment where it could
not be cut back). This is an area I find particularly hard to manage. I think my teammates
would be surprised to hear me say that. They would probably say I lead the team well and
with strength. However, I must confess there are only a few things in life I like to do less
than to cut off the design direction of one of my team members. This is because while I
believe a game project needs executive direction, I also believe the best games are made
when everyones energies are woven into a stronger whole than any individual can deliver.
Therefore my advice is to take the time to write up exactly what your game is and present it
to your team members as early as possible. If you know one of your team members
despises real-time strategy games, but you are committed to creating a real-time strategy
game, no good can come out of misleading himtell the truth straight up. He will either do his
best to create the best real-time strategy game he can or move on to another project that
fits his interest. But by no means would it be a good idea to keep investing in a team
member making role-playing features that you cannot use. When it comes time to cut those
features out, you will have a genuinely pissed off person and a confused team.Set the
Mood
When the game is so clinically described as I advocate above, often the soul of the game is
lost in the translation. Many games are role-playing games set in a fantasy world. This does
not mean that Ultima, Bards Tale, Baldurs Gate, and Pool Radiance are the same game. I
like to see a short piece of fiction at the opening of a game design document to quickly give
me the feel for this world, to put me in the mood. The intro movie in a released game has
the same function: to introduce the player to what sort of challenges the game holds.
Some games do not lend themselves well to a fiction treatment, such as the abstract puzzle
and classic arcade games of Pac-Man, Frogger, and Tetris. Even so, a snippet of words
from an auto-racing television commentary intermixed with entries in a racecar drivers
journal discussing the upgrades he has performed on his car and how desperately he needs
to win this race to pay his debts would quickly draw me into the world of Gran
Turismo.Section Two: Core Gameplay
Now we move quickly from general statements about the game to direct comments about
the core gameplay. We want to fix in the readers mind the vision and feel for the gameplay
early on so that when he digests the rest of the document it will be in relation to the core
gameplay and create a tighter understanding of the game design.The Main Game View
Some games have only one view of the game; others have several view modes or even
different levels of gameplay with different views. This chapter in the game design document
needs to define the main game view of the game. Is it a 3D view? 2D? Isometric? If it is
isometric, what is the scale of the tiles and characters? If it is a 3D view, what kind of 3D
view? Is it an interior engine type game, or do you require exterior environments? If it is an
exterior engine, how far does the view need to extend? Is it primarily rendering hills and
trees or is it rendering a racetrack or a city? Make a few sketches of the view, or even
better get an artist on your team to make a full-color mockup of the view.MUST DO!
The main game view of the project must be in every game design document and quickly
convey to the reader what the game will look like.Core Player Activity
What does the player do in this game? What is the key interaction? Pilot a starship? Drive a
racecar? Organize an army? Maneuver a character through a 3D space? This is where you
detail the key interactions between the player and the game. Together with the main view
from above the reader will develop a strong understanding of the game you are creating.
This is an excellent place to use the UML use case diagrams introduced in the previous
chapter to document the interactions between the player and the game. Create the UML
diagrams that organize these interactions in a graphical manner for easy digestion on the
readers part.The Controller Diagram
A critical diagram to create is the controller diagram. This diagram shows at a glance how
the game inputs are mapped to a game pad controller or a keyboard.
The controller layout for Taldrens upcoming game Black9In-Game User Interface
Working outward from the view and the core activities, what are the other user interface
items visible on the main display? Health? Time? Mana? Distance to target? Radar? Map?
Now is the time to detail the rest of these user interface items to be found on the main
display. Take the time to create a diagram or mockup for each of these display items and
update your use case hierarchy to track these interactions (even if they are a non-
interactive display, the player uses these items by viewing them).
The menu flow for Black9The Nuts and Bolts of Game Mechanics
Now is the time to talk about how much horsepower that engine will develop, how many
marines that transporter can transport simultaneously, how many charges are in your magic
wands, how fast the characters move. Detail everything you can of the game mechanics. I
find it useful to pretend I am creating a pen and paper role-playing game or board game
complete with all the details. Of course all these elements will need to be tweaked and
balanced in the future; however, every time I drive down to this level of detail I learn more
about my game at the higher levels of abstraction and go back and adjust elements of the
higher design. This section should be replete with spreadsheets, charts, and
diagrams.Tutorial Mechanics
Almost all big games have integrated interactive tutorials in the game. Some of these
tutorials are explicitly tutorials, others are billed as licenses as in Gran Turismo, and other
games simply create very easy levels for the beginning of the game like in Mario64. For
Starfleet Command: The Next Generation, we modeled the tutorials around the education
an officer in Starfleet would receive while going through Starfleet Academy. Discuss your
philosophy when approaching the tutorial content, discuss what you want the player to learn
here, and discuss what activities you will employ to reinforce what the player is taught to
make for a smooth transition into actual gameplay. In Baldurs Gate, BioWare had the player
character start out in a safe town where all of the NPCs acted partly as an interactive in-
game manual and also related backstory to the players to get them into the world. How are
you going to introduce your player to the game?
Consciously decide what controls and game mechanics you are going to directly cover in
your tutorials and what material you are leaving for the player to learn over time as they
master the game. Keep in mind the goal of the tutorial is not to teach everything in the
game; rather the purpose of the tutorial is to get the player into playing the game
successfully and without frustration as quickly as possible.Multiplayer Mechanics
Will your game have a multiplayer component? If so, what flavor? Will you support LAN play
for PC games in the office or home LAN environment? Perhaps you will feature online
matching via GameSpy or Microsofts Gaming Zone. If your game is a massively multiplayer
role-playing game, then of course you have a multiplayer feature set to document.
If you did not cover your multiplayer menus in the shell menu section, then this is the perfect
place to detail the activity flow between the menus. Write down the functionality of each of
the buttons and describe the players choices. Also detail the technical requirements of the
multiplayer feature set that the technical design will need to address. How many players will
your game support? Are these players simultaneous, concurrent players as in a Quake
game? Or are the players residing in a hybrid system like Starfleet Commands online
campaign that is capable of supporting hundreds of simultaneous players where the battles
are played out in smaller sessions of up to six players each?
Create diagrams documenting these activity flows. Will your game support the historic
modes of multiplayer such as serial, modem-to-modem, or even hot seat?
With the latest generation of consoles starting with SEGAs Dreamcast and on through
Sonys PS2 and Microsofts Xbox, the game designer now needs to consider online
multiplayer gaming for their console games. On the console side, multiplayer games have
often used multiple controllers. Will your console game have multiplayer gameplay? Will you
split the screen? Will you hot seat between players?
Many game designers put off describing their multiplayer gameplay until later in the project.
This has led to disastrous delays, poor gameplay and game balance, and outright
bugginess. This procrastination in multiplayer game design is fairly widespread and carries
down the line, with the technical design stage often postponing a serious discussion of the
multiplayer engineering requirements. Sometimes these delays are so manifest, games
have resorted to the outright outsourcing of the multiplayer project. Examples of this are
Interplays Klingon Academy and ids Return to Castle Wolfenstein, where Grey Matter
develops the single-player game and another developer will come along behind and
implement the multiplayer aspect of the game. I am highly skeptical of outsourced game
creation in a piecemeal fashion. The only reason people delay thinking about their
multiplayer feature set is because it is hard. But being hard is not a good enough reason for
putting it off!
The menu flow diagram for Starfleet Command 3Section Four: Talk Story
This section of the game design document calls for the game designer to elaborate on the
world they have created. Many game developers would really rather work on this part of
the game design document than discuss the mundane buttons on the multiplayer screens.
The reason I have pushed this section back as far as I did is because I feel the game
design document should serve the team rather than the designer. So I started with setting
the mood and quickly followed with capturing the key requirements of the game. Now lets
roll out the graph paper, character sheets, and scripts for the cut scenes!World Backstory
A fan-made map of Britannia from the Ultima series
Detail your world; what is the relevant history of the world? Draw a map of the world the
player will explore. Use cool maps for fantasy games such as Baldurs Gate and Ultima
Online, but also include ship blueprints for games like System Shock 2, or the oceans of the
world for a naval simulation. The depth of this section is highly dependent on the genre of
your game. id Software is very proud that their Doom and Quake series of games have no
need for such frills as a backstory! Ultima Online and Baldurs Gate each draw upon
decades of development for their worlds backstory.
A game such as Gran Turismo would only need the lightest treatment of a backstory where
the racing events, the tracks, and the manufacturers of cars would be enumerated to flesh
out the scope of the worlds backstory.Character Backgrounds
The character background section is also game dependent. All games have characters; it is
just the concept of what a character might be that is stretched a bit in some genres. For
example, role-playing games, action-adventure, and platformers would all have a section
that is quite straightforward in its representation of characters, with sketches of how they
look and text describing their behavior and attitude in the game. Include all of the game
mechanics stats that correspond to this character such as attributes and inventory. Include
references to where in the game the character will be found and indicate what type of
character this is: protagonist, playable, non-player, antagonist, or boss monster.
In the case of Gran Turismo I would argue that the individual cars are the characters,
especially unique cars like the Suzuki Escudo. Here the stats behind the cars and the
history of the creation serve as the backstory. In a real-time strategy game each of the
individual combat units is a character to be detailed. For a real-time tactical game like
Starfleet Command: The Next Generation, we actually have three different classes of
characters that are quite different from each other, but all need to be detailed. These three
character types are the classic characters to be found in the story, the ships the player will
command or interact with, and the ship officers that the player will recruit and train in the
pass.
A view of a level in production for Black9
This is the time to explain your campaign structure; show a flow diagram that relates your
areas to each other. Is it linear? That is, can the player proceed through your levels along
only one path like the increasingly challenging levels of Lemmings, or can the player wander
about without any direct purpose as in Ultima Online? Be sure to diagram this flow.
Declare the purpose of the area; is it a key hub area that the player will visit often or is it a
bonus area or is it a part of the user interface such as the difficulty selection of Quake I?
Discuss how this level may be reused like the reversing of tracks in Gran Turismo or going
back for six stars in each of the worlds of Mario64.Cut Scene Descriptions
If your movie will employ cut scenes, then write the scripts for these cut scenes. While the
game industry has no standard format for the description of a cut scene, there are two
important components: a storyboard and a script.
The storyboard is a key frame-by-frame visual design of the cut scenes that reads much
like a comic strip. This is a critical design document for both communicating with the artists
who will create the level and for achieving buy-in from the project stakeholders.
The script should follow standard movie script formatting guidelines. See the following script
excerpt for an example of how to format your script for voice-over (VO) and off-stage (OS)
voice work.
With this section complete, no reader should have any large questions or vagueness about
the world and cast of characters in your game design. The reader should also have a
strong understanding of what challenges the players will face as they proceed through the
game structure.
A snippet of a design document of Black9 featuring a cinematic sequenceSection Five:
Cover Your Assets
This sections format really is particular to your games genre and method of construction.
This last point is so important I would recommend not creating asset lists until you are
mostly through the technical design stage. You should certainly jot down the assets that
come to mind in each section at the end of your first pass on the game design document;
however, your technical design document might reveal that on the platform of your choice
and with your particular set of requirements, you are limited to the creation of just 20
character models rather than the 100 your initial design called for. Or you might find that the
technical format and specification of your assets goes through some bit of exploration
during the elaboration of your game in the technical design stage. Nevertheless, here are
some categories of assets you should list in your game design document. These lists will
come in handy when creating the production plan, which should be created after the
technical design stage has been mostly completed.2D Sprites or 3D Models
Whatever your technology, no doubt your game features moving bits of eye-pleasing pixels.
Write up the list of such assets in a spreadsheet and include columns for attributes that are
specific to your games design and technical requirements.
The combat sound effects list for the character Nevin from Outrages game Alter Echo
The music requirements for Black9Special Effects
This is a sort of catchall category that is specific to your games genre and technical
implementation. For example, in Starfleet Command a list of the weapon effects,
astronomical features, and other system effects like tractor beams will need to be created.
For a first-person shooter, enumerate the weapon effects and explosions. For a platformer,
write down the magical effects when the character picks up a power-up or gathers another
star or crystal.
The weapons and ammo list for Black9
Stepping Back a Bit Previous Top Next
Where the technical design document lies in the project life cycle
Object-Oriented Design Previous Top Next
Object-Oriented Design
Modern electronic games are large software projects that run from hundreds of thousands
of lines of code to millions of lines of code. Object-oriented design (OOD) was invented to
cope with large software projects. I am not going to fill up this book with pages discussing
the pros and cons of object-oriented design versus procedurally designed software; there
are countless good books discussing object-oriented design at your favorite bookstore. I
am already sold on OOD, and I approach the technical design document using OOD; I am
only concerned here with the application of OOD and UML to game construction. There is
also a bias towards C++ as the language for implementation of the game code. There are a
few other important languages for creating games such as C and Java. I will not evangelize
for C++ here either. If you are using Java, then you are probably creating a game without
significant performance requirements for graphics and are interested in cross-platform
distribution. If you are using C, then you have probably made the determination that C++ is
not yet right for your team or have some other requirement keeping you with C. Assembly
language is of course used when hand optimizing critical sections of code and is not
relevant from an architectural or design point of view.
Purpose of the Technical Design Document Previous Top Next
The later you identify and fix a bug, the more the cost rises.Why Have a Software
Development Process?
All development houses have a development process even if they do not consciously go
about creating one. A development process is the method your team uses to take the game
specifications and turn them into a game. Even the solitary game developer working on her
own private game, iterating each night after working the day job, still has a development
process. This lone developers process could be as informal as writing up a sketch of the
main game interface on a piece of graph paper and then incrementally building the game, a
new feature every night, until the game is playable. Some high-profile game development
companies also use this method.
Steve McConnells seminal book Code Complete is one of the most accessible works
discussing in detail software development methods and why organizations resist learning
new development processes. The problem with learning a process is that it takes time , and
most organizations are in short supply of time. They are under great pressure to get
something visible and running as quickly as possible to reassure management that the
project is well under way (a recurrent theme in this book, I know). A strong software
development process will emphasize thinking at the beginning of a project where a weak
development process will create an even larger burden of wasted time at the end of the
project. In the most extreme cases of poor process, the projects find themselves in such a
hole of despair due to poor decisions made at the beginning of the project that the project
itself is cancelled rather than throwing everything out and trying again. I am firmly convinced
that all of the games in the industry that are taking 30 to 60 months to complete are being
performed at development houses with a poor development process, which results in a
poor preproduction.
It is understandable why game development companies are generally poor at enforcing a
strong software development process. First of all, most software companies are poor at
the development process by all accounts; second, the industry holds creativity sacred (a
good thing, but it can be used as an excuse to avoid professionalism); and third, the games
themselves are always becoming larger, faster, and more complexabout at the rate of
Moores Law. The result is that studio heads or publisher executives who might have had
hands-on experience in creating a game five years ago now have a misguided interpretation
of the scope of the project they are responsible for. Interpreting Moores Law liberally, it
would suggest that over five years a game would be eight times larger in complexity and
scope than an equivalent title five years before. This last point I think is significant and
rarely discussed; managers are often walking around with an impression of the work to be
completed as much smaller, like when they were creating games hands-on. They were
successful then, or they would most likely not have achieved their leadership position. That
means they must have been successful with their software development process and that
the penalties back then were correspondingly smaller . I think this is a great source of
subtle evil in the game industry.Jargon:
Moores Law computing power will double every 18 months.
So are you ready to hear about a better software development process?The Unified
Software Development Process
We at Taldren use a modified, light version of the Unified Software Development Process. I
will, however, present an overview of the full Unified Software Development Process and
then go back and explain what we do.
The core workflows of the Unified Process are requirements , analysis , design ,
implementation , and test . Looking over this list of five activities, I would imagine most
people in game development would be surprised to see the three preproduction activities:
requirements, analysis, and design. If I were to interview game development houses to ask
them what core workflows (after explaining what I meant by the term) they are using in their
development, they would probably say design, implement, and test. This is one of the key
features of the Unified Process; it formally recognizes that gathering your requirements is a
different activity than analyzing the requirements, which is in turn a wholly different activity
than designing your software to meet your games requirements. If you think back towards
an earlier chapter on gathering your key business parameters before creating your game
design document, you will notice that I added a bit of material from the game development
domain to the requirements capture stage.Core Workflows of the Unified Process
Requirements
Analysis
Design
Implementation
Test
The Unified Process recognizes that a real-world project cannot crisply complete one
workflow and then move to another workflow. To address this, the Unified Process is an
iterative and incremental workflow method, where each stage of the project is driven
through inception , elaboration , construction , and transition .Phases of a Workflow in the
Unified Process
Inception
Elaboration
Construction
Transition
these decisions.
Capturing use cases
The requirements capture stage is the most critical to a successful project and in many
ways is the most difficult. It is difficult to decide when you have identified all your
requirements, and it is also sometimes difficult to describe them clearly, such as when you
are trying to push your graphics to the next level, whatever that might be.
Let us tackle it in order of easiest to most difficult. The easiest requirements to capture are
the requirements described in the game design document! This document should have a
design for the main game interface, the shell screens, the game mechanics, the art design,
and the content such as missions, levels, and puzzles.
The Unified Modeling Language has the use case diagram, which is most helpful in the
requirements capture stage. The idea behind the use case diagram is to note the actors
(users and other discrete systems such as a CD authentication server) and the interactions
use case.
relationships.
The basic class diagramRelationships
The class diagram models the static relationships between the classes. It does not model
any dynamic behavior of the classes such as when they are instantiated or destroyed, and
it does not describe the message flow between the classes. It is the relationships between
the classes that make a class diagram a picture of value rather than just a collection of
boxes on a piece of paper. These relationship lines describe the dependencies between the
classes, and these dependencies define the architecture of your game. There are several
vocabulary words that are employed in formal OOD to describe the relations between
classes, however they are all variations of three possible relationships. The is a relationship
is used when one class is derived from another class. An example of this is: a textbook is a
child class that is a book. The has a relationship denotes the relationship between a class
that uses another class in its composition. The textbook class could have a has a
relationship with the page class. Very neat and tidy, eh? Well, I have a loose end. There is
one more relationship that occurs between classes; it is the compile time dependency in
which one class uses another class in the implementation of a method (also known as a
function). Any module that manipulates strings is quite likely to include the header file
string.h from the Standard Library. Each type used as a parameter in a function creates a
dependency between that class and the invoked type. Drawing every single dependency
relationship between a class and all of the other types that are employed in methods of our
class under study would only create a very hairy diagram sporting way too many lines to be
useful. That is why the dependency relationship is a kind of third cousin to the more
important is a and has a relationships.Drawing is a and has a Relationships and Ordinalities
The is a relationship is denoted by a line between two classes with an arrow on one side
pointing to the parent class. The has a relationship is just a line. The has a relationship line
is often adorned with the cardinality of the relationship on either or both sides. An example:
The has a relationship between the textbook and the page class would have the Arabic
numeral 1 on the side of the textbook and an asterisk * on the side of the page class. This
shows an indeterminate number of pages contained in the textbook . It is also quite
possible to be more specific. The relationship between the die class and the face class
could be adorned with a 1 on the side of the die class and a 6 on the side of a face class
unless you are playing third edition Dungeons and Dragons as I like to do from time to time;
in that case the relationship between die and face would need that asterisk back again to
account for your pile of 20-sided, 12-sided, 10-sided, 8-sided, and 4-sided dice.
The previous task broken down into 30 bite-sized 1.5-day tasks distributed to two artists,
with an early phase to determine the validity of the task estimate for both artists, rolled up
under a super-task.
Breakin down tasksTask Granularity and Task Leveling
Task leveling is the act of distributing the workload across your developers so that no one
developer is stuck holding up the show while the rest kick back at the beach. Task leveling
is a difficult and imprecise business. No two developers on your team will produce code,
art, or other game development bits at the same rate and with the same level of initiative
and independence. Task tracking is such a central activity of game production that the next
chapter is dedicated to its discussion. However, here in the planning stage we can set
ourselves up for success later by planning our task leveling now. In the previous section I
stressed breaking down large, vague tasks into clear, crisp, small tasks; it turns out that
breaking tasks up into crisp bite-size chunks is also critical for effective task leveling. By
breaking up the tasks into their smaller pieces you will not only see more clearly just how
much work you have to do, but you will also be able to better analyze how to distribute your
tasks across your company.How Long Will That Task Take?
As you enter the data you will not only need to break up the tasks into smaller tasks, but
you will also need to spend a moment chewing on the time estimates being reported by
your team members. There is a lot of debate in the community about padding tasks by two
times or three times to count for the chronic underestimation that developers are prone to
make. I fundamentally disagree. I think it is a very bad thing for the development team to
think in terms of programmer-hours and feel assured that their management lead will take
responsibility for padding the schedule to accommodate their optimism. If you think about
this for a moment, it does seem ludicrous to take the developers estimate and institutionally
lie and come up with another number. I believe the reason organizations do this multiplying
technique is they have found that taking the developers estimates has resulted in previous
projects slipping and going over budget. The answer is the development process is flawed,
and that is why the project is late, not because a developer makes poor estimates. How
can a project succeed when such arbitrary estimates are tossed around?
So how do you get good time estimates? First of all I do not make creating the time
estimates my responsibility as the project manager; I make that the developers
responsibility. Is this just a semantic nuance? No, the way to success is to push down to
them the responsibility , the authority , and the accountability to create their own time
estimates. I will not be performing the work; they will. Your team members are not just
coders or pixel pushers; they are game developers. Grow your organization so they
understand that creating quality estimates is part of their job and that they need to make an
estimate they can live with.
Will pushing estimating down to the team members work? What about the new artist; does
he know how long it will take to texture the level? How about the AI programmer; now that
he has been tasked to create the networking code, how will he come up with a quality
estimate? I am not saying that the senior team members such as the art director and the
lead programmer as well as the project manager should not participate and help develop
the estimates. What I am saying is that my team performs best when they are working
under a schedule they drafted. It may look like I have not solved the time estimate problem;
it may look like I just moved it down to the developer, but that is too casual a statement.
When you walk up to Sally and ask her how long it will take to create a mission editor for
the game, she might reply with a shrug and a soul-searching glance at the ceiling and come
back with an estimate of two months. This is a low-quality estimate. Much better is to walk
up to Sally and say to her, I want you to think about what it is going to take to get the
mission editor done; specifically, I want you to review the technical and game designs for
the mission editor and break it down into a task resolution of one to three days each and
enter your tasks into Microsoft Project. Would Friday be okay with you to review your
schedule? This is much stronger because you gave a clear task of getting her area
estimated and put into a schedule, and you told her how to get it down with the comments
on the time resolution and Project. You also gave a firm date and gave every indication that
it is her responsibility.
So what do you do when developer estimates are too short or too long? You are the project
manager, and you have responsibility for running the project. While the buck stops with you,
your job is to get the right people matched to the right tasks with the proper tools and
resources to get the job done. It is the artists and the art director who are responsible for
the art estimates. You said that before, Erik, but what do I do with a time estimate that is
clearly too short? I want you to review every time estimate for a reality check, a second
opinion, and for your own benefit to build up a better mental map of how long the myriad of
development tasks take. What I suggest you do with a short time estimate is interview the
developer and/or lead for that section and ask them why they thought they could
accomplish it so quickly. Maybe you will find out something you did not know; that would be
a good thing. Maybe they will shrug and admit they didnt give it enough thought. Or maybe
it is a feature they very much want to see get done and do not want to see it cut so they
are selling you the feature.Short Time Estimate Possibilities
If the developer did not give the estimate enough thought, then simply kick it back for a
revision. If you simply were not aware of something that will make the task quicker to
completeno problem, accept the estimate. However, when it turns out they are selling you
on a feature, this could be a problem. First of all, this means you have a flaw in your
schedule that needs to be corrected or the rest of your schedule will be affected. The hard
part is that your developer is selling you this feature because she really wants to see it get
in the schedule and she felt she needed to underestimate the task to get it on the schedule.
You have three choices: Kill the feature, allow the feature, or allow a fixed amount of time to
work on the feature. Each situation is unique, but I tend to ask the developer why she
thought it was so important to implement the feature. If she does a reasonable job
convincing me it is a desirable feature but I cannot afford to rearrange the schedule to fit in
the true time for this task, then I will encourage the developer to drop the feature. Many
times the developers will be passionate about getting it done and will propose to keep the
time estimate to what the schedule can afford, and they will work hard to squeeze it in. This
I feel is fair; the manager should not create schedules that require overtime, but I do feel
comfortable with developers working as many hours as they like to create the highest
quality game they can.Estimating Research Tasks
How do you estimate how long it will take to get something done that no one has done
before, or no one in your organization has done before? Perhaps there is little in the way of
journal articles or books to give direction. How do you estimate how long one of these tasks
will take? The first step is to break down the research task into as many small, discrete
tasks as possible as we discussed previously. An example: Elaborate on a task named
research pixel shaders and modify the task to a series of tasks like the following:
Install video card with pixel shader support
Install DirectX 8.0
Review DirectX 8.0 sample shader code
Create stand-alone test bed to explore pixel shaders
Create water effect through pixel shaders
Create fire effect through pixel shaders
Design architecture for the 3D engine to utilize pixel shaders
Implement pixel shader architecture
Unit test the pixel shader code
Implement fire effectattach to fireball spell
Implement water effectattach to water blast spell
Test the fireball spell
Test the water blast spell
By breaking down research pixel shaders into 13 subtasks, we can put good estimates on
most of the tasks. Only task number four, Create stand-alone test bed to explore pixel
shaders , looks like a type of research that resists being nailed to a firm time. The solution
here is to set a time box, a fixed period of time you will allocate to the task. At the end of
the time box you will either be done with the research or it will have turned out to be too
expensive to continue. Mm, yes, what is that? How can you walk away from something not
done? Well you might have to. Say you have 15 months to get your game done with ten
developers, five of them programmers. Allowing three months for preproduction and three
more months for testing and transition leaves nine production months or a total of 45
programmer months. This is your time budget; if the rest of your project is looking like 44
programmer months, then you have just one month left over to play around with your pixel
shader. Put a time box of one month around the pixel shader work. These are the types of
hard decisions you will have to make if you are going to run your project on budget.
Oh, so the pixel shaded spell effects were a core feature? Everyone thinks that is what it
will take for your Diablo killer to make it over the top? After the one month passes and you
are still not done, would you feel it is still so important a task that you would allocate more
time to get it done? If so, then your original time box was not honest by taking into account
your priorities. Time boxes only work if you stick to them. If the feature is really that
important, then you should have allocated two months or three months. When setting a time
box, set the maximum amount of time you are willing to spend on a feature of that priority
level. Too many times when we are deciding whether or not to implement a feature, we just
ask how cool it will be or whether the competition has it, in the end deciding to implement
the feature for a number of compelling reasons. Remind yourself that the great games all
have a slim feature set that was executed with excellence. Think about that cool research-
intense feature; do you really need it? Only a project with unlimited financing and no
requirement for shipping can afford to implement features without asking the cost. Think of
time boxes as stones in a stream where the rest of the tasks flow around these blocks of
time; a few rocks are cool, many rocks is a stretch of rapids, and a wall of rocks is a dam.
Determining a tasks priority deserves its own subsection.Task Prioritization
Assuming you and your team are creative folks and that you are making a game with a
budget of time and money, you will always face a situation where you have too many ideas
for cool features and not enough time to implement them. You are then faced with the job of
prioritizing your features to be sure you get the critical features accomplished at the right
expense of the less important features.
I have a reliable method for task prioritization: First discover all the absolutely required
overhead tasks your team must accomplish or you will not even have a shipping game.
These tasks include preproduction, beta testing, getting hardware manufacturer approval,
getting licensor approval, creating milestones, and responding to milestone feedback.
These are what I call zero-level tasks. Also do not forget to estimate the number of
holidays, vacation, and sick time your team members will take, and make a reasonable
provision for turnover (I use one developer for every ten developers per year). Subtract all
of this nonproduction time from your overall schedule; this will leave you with the real
production time you have to work with. Enter all of the zero-level tasks into your Microsoft
Project Gantt chart. (See Chapter 20 for a quick overview of Project and such tips as
customizing your teams calendar.)
The next step is to take your design documents and toss every task into one of three
buckets: core tasks, secondary tasks, and tertiary tasks. Take your time with this. I highly
suggest discussing the relative priority of the tasks with various team members to build
consensus and to have some solid feedback.
Now that you have your three buckets, lay out all your core tasks in Microsoft Project using
good task articulation techniques, and assign the tasks to the resources on your team. Now
that you have your zero-level tasks and your core tasks entered into your Project file, use
the project-leveling tool to see how the zero-level and core-level tasks will lay out over time.
If you were conservative with what you labeled as a core task, then you should have some
extra time left over to start plugging in your secondary tasks. However, if the buckets ended
up with too much to do for even your core tasks on the first pass through, then you have to
prioritize your core tasks and convert enough of them to secondary to make up the
difference. This means that the secondary and certainly the tertiary tasks are unlikely to be
completed if you are having trouble accommodating even the core tasks.Jargon:
Leveling is the term in project management for the related tasks of seeing how the tasks
will lay out over time and how loaded each of your resources are, and the process of
distributing tasks across your team to achieve a more even workload.
How do you prioritize the core tasks when you already consider them core? First realize
they cannot all be core. A rigorous development process requires developing good time
estimates, and you have done that; now you are looking at a body of tasks that are core
and features you really want but do not have the budget for . Perhaps you can make a
strong enough case for these features to get approval to expand your projects budget. If
you can do that, greatproblem solved. If you are still holding to your original budget, then let
me show you how I do low-level task prioritization. Its a crude method really, but it is
effective: Take all your core tasks and enter them into a spreadsheet (use Excel) with a
column labeled priority next to each task and a task time estimate. Now quickly run down
your tasks, reading the task names and saying out loud the first gut-level priority that occurs
to you for that task such as 7 or 3 or 10 if it is really critical. Go down your whole column of
tasks whether it is ten core tasks or 200. Do this first pass quickly; taking longer will only
make it harder. Now you will have a first pass priority for all of your core tasks. Have the
spreadsheet software sort the core tasks from most important descending to least
important. If you are like me, then you will see that you have stubbornly labeled too many
tasks with a 10 or 9, and too few tasks have earned the label of 3 or 2. The way to solve
this is to allow yourself only three level 10 tasks, three level 9 tasks, and so on. Start at the
first item labeled 10 and take your time thinking deeply about the feature, discuss it with
your team if you have to, but one by one you are going to demote your 10s to 9s until you
are left with just three must-do 10s. Repeat this process all the way down your list. The
mathematically astute will notice that this specific labeling system will fail if you have over
30 tasks. The exact labeling scheme is not important; it is just important to force yourself to
make these prioritization choices. You could use the numbers 999 to 0, you could use the
alphabet, or you could use a three-letter alphabetic core like AAA to DDD; whatever you
use just leave yourself a set of three tasks at each prioritization level. The size of your task
set should be roughly one-tenth of the overall numbers of tasks to be prioritized. Now just
draw a line where you run out of time for core tasks, and toss the lower priority tasks in
dependencies.
The resource usage screen; the red numbers indicate an overallocated resource
You first need to study the Gantt chart and the resource usage charts to understand what
your dependency problem is all about. In all cases your developer was okay before the
dependencies were drawn in from the earlier stage where you determined the zero-level
and core tasks. So looking back up the chain of tasks you will see one or more tasks that
are holding up the show for your overscheduled developer. This will create a pocket of free
time for this same developer earlier in the schedule as he is stalled waiting for work. Now
the most elegant solution would be if the work he is waiting for is something he could do
himself; then you can simply assign it to him and fix the dependency problem. And in turn
you will need to take some other work off this developer and exchange it with the original
The resource usage report shows holes and gaps indicating a problem of one resource
waiting on another
Task Visibility
You cannot just print out copies of your Gantt chart then surf the web for a year while your
people make the game. This will not work . Even if you made the most professional Gantt
chart ever, printed out in color and spiral bound. Passing out these project binders to
everyone is an excellent idea, but if that is all you do to make your developers aware of
their tasks and their teams tasks, then you will fail to get anywhere near your teams full
production potential. I am not saying people are inherently slothful, no, quite the
oppositealmost everyone I have met in the industry prides himself on his ability to work hard
under a crunch to produce a hit game. It is just that left to their own devices, your folks will
probably work on what tasks are most interesting to them unless they are reminded of
where they are on the schedule and where everyone else is on the schedule.
The key is to make the tasks visible. Team members need to know in detail what they
should be doing, and they need to know how the work they are doing correlates with others
on the team. They need to feel a part of the team and share a sense of urgency to get the
job done. As tasks are completed it should be communicated as quickly as possible to the
rest of the team to give them a sense of the pulse of the project. I have some specific
techniques to share with you to achieve strong task visibility.
The Wall Previous Top Next
The Wall
I have an effective, low-tech way of getting task visibility out to the team members: I print
out the Gantt chart and/or task lists and pin them up on a central wall in our workspace.
Software solutions such as Microsoft Team Manager and intranets to publish your
schedules and tasks are distinctly unsatisfactory for two reasons: One, your developers
need to remember to even open up the document or visit the site, and two, monitors are too
small to show a whole Gantt chart, denying your team the appreciation of the project
progress as a whole.
It is easy to print out your schedule and pin it up. I recommend just displaying task name
and ID, start time, end time, who is assigned to it, and any predecessor tasks on the left-
hand side and the Gantt chart on the right-hand side. You should use the widest time setting
you have wall space for; when a schedule is scrunched up into just displaying quarters or
months on the Gantt window, you are not getting any real-time information.
Now I make a requirement to my developers that they come out to the Gantt chart and
mark the tasks off themselves. I do not mark them off even if I know they have been
completed. This is to get the developers to come out and find their place in the schedule,
mark off with a bit of pride what they have finished, and then look ahead to see what is
coming up. Developers will almost always take the time to then look over the whole
schedule to gauge how are they doing compared to other team members.
When I first started using this method of task tracking it was considered somewhat
controversial. Some people asked me privately if this was a good idea. If someone were
not accomplishing his tasks on time, would it not be demoralizing for him if this were made
public knowledge? Would not that developer feel more comfortable staying in his office and
explaining privately why he is behind in the schedule? Bah! My first assumption is that
everyone on my team is a professional, and even on an off day all would want to be treated
as professionals. Why would protecting their comfort be of higher importance than getting
our tasks done in a timely manner? If people are tasking late, they must have a reason.
Was it illness? Jury duty? Task underestimation? Were they distracted helping another team
member on another problem? All of these are legitimate reasons for being late and certainly
nothing to cause embarrassment or discomfort. On the other hand, if they are late because
they were just goofing off, then I feel comfortable making them squirm in front of their other
team members and letting them know they have let the team down. Knowing that the whole
team is aware of what they are and are not getting done goes a long way to inhibit goofing
off.
A healthy bit of competition develops with a good wall. Assuming your schedule was a sane
schedule and manifestly fair in the time allocated to the tasks to be completed, your team
will be in a high morale state to begin with. I use brightly colored highlighting markers to
mark off the tasks. Your developers will come out at the end of the day to mark off what
they got done then look ahead for something simple to do before they go homebam!
Another task is taken care of! This competition effect will give extra momentum to your
whole project. It will give your developers a meta-game to push themselves, and they will
enjoy it.
Another benefit of the wall is that it makes a great piece of visual feedback to the executive
management team. They look over the wall and see all the marked-off tasks spanning 25
square feet of wall space and nod to themselves and move along. Do not underestimate the
importance of reassuring your management that you are respecting their time and money
and are making measurable, steady progress. If you are working in a large studio or in a
publishing house, the other teams will see what you are doing and think you are obviously
trying to get attention. So whatyou are trying to grab managements attention. There is no
glory in obscurity.
Encourage your team members to go ahead and write any unanticipated tasks they had to
complete onto the walls task lists. This will help team members who might be falling behind
in tracking due to being sidetracked by tasks that were not originally on the schedule. While
it may seem crude to scrawl new tasks on the list, it is legitimate. You are after the
maximum visibility for all tasks, not just the ones you were smart enough to think of earlier.
When the time comes to update the schedule, the wall charts with the new tasks written on
it and the completed tasks marked off will come in handy. Just tear it off the wall and bring
it to your workstation where you have Microsoft Project.
Journals Previous Top Next
Journals
I have a background in engineering, and while in school we were introduced to the value of
a journal to record actions, observations, and data from the lab. The idea is that no effort
you make should be unworthy of record. While I admit that when we make a game we are
not building a skyscraper or a transorbital spaceship, we are still creating something
important and we should take every care we can on the execution of our game projects.The
Cult of the Yellow Notebook
For the last seven years I have been using yellow notebooks that are about 5" by 8" inches
and feature lined paper on one side and quad-ruled paper on the reverse. This format
allows me to track micro-tasks and thoughts on the lined side, and use the graph paper for
game designs, user interface layouts, and technical designs. I have this notebook open as I
work, taking notes whether I am working at my workstation in Photoshop, MS VC++,
Project, Visio, Excel, or simply Word. I also take my journal with me to every meeting to
record what I need to do and what I need to follow up with. On a shelf in my office are the
40 or so notebooks I have filled so far in my career. These yellow notebooks are a staple
that we purchase for all of the employees at Taldren, and we have an ample stock for when
people fill theirs up.
I am passionate about these notebooks because I have seen countless small tasks fall
through the cracks in our overburdened mindssuch a waste that the simple act of note
taking can fix! About once every two to four weeks I go back through my pages to search
for tasks I might have failed to address, and I pull them forward into a new checklist.
Walk Around Previous Top Next
Walk Around
There is no older and simpler method of task tracking than simply walking around and
seeing how people are doing. I try to carve out an hour or two every day to walk around
and meet with the individual team members to see how things are going. At this pace I
would visit everyone in the company two to four times a month. This lets people know their
work is important, and the human connection really shows you care about getting a great
game done. When the project hits a tough spot you will find that you want to stay in your
office and focus on the burning fires. But it is when the times are smoky that you should
make the extra special effort of visiting with your team members. Also be aware that no
matter how much you like everyone on your team, there will naturally be some personalities
that you enjoy spending more time with than others. Some people might feel slighted so be
sure to visit all of your team members, not just the ones you like to talk to.
Often it is by walking around that you discover that tasks you thought were the clear
responsibility of one developer have been conveniently relegated to the no-mans land
between two developers and have dropped to the floor. This is a great time to clear up
such misunderstandings and get these tasks properly assigned. If you ask the right
questions and remain approachable, these walkabouts will also turn up the deeper concerns
your team members might have felt too uncomfortable bringing up in some other forum or
method. Keep your ears and eyes open and talk to your team members.
Milestone Orientation Meetings Previous Top Next
What to Outsource
In short, you should outsource tasks that are not your core competency and/or are needed
for a short period of time in your project. In other words, if your organization is weak at
something, hire someone good to do it for you.Do Not Outsource Programming Exceptions
Noted
A big exception to this rule is the programming. You should never outsource your
programming tasks on a game project. A game is software and if you do not have the
expertise to create the software, then you should hire the programmers for in-house
production. If you do not have programmers on staff, you should not be making a game;
make what you are good at. This is why a lot of publishers have outsourced game
development; it is the most difficult and risky part of publishing games, and so they have
externalized those risks to game developers. Almost all organizations can find a bucket of
useful work for programmers to perform year round.
Occasionally I have heard of projects where the map editor, the video compressor, or some
other modular tool-like portion of the project was outsourced to an independent
programmer. This may work and is more likely to succeed the closer this task is to being
modular and having few interdependencies with the games development. This works
especially well when you are not prepared to staff up and increase head count to perform
this minor amount of programming.
Much more controversial is the outsourcing of the multiplayer portion of a game project. The
several examples I can think of where the multiplayer was outsourced all ended with
abysmal failure due to a lack of communication between the core team and the multiplayer
team, as there are just too many interdependencies between multiplayer and single player
to successfully outsource this area. The only exception that comes to mind is the case of
Return to Castle Wolfenstein, an amazing game produced by id Software and developed by
Grey Matter with the multiplayer portion of the project developed by Nerve Software. This
worked well because Grey Matter was working with id Softwares solid Quake III engine
and could focus on the content creation. Likewise, Nerve had the same solid engine to work
with and could work on multiplayer parts of the game without needing constant
communication with Grey Matter. Thus, the work was modular and there were no awkward
dependencies between the two projects.
Taldren has outsourced a couple of programming projects: We have had external folks
create missions for Starfleet Command II, and we have had folks create a ship editor for
SFC II. For the missions, it did not work out well because the scripting API was still being
developed internally when we had to get started making scripts (a dependency). For
internal teams this is not that big an inconvenience and happens on most projects; the
engine development and content creation stages are often overlapping (it is, of course,
much better to complete your engine before content creation starts). In the case of
missions, we had to have more communication with the external mission programmers than
was efficient, and we had to perform significant maintenance on the scripts later in the
development cycle. The ship editor project worked out better because the folks came
forward with a functional prototype of what they wanted to do and just wanted an okay to
move forward on what was essentially their own independent project.On Outsourcing Art
Art would have to be the next area I would be reluctant to outsource from my core
development team. The outsourcing of art is probably the oldest and most well understood
of the tasks to outsource. In the days when a single programmer was all that was needed
to challenge the modest hardware, it was common to find an artist buddy and buy a month
or two of art from him. Now most games have their own internal art teams to produce the
required art for the game. There are, however, common exceptions.Movies, Cut Scenes, or
Full Motion Video
The most commonly outsourced art tasks are movies in a game. These movies are
sometimes called cut scenes, in-game cinematics, or full motion video (FMV), depending on
the technique used to create the movies and the role they play in the game. The reason
movies are most commonly outsourced is that movies are a labor-intensive process that
generally requires building assets in a format and of a higher quality than the games engine
and using tools and techniques that are not applied in the production of assets for the game
itself. Large development houses such as Blizzard and Square have developed very large
and internationally recognized movie making teams.
Sideways Comment on Large Movie Teams
Again, you should outsource when you are contemplating work that is beyond your core
competency or it would be an overall financial burden to staff up for this work. In the case
of Blizzard and Square, both organizations have enjoyed so much historical success that
they could easily afford to employ in-house movie teams. This allowed them to create
movies that the rest of the game industry can only envy. There is a significant drawback to
having a killer in-house movie team of such powerit needs something to do.
How do you outsource a movie? This is discussed in detail in Chapter 32. I will merely
outline the process here. To prepare for outsourcing a movie it is best if your team has a
competent storyboard artist who can communicate all of the scenes, actions, and assets
that will be required in making the movie. If you lack a sketched storyboard, create one with
just words.
Take your storyboard to a number of movie houses and ask them to respond with a fixed
bid to perform the work. Be sure to define clearly what work you want them to perform. For
example, if you want them to create a silent movie that you will later take to an audio
house, specify that, or they might include audio in the quote. Also explicitly indicate if you
will supply any of the models or other assets featured in the storyboard; otherwise they will
assume they are to create these models.
As the movie houses are responding to your bid request, follow up with their supplied
references and ask people who have worked with them before if they are satisfied with the
work performed.
In the end you will need to choose the movie house based on your own business
parameters: fast, cheap, or high quality (which two of the three do you want?). Maybe one
of the movie houses can do the work for you in a rush as you need, but at a steep price.
Perhaps another has a key art director that you know will nail the movie and you are willing
to pay her fee. Or perhaps there is a movie house with a substantial hole in their revenue
stream and they are willing to offer a deep discount to keep things flowing. In the end,
never grind so hard that you only force them to come back and ask for more money or to
underperform the work to get by.3D ModelsModeling
Almost all modern AAA games are 3D games: shooters, strategy games, role-playing
games, and adventure games. The hardware is just so capable that it is pretty much
uncompetitive not to be a 3D game. Most game development companies will have their own
internal staff of 3D modeling artists. However, your project may be particularly 3D model
intensive and you prefer to outsource than staff up, or you may simply be late and you need
some extra modeling bandwidth to accomplish your projects goals. Or perhaps your
development organization is relatively young and does not yet have 3D modelers in house;
in any of these cases outsourcing your models would be a good idea.
How do you outsource a model? Models tend to outsource well because it is relatively easy
to specify what you are looking for by way of a sketch and some technical details like poly
count, and models are modular and largely have no dependencies on any other aspect of
the project. Finally, it is fairly painless to inspect a model for completeness.
Approach several art houses with concept sketches of your model spaceship, racecar, or
whatever you need modeledand provide a complete technical description of the format you
need your model delivered in. Consult your own art director and graphics lead to determine
if your models can have only triangles or if quads are okay. Determine poly count, and in
addition to being textured, specify any other assets such as a damage layer, luminosity, or
specularity. What file format 3D Studio Max or other? Write all of this up and include other
parameters such as required delivery date and send it out to the art houses you have
prescreened based on the portfolios and references they have sent you.
Finally, as stated above, you must select your modeling team based on who is the best fit
to your business parameters: fast, cheap, or high quality.
In Chapter 32 I will go over this in detail and provide a list of modeling houses for you to
contact.Animation and Motion Capture
What good would having a fleet of static character models be? Not muchthat is why we
invented character animation. Roughly speaking, characters can either be animated by
hand, using what is called key framing, or the motion can be captured from the movements
of a live human, called motion capture. In practice, almost all motion capture involves
manual animation techniques to smooth out the noise in the data capture to achieve final
quality motion as well as to create secondary motions such as facial expressions and hand
gestures.
A key decision to make is whether you are exclusively key framing or are using motion
capture. Motion capture will tend to produce more natural looking, realistic movement,
usually also at a greater cost than key framing. Key framing, on the other hand, may be
better for your game if you are looking for unrealistic movements such as a game featuring
cartoon characters or a game about non-human animating characters. I provide a deeper
discussion on the pros and cons of outsourcing motion capture in Chapter 33.User Interface
Art
How about outsourcing your user interface art? I have strong feelings about outsourcing
your UI art. In short, dont do it! UI art is one of the most intimate bits of your games art. It
is the UI art that will need to be tweaked many times all the way through alpha and beta to
get it just right and to accommodate new features and changes to existing features. There
is almost no way I can see a contract to outsource this work; it is simply unfair to keep
asking an artist contractor to revise over and over again the UI as the game progresses.
Also, the changes in UI tend to be small and incremental and require an inordinate amount
of communication between the programmers, designers, and artists to get right. An out-of-
house artist would have to make far too many visits onsite to make this work practical. It
takes game programmers, game artists, a designer, and a producer to call yourself a game
development team. Without someone representing all four of these key positions, you
should not make games.
All of these warnings aside, I did successfully outsource the UI art on a gambling game that
I ran back in 1997 when our game development house lacked art bandwidth. To address
this we created what is fondly referred to as programmer art throughout the industry and
kept on tweaking that art until we had exactly the functionality we needed. Then I turned
that over to a great guy, Bradley W. Schenck, who I am happy to say is now one of my
employees.Audio
Audio assets, on the other hand, are an excellent and time-honored set of assets to be
outsourced. Audio does not take as long as programming and art to complete. Each of the
three major types of audio assetsmusic, sound effects, and voice-over workrequire
considerable talent, experience, a specialized toolset, and often contacts with other
talented folk such as cello players that the rest of us do not regularly maintain (or at least I
do not).Music
Music is almost always outsourced, and only the largest of studios choose to keep a staff
composer on hand. Keeping a composer year round would take an extraordinarily versatile
composer as well as at least six major concurrent projects. Highly talented and skilled
composers are readily available, and all the composers I have met are rather technical
people quite interested in game work and willing to deliver their best to make the gaming
experience the strongest possible.
The first step is to contact a few reputable composers and discuss the vision for the game
project with them. Usually, people look into music for their game after a lot of work for the
game has been completed. When that is true, it is useful to provide a tape of the game to
the composer for review. You have to outline to the composer your total budget for music
including post (unless you are taking care of postproduction yourself). Detail how many
minutes of music you are looking for and how you would like to break down the music in
terms of themes. For example, in Star Trek games we often create a Federation theme for
when the player is playing as the Federation as well as themes for the other playable
empires such as Klingon and Romulan. Themes are also broken into victory, defeat, battle,
and suspense music. If you can, supply your candidate composers with some CDs of music
that illustrate what you are looking for; this is as effective as providing a storyboard to
illustrate a proposed movie.
Your candidate composers should then go away for a week or two and give your project
some deep thought. They should then come back to you and give you their proposal of how
they will approach the project: number of minutes and whether or not they will perform the
music electronically or have live players. If they will have live players, they should articulate
how many, the instruments, and the proposed venue for the live performance. As for
providing a demonstration of the work, it could go two ways: First, the composer could
deliver a small snippet in electronic form; second, he might propose that a palette of new
sounds be created before any actual composition work is performed.
Review the proposals and go with the composer you feel has been most responsive to your
game. This is all discussed in detail in Chapter 28.Sound Effects
Sound effects are another excellent set of assets to outsource. To effectively outsource this
work, you must have a very good idea of the number of sound effects you are looking for
and a strong description of each sound. The game developer creates a cue list of all of the
sounds, indicating which ones loop and which do not, stereo or mono, bit-depth, and sample
frequency.
Ideally, all of the in-game animation that corresponds to the sound effects should be
complete (or complete as far as timing) with videotape of each of these animations
available for the sound effects engineer to review while making the sounds. If you do not
have the animations, then there will be a needless amount of revisions and the sounds will
ultimately never quite fit the animation.
With your cue list and animation clippings in hand, select three different sounds that should
test the range and versatility of the sound engineers. Send out the business parameters,
time of delivery, budget, and delivery format as well as the entire cue list, and highlight the
three sample test sounds you would like to hear from the sound engineers. If you send it
out to half a dozen folks, you will probably end up with one or two who perform two of the
sounds well and two or so who perform one of the sounds really well, and the rest just
miss. Now comes judgment time. After getting it down to three or so choices, I go with
professionalism: Which engineer made the best impression to work with? And finally, I get
whomever I select to listen to the sounds another engineer might have done better in a
particular case to better illustrate what I was looking for. The process of acquiring sound
effects is detailed in Chapter 30.Voice-Over
Almost all voice-over work is outsourced to some degree as very few of us make strong
voice actors. Most top games these days employ SAG talent, and often quite high-profile
stars are used. Voice-over work involves six roles: the talent, the director, the studio,
postproduction, the producer of the voice-over work, and the game designers who specify
what lines are needed in the game.
I recommend using a full-service voice-over house. The game designer wants to focus on
designing the game, not filling out SAG union paperwork, finding studio time, and organizing
the VO sessions.
Your job, in my opinion, is to design the game and come up with a VO script for all the
actors in your game, not handle all of the mundane tasks associated with VO production.
However, there could be the odd case where you have the right facilities or the job you
need done is so small that it makes sense to do it yourself. (I just have not seen a job too
small to have it done right.) Chapter 29 discusses voice-over production in detail.What Else
to Outsource
Of course there are a few other types of work that could be outsourced. For example, if
you are self-publishing something and want to sell direct to consumers, you should look into
electronic software distributors and outsourcing your credit-card-taking activities.
Outsourcing web site design makes sense only if your team lacks both art and web skills;
however, a web site design is usually well within the grasp of a game development team.
Outsourcing the web site hosting makes good sense, and there is a wide variety of vendors
available; the services are so standardized that it has become a commodity.
I have seen a few businesses advertise themselves as software testing labs. While I do
believe they will perform very rigorous testing, I do not believe there is a good market for
these folks to exist inthe ones I know of have failed. I believe you as a developer will need
the facilities to test your own game, and any strong publisher will be sure to test your
game.
Chapter 13: Shipping Your Game Previous Top Next
AlphaFeature Complete
The industry standards for alpha, beta, final candidate, first playable, and demo vary from
publisher to publisher, year to year, and project to project. My definition of when a game
achieves alpha is when it is feature complete.What Is Feature Complete?
It can often be painstakingly difficult to decide if a game is feature complete. It is easy to
say that a first-person shooter is not complete when the characters are not yet taking
damage, but I would argue that if the texture artists want to keep improving the look of a
level but the level is otherwise complete and playable, then you have a feature-complete
level.Additional Content
The gray area in my mind is what to do when you have the game feature complete, but you
have some folks with extra time on their hands who could be used to make additional levels,
models, or missions for your gamepure content. Do you go ahead and create this work
after alpha, cut this content from the final game, or delay alpha? After all, alpha means that
this is the first time the complete game is together in one place and is available to be
played; should we not feel comfortable adding content to make the game fuller between
alpha and beta? I think the answer to this question is feature specific; however, I have my
own rule of thumb: If the potential post-alpha content feature is very modular with no
dependencies on other members of the development team, if the game could ship without
the additional content, and this additional content will have only a minimal need for testing,
then I feel comfortable allowing this content after alpha. If this additional content would
require significant testing or creates dependencies with other tasks, I then have to
determine whether it is a core feature or should be cut.Feature Trimming
If you are not quite done with your feature list but the anticipated date of alpha is looming
close at hand, you should seriously consider changing the rules and cutting features. How
much do you cut and how much do you move your alpha date out? Answering this question
is why you are in charge. This is an exquisite balancing act where you measure input and
influence from your executive management, your team, your fans, and most importantly
your inner voice and choose a path to alpha. It is easy to say cut the features that are
secondary and trivial and push for the features that are primary. How you make these
choices is the hard part. For myself I line up all of the open features in Excel (I seem to
take comfort in lining up features for the cutting block when they are neatly laid out in Excel)
and just start calling out loud to myself core or kill. After I have made my list of cut features,
I print it out and take it to a team meeting. There I announce the fate of the features one by
one with a stony, poker face. My team has worked with me long enough to speak up for a
feature that I have killed and attempt to make a resurrection. If they can make compelling
enough arguments to me and the team to resurrect a dead feature, then they must identify
a feature I have designated to live as a lesser priority than the feature they are arguing for
and I swap them. By coming to the meeting well prepared, I am making an uncomfortable
meetinga meeting where the topic is a group failure to realize featuresas comfortable as
possible with strength and direction. This is tempered with the purpose of the meeting
where the team members review my decisions and ratify the feature-cut plan.
Testing Plan Previous Top Next
Testing Plan
Now that alpha has been achieved and we have all of our features, it is time to test the
game. At the beginning of the project we created a set of test cases from our use cases
and requirements; now is the time to finalize the testing plan.Publisher QA
For almost all major releases the publishers assume formal responsibility for the quality
assurance of a game before it is released. Some very small projects have just a single
tester, others have a team of six testers led by a lead tester, and some larger projects have
dedicated single-player and multiplayer testing teams. Occasionally close to the final push
new testers will be rotated in on a project to give the game some fresh minds. Other
significant milestones such as alpha and beta may enjoy the attention of a dozen or so
testers for a week or two to verify the readiness of the game.
These dedicated QA teams are usually the only folks who are employed full-time to test the
game. They should be the major source for bug detection and sometimes are invaluable in
getting deep coverage on an elusive problem. These publisher QA teams will develop their
own feature checklist for your game, and they will move around the feature list, testing as
they receive builds, and perform full verification sweeps at a lesser frequency. The list that
this QA team compiles will be considered the bug list that the other sources of bugs and
flaws are added to. This bug list will be maintained in a database. Some publishers roll their
own solutions, and others such as Activision employ a web-based bug tracking solution
called PVCS Tracker. This QA team or a dedicated team will also perform compatibility
testing for PC games to ensure that the game runs well across the spectrum of PCs from
the minimum requirements to the latest hardware.
These QA teams sometimes do a great job, and sometimes they are uninspired in their
testing of the game for a variety of reasons. My complaint with publisher QA is that as an
industry, the publishers consider the testing positions to be low skilled and low paying. Of
course, I understand how the executives at a publishing house would be hard-pressed to
have a more enlightened view of their QA when a casual analysis would show that you are
looking at people who are very young, at the beginning of their careers, who are getting
paid to sit around all day playing the latest games and occasionally writing down their
observations on the game. What skills could be involved in playing a game that you are
selling to the masses? Why should you pay a premium wage for a position that has endless
applicants?
If you were the manager of a professional baseball team, I doubt the thought to fill some
open positions on the teams roster from the pick of Krispy Kremes employee softball team
would ever cross your mind. Hey, there are millions of softball players who would love to
play ball professionally, and you could get them cheap too, but then they would not be
professional ball players, would they?Team Testing
Team testing is critical to the polish and balance of a game, and it is also one of the most
difficult tasks to schedule. The idea is to get everybody on the team to stop implementing
new features and fixing bugs and take a fresh and hard look at what they have created. The
development team will be the games harshest critics; no one outside of the team knows the
full potential of the team and the game, and the games shortcomings will stand out sharply
in their own eyes.
It is commonly advocated to play the game for 30 to 60 minutes two or three times a week.
In my opinion it is costly to ask people to switch tasks, no matter the task, and to ask them
to play the game for such a short period. I dont think you get a lot of quality information
from that effort. Instead, I advocate a full four hours spent on gameplaying as often as your
project can tolerate the distractiononce every 10 to 20 business days at the longest interval.
With these longer play sessions your team will be able to really wrap their minds around the
game and dig deep to get real feedback. Some of these sessions can be aborted after a
relatively quick hour or two if you come across a fatal flaw that prevents the rest of the
game from being appreciated. Also, it is not critical that every single team member
participates in every play session; it is just important that the whole team feels a sense of
ownership and pride in the game through direct play experience.
Often great leaps of inspiration will come out of these sessions, especially in the areas of
usability and user interface. This is when the team is most likely to have an objective eye
and look at a feature and say, That sucks, lets do this instead. Having a festive atmosphere
at these times, such as ordering pizza, will go a long way to making these sessions a loose,
fun, and productive method of testing.Project Leader Testing
Following the trend inward, from publisher QA through team testing, we arrive at project
leader testing. The project leader, lead designer, project visionary, or whatever name you
choose, is the one who is ultimately accountable to the gamers for the overall quality of the
gamewhether it is fun. The project leader should play the game thoroughly and oftenmore
thoroughly than often. In a game such as Starfleet Command, I dont necessarily play every
mission in depth before release; rather I play with all of the user interface and a lot of
multiplayer, and I spend a lot of time thinking about how the game could be made better.
The project leader is the person who has to simultaneously decide what goes in and what is
cut in the quest for fun. All the while the project leader must maintain the schedule. Only by
playing the game directly will the project leader have a proper appreciation for relative
importance of the change requests being showered at the game from all directions. It is
also the project leader who must bear the responsibility for acknowledging critical
weaknesses in the game that can only be corrected by large efforts. These weaknesses
must be confirmed through the project leaders own experience with the game and must not
fall into a trap of just responding to the latest cry for change.Automated Testing
Almost all games would lend themselves to automated testing for at least a portion of the
game. For example, many 3D shooters employ an automated camera test routine by
randomly placing the camera in any valid point in the 3D level pointed in a random direction.
Any resulting crashes, assert, or any other detectable fault can be trapped, and all of the
relevant conditions such as the stack are saved off for a programmer to follow up with.
Thinking of portions of your game that lend themselves to automated review is a great task
for the programming staff to brainstorm about. For example, in Starfleet Command we have
a mode I call Popcorn where we have AI controlled ships fighting each other in a random
free-for-all, and when a ship is destroyed another is created to fill its place. Over time,
most of the tactical game space is covered by these AIs smashing each other,
automatically uncovering bugs in the tactical game as we go.Focus Group Testing
Focus group testing is a quasi-science unto itself. Anyone can perform focus group testing;
however, there is a growing industry of professional focus group testing folks. The idea is to
put the prospective consumers in front of your software and watch everything they do.
Observe every difficulty, every missed click, every indication of being lost through the use of
cameras and direct observation. The idea is that anyone who is on the team or on the
publishers QA team is too familiar with the game to give true objective feedback. The focus
group testing can result in your strongest ego-busting feedback (as in this game sucks or
this is stupid). However much your pride might be damaged by the experience (many
publishers do not let the development team observe the focus group testing), you must look
hard and deep past their initial complaint and get to the root of their difficulties and address
them.
We must remember we are making consumer software that people do not need to buy.
Consumer software must work well right out of the box, and thus it is the first 15 minutes of
use of your software that you want to nail. Recent mega-hits are known to craft the opening
30 to 120 minutes of gameplay to a much higher level than the rest of the game. This is
where focus group testing shines; this is the best method to discover the flaws that your
game is presenting to the new user right out of the box.
The most important task involved in a focus group test is to sort out all of the comments
and throw away those that are purely frivolous, outrageous, or impossible to accommodate
and then carefully review the more reasonable comments and develop a strong set of new
directives to fix the user interface, usability, or other first-impression problems the focus
group testers experienced. A large danger exists, however, of overreacting to the input from
the focus group testers and creating flaws that will be apparent to the players of your game
who are hooked.Beta Testing
Beta testing should be a big part of the QA process on a strong PC title; it is probably the
most rigorous way to identify design flaws, compatibility problems, and outright bugs. With
a beta test, the developer or publisher distributes either the full game or more commonly a
portion of the game via CD or electronically to either a closed or open set of beta testers.
Mailing CDs out to a few hundred beta testers is now a fairly reasonable cost as there has
been tremendous competition among CD duplication houses. Last I checked, you could
deliver a master CD-R to a duplication house and get them duplicated with four-color silk-
screening for less than 40 cents each.
Unfortunately for console titles, beta testing is impractical as currently it would be far too
expensive to get your beta test build duplicated by the hardware manufacturers to send out
to the beta testers. With duplication fees at $10 and more per unit this could quickly get out
of hand. Also, I am unaware of any console game that has ever had a beta test, and it may
prove impractical to obtain the permission of the hardware manufacturer. I believe with the
advent of the hard drive and built-in broadband access in the Xbox, we will see an
electronically distributed beta test of the online games for the Xbox in 2003.Open or Closed
Beta Test?
The decision of whether your beta test should be open or closed is somewhat project
specific. For example, if your game is a tightly scripted narrative game that may only be
played once, such as Myst, I suggest that you do not employ an open beta test, as too
many potential customers would see how to win the game and would not perceive the
released version as having significant value.
Any kind of multiplayer game lends itself to open beta testing, with perhaps the Quake tests
and Counter-Strike being the two strongest examples of an open beta test. In the Quake
tests, id Software releases a demonstration/beta test of the game well before actual
release, often longer than six months before release. These tests may have content that will
not ship in the final game, and most certainly the game balance will change. What id is
primarily looking for is feedback from the hundreds of thousands of users of their Quake
tests for compatibility reports. As id games are creating the bleeding edge of games, id is
very careful to have robust and reliable software so as to not alienate consumers. So
despite having arguably the most advanced graphic engines in the game industry, id games
run well on machines that meet the minimum specification with very few complaints at the
final release. Also it acts as an early adopter, word-of-mouth marketing mechanism by
appealing to the hardcore gamers sense of being elite by getting in on the ground floor of a
new game.
Of course another reason not to perform an open beta test is because your game is not up
to widespread scrutiny. You are showing the world what your game is made of, and if it is
not compelling, it would probably be better not to do an open beta test. Consider holding a
closed beta test before an open test. The closed beta test may be performed with as few
players as you like (I suggest between 50 and 500 people). This way you will receive
reports on your most egregious flaws before the rest of the world sees them. The best way
to conduct a beta test is to go in stages from 50 to 150 to 500 and then open. Then, at
each stage you have fresh people looking at the game (and fresh systems to run your game
on) while each time fixing the largest bugs before going forward.
In Chapter 23 I present methods for organizing your beta testers, soliciting and collecting
bug reports, and communication strategies not only from development to beta testers but
also between beta testers.Manufacturer Testing
In the console world, the manufacturer will test your game thoroughly against their quality
standards before allowing the game to be duplicated. This is probably the single strongest
reason why console games generally ship in better condition than PC games. The hardware
manufacturers are not nearly as motivated as the developer and the publisher to ship a
game and thus can afford to be much more critical about the quality of the game. The
reason for this is two-fold: There are at any given time scores to hundreds of games being
produced for their platforms, so sending any one game in particular back to development is
unlikely to materially affect their short-term cash position; and two, it is in their best interest
to maintain the quality levels of games on their platform; otherwise the consumer could
quickly become disillusioned and wander off to another game console.
The manufacturers quality standards are typically written up at an early stage of the
platforms life cycle and updated from time to time, with a certain amount of the rules being
an oral history. Also note that between large territories such as Japan and North America,
the standards on something as basic as the common accept button on the controller differs
from the X button and the O button.
The great thing about a console of course is that compatibility testing is not a large task.
Rather, the game must be eminently playable, with short load times, high frame rates, and
very forgiving gameplay relative to a PC game. In Chapter 23 I discuss how to better
prepare your game for the hardware manufacturers testing process.Licensor Testing
When you create a game based on a licensed property such as our Starfleet Command
series based upon Star Trek , the licensor (the folks who own the intellectual property) will
usually enjoy some sort of signoff authority on the games look, feel, and content to be sure
your work supports the license and does not infringe upon other properties.
Typically the licensor will be involved at the games conception and take deeper looks from
time to time during the project, especially paying attention to the finished game design
document, the first playable build, the beta build, and the final release candidate.
Occasionally you will work with licensed material where the licensor does not have any
approval rights over your work. That was the case also in Starfleet Command for the Star
Fleet Battles material developed by Armadillo Design Bureau, which we used to base our
core game mechanics upon. It was critical in the case of Starfleet Command that we have
only one licensor with final design approval (I shudder at the nightmare of having two!). It is
very important to maintain a great relationship with your licensor as most often they are not
in the game business and they may not immediately appreciate what you are trying to
achieve with their property. You do not want them to be close minded about the liberties you
will likely need to take to create a great game.How Do You Balance a Game?
Game balance is the finest art in game making. It is painstakingly difficult to analytically
describe what a balanced game is or present a method for developing balance in your own
games.
The simpler the game and its game mechanics, the closer to perfection your balance will
need to be. For example, the game chess has had its rules tweaked and refined over the
centuries. Many years ago, the rules changed from the queen being able to move only a
single square of distance like the king to her present powers of destruction. Later, pawns
were given the ability to move one or two squares on their first move. In response, the
move en passant was created to rebalance the game after the pawn was given this two-
square option for first move. With the advent of powerful computers, previous end games
that were thought to be theoretical draws have been won by computers that found winning
sequencessome after more than 200 non-capture moves! The purpose of these rule
changes has been to achieve a perfectly balanced game. At the professional level, there
are scores of rules involving adjournment, time controls, and a host of other details that are
adjusted as we strive to create the perfect game of chess. This refinement is also occurring
in professional sports where many minor rules are made or adjusted that are not apparent
to mainstream viewers.
The general idea with game balance is to start with the most dominant rules and balance
those first and work your way out slowly to refine the secondary and tertiary rules. The
following diagram illustrates how we prioritized game balance in Starfleet Command 3.
For example, in a first-person shooter, first determine how fast you want the characters to
run, turn, and jump before you determine the damage and rate of fire of the plasma rifle. In
a real-time strategy game, determine how much the basic grunt units will cost to build in
time and resources before you determine what the zeppelin brigade will cost. Work your
way outward.
For PC games, the beta testing cycle will provide you with plenty of feedback about game
balance, especially if there is a multiplayer option to your game. I believe it is between
humans, not against the computer, that you will have a strong enough opponent to develop
true balance.
I have discussed how to achieve balance but not what balance is. I regard a well-balanced
game as one that delays as long as possible the point at which it is apparent to the loser
that he will lose the game. As soon as the loser is certain of his doom, the game becomes
uninteresting and the loser will want to quit. You want this realization to be as close as
possible to the last moment in a game. Storytellers know this intuitively, as every time a
chess game is used as a prop in a movie or a book, the winner cleverly checkmates his
opponent in some surprising manner that the loser was not anticipating.
Part III: Game DevelopmentIn This Part:Chapter 14: The Vision DocumentChapter 15:
Requirements GatheringChapter 16: The Design DocumentChapter 17: Unified Modeling
Language Survival GuideChapter 18: Technical DesignChapter 19: Time EstimatesChapter
20: Putting It All Together into a PlanChapter 21: Measuring ProgressChapter 22:
Controlling Feature CreepChapter 23: Alpha, Beta, Go Final!Chapter 24: Point Releases vs.
PatchesChapter 25: Garage Development Spans the Internet
Chapter 14: The Vision Document Previous Top Next
Of course, the lower your system requirements, the broader the base of consumers
machines your game will run on. However, the broader your requirements, the tougher it will
be on the programming team to develop an engine that will simultaneously take full
advantage of the higher end of the machines available and not leave behind the machines
that just barely meet the minimum spec. The decision on where to set the minimum
specification is usually a negotiated discussion involving the marketing and development
teams, and both sides need to keep in mind what the targeted market is for the game.
First-person shooters from id Software generally push the worlds computers into the future,
and Sesame Street games for kids need to work on pretty much any machine out
there!Fiscal and Temporal Requirements
Know what your budget of money and time is and be prepared to design your game around
these parameters. Much discussion earlier in the book has been devoted to this subject. I
feel comfortable sharing with my team members the overall budget numbers we have to
work with as I find it empowers them to make stronger contributions to the design and
overall production of our games.Use Case Diagrams
Traditional software development would interview the future customers of the software and
create use case diagrams to document these interactions between the user of the system
and the software. That would indeed be a requirements gathering activity; however, that is
essentially impractical in games. The game designer must step forward and lend his magic
to the process and design these player (user) and game (system) interactions. As this
process is more of a creative design activity rather than a formal requirements gathering
process, I have placed the discussion of the use case diagrams in the next chapter on the
game design document.
Chapter 16: The Design Document Previous Top Next
genres.
The use cases of Gran Turismo 3s menu systemConcept Sketches and Art Style Guide
The art director should be leading the art team through a series of sketching, prototyping,
and visual design tasks while assisting in the overall production planning process. The
sketches will help all involved understand the look and feel of the game. The user-interface
prototypes dramatically assist in the communication of the core gameplay.On Completeness
and Uncertainty
As the author of a book on how to go about doing something, I am obliged to assume the
role of someone pontificating. As a pontificator on performing a rigorous game design
process, I will freely admit here that in my professional career I have yet to create a game
design document that lives up to what I have described not only in this chapter, but in the
rest of the book. In the real world you will have many competing time pressures. Instead of
carrying everything out to full completion, you must use your judgment and determine what
areas of the design require the most game design resources. If you are making a sequel
to a game that your team has already made, then you should not spend time creating
documentation for the parts of the game that are not changing; instead, focus on the
creative differences the new version is bringing to play. In areas of the game design
document that still need more design effort but that you dont have time to address at the
present time, simply note the incompleteness, assign it to a member of the team, and
suggest a date for completion.
The twin brother of incomplete work is uncertain work. Games are art forms realized in a
piece of engineering brought forth by team effort. There is no way anyone has ever written
down at the start of the project every detail about a game without changing his mind on the
way to making a great game. Its fine to note straightaway in the game design document
areas that you feel need further examination or are dependent on learning new facts that
will be unveiled at a later point in the project. As with incomplete work, be sure this area of
uncertainty has an owner and a suggested date when the issue will be reexamined.Cut
Features Even Before Considering the Schedule
After laying out all this game design material on paper, most people would go straight to
time estimates and project planning without considering cutting features. I hold a fervent
conviction that the worlds great games do not have an abundance of features, rather they
have just the right amount of features polished to an uncommonly high standard! To help
make your game a great game, rather than just plugging in every single feature you and
your team can think of, instead consider your process to be like sculpting the perfect game
out of game developer mind-stone. As these extraneous features are cut from the project,
the true beauty of a great game will shine. By cutting now, without any pressure from a time
resource point of view, your feature cuts will be more pure and objective. Go ahead and cut
big features as well as small features. No worries if you cannot bring yourself to make
permanent cuts; simply designate truly great features as primary, the lesser ideas as
secondary, and the most obviously weak features as tertiary.
You will no doubt have to repeat this process of prioritizing and cutting features later in the
production process, but that task will be much easier with all of this thinking about what
really needs to be in the game already completed.Maintain the Game Design Document
Ah, so you are all done; HTML everywhere, no one has ever pushed UML use cases to the
limits you have, and you are prepared to have an auditing company review your asset lists.
Fantastic! Congratulate your team and have a beer. Now get on with the rest of the
production plan and production in general. Oh, wait, there is one thing left to do with the
design document: Keep it up to date. This can be difficult, tedious busywork for a team, and
you must decide what level of formality and rigor must be applied to maintain your own
game design document. However, the moment a game design document is saved and
checked into the source control system it starts to diverge. This is due to people finding
their own improvements to the design. Perhaps the design was vague, or perhaps the
developer learned of a better technique, or perhaps someone ran low on time and cut some
features. All of this activity should be documented to assist developers downstream. Think
of the QA team that must update the testing plan, the manual writer, the voice director who
must plan the dialogue sessions; there are a good many people who need an up-to-date
design document.
On Fulfilled Expectations Previous Top Next
On Fulfilled Expectations
Great games create expectations in the players mind, and you should deliver fully on these
expectations. Take your time as the game design document is being wrapped up to ask
yourself what expectations the game design suggests to the player. Brainstorm a bit and
compile a list of these expectations and then go back and review your game design
document to determine if you are truly delivering the best gameplay experience for fulfilling
these expectations. Also look for features that are listed in the game design document that
are not apparently fulfilling any expectations. This would be another clue for some feature
trimming. If after searching your soul your game design creates a nice set of expectations
and delivers fully with no excess fat, then you may safely declare that the game design
document is complete.
Chapter 17: Unified Modeling Language Survival Guide Previous Top Next
construction: Specification.
container class.
Focusing on the difference between an is a and a has a relationship
If navigability occurs in only one direction (the usual case), it is called unidirectional; if both
objects point to each other, it is called bidirectional. In the case of an association line
without arrows, UML says the association is either unknown or bidirectional. We think this
ambiguity in the language is a flaw and recommend treating lines without the arrows as
unknown rather than imply a bidirectional behavior.Attributes
Attributes may be thought of as simple fields in a class. At the conceptual level an attribute
is just a has a association. An example of an attribute is the name of the player in the
cPlayerCharacter class. Class boxes are subdivided into three sections: class name,
attributes, and operations. The full syntax for an attribute is:
visibility name: type = defaultValue
generated:
Code generated for MonsterNPC.h
The first file is MonsterNPC.h, defining the interface to the base class that Ogre is derived
from. Notice all the nice comment work supplied by Describe; just think how envious your
fellow teammates will be with your diligent code style!
The next file created was MonsterNPC.cpp; notice how it has done a lot of typing drudgery
for us, and now all we have to do is fill in the body of the functions. Again, there are many
nice bits of commenting that one should really get around to filling out.Code generated for
MonsterNPC.cpp
Now here is Ogre.h; notice how Describe knows to write the correct syntax for deriving
Ogre from MonsterNPC. Neat, huh? I think so.Code generated by Describe for Ogre.h
Finally Ogre.cpp shows the skeleton constructor, copy constructor, destructor, and
The class diagram has been updated after the code generation
What just happened might have been reverse generation of the diagram update with the
constructor, destructor, and copy constructor by writing the code first and then updating the
diagram, or it could have been forward generation by modifying the diagram and then
proceeding with the code generation. I could not tell you since it all happened within a blink
of the eye.
To test the reverse engineering capabilities of Describe, I added a new member function to
Ogre: pickTeethWithElfBones(). It seemed like a fun thing for our Ogre to do on occasion.
To accomplish this I opened up the code generated by Describe in a simple editor like
Windows Notepad and added the declaration of pickTeethWithElfBones() to the public
members section of the Ogre class in Ogre.h. (I omit this painfully dull figure illustrating a
one-line change to Ogre.h.) I then told Describe to reverse engineer the diagram from the
source code:
The new function pickTeethWithElfBones() has been automatically generated.
Bam, there is the pickTeethWithElfBones() member function in the Ogre box including the +
symbol indicating it is a public function. As a final step I then directed Describe to perform
some forward engineering magic by again generating code from the diagram. What is there
to generate? The skeleton of the function pickTeethWithElfBones() in the Ogre.cpp file of
course!
This brings me to a very important point to keep in mind about UML. While I have been
advocating a methodology that is likely to be a more extensive process than you are
currently using, by going with UML and with the flow of the industry standard, not only will
your team be creating higher quality software on time through all of these magical benefits
of wholesome software engineering, but as a side effect or bonus your team will save itself
from the tedium of making header files and stubbing in their functions. Using UML with a
good UML tool such as Describe, Together, or Rational Rose will save your team time.
[1]Of course, that sentence should be read with the connotation of "currently." No doubt
computers will continue to grow in power exponentially and someday neural ners, expert
systems, and probably a hodge-podge of AI techniques will allow a computer to guess at
the implementation for hutForFood(). It is interesting to note that computers and software
are already designing integrated circuit hips at the lowest level and performing the majority
of stock trades automatically.
The Other Seven Diagrams of UML Previous Top Next
objects.
A sample sequence diagram depicting a simplified logon sequence
The sequence diagram is useful for designing how your components and packages will
interact at the specification stage and assists you in designing the message traffic in your
objects in the implementation design stage. A sequence diagram documents a single
scenario or course of events. In fact, a sequence diagram maps well to a use case
diagram. You should certainly spend more energy on collecting your requirements into use
cases rather than rigorously ensuring that you have a documented sequence diagram for
each of your use cases.
The main benefit of sequence diagrams in game development is in multiplayer code
technical design. Multiplayer code tends to need a lot of asynchronous callbacks, multi-
threading, blocking calls, or combinations of all of these. You also have peer-to-peer or
client-server communication. There is usually a lot of complicated messaging going on.
Zachary Drummond and I independently developed sequence diagrams on our own while
working on a client-server game in 1997. Later we found out there is a standardized
language for expressing this messaging behavior!
Now a quick overview of the syntax behind the sequence diagram: First, all of the objects
that are part of the scenario to be designed are listed across the diagram from left to right,
with the leftmost object being the instigator of all of the action and the rightmost object
generally being the last object to be instantiated in the scenario.
Below each object is the objects timeline represented by a vertical dashed line, starting at
the bottom of the objects box and extending to the bottom of the diagram. From the time
the object is actually created until it is deleted, the timeline has an open rectangle on top of
the dashed line. At the bottom of the rectangle, if the object is deleted in this scenario, a
large, bold X is placed to clearly indicate when the object was destroyed.
The messages themselves are lines with solid filled arrowheads that lead from the calling
object to the called object. This message line is always labeled with the name of the calling
objects member function that is making the function call or asynchronous message (or by
whatever messaging vehicle you are using). Additional conditions may wrap the message
label to document what conditions would have to be met for the message to fire off.
Objects may send messages to themselves; this is documented by having the object point
an arrow back to itself. Messages that are simple returns are drawn by using a dashed line
with a solid arrow back to the calling object.
Like many bits of the UML, you may choose to use additional symbol types to add clarity to
a diagram. For example, UML uses half-filled arrowheads to represent asynchronous
messages.
The collaboration diagram in my opinion is just not useful or at best can only be useful in
odd cases. Maybe I have failed to appreciate the use of a collaboration diagram; like
anything I put forth in this book, if you take issue or have a suggestion, please drop me a
line at [email protected].
The basic syntax of the collaboration diagram is to basically smash together a class
diagram and a sequence diagram and end up with a diagram that does a worse job at
modeling dynamic behavior than the sequence diagram and a worse job at static modeling
than the class diagram. That is, it uses boxes for objects and message arrows to indicate
calls between the objects.
Essentially this diagram is an informal sequence diagram where object lifetime is not
required to be drawn and you feel the need to sprawl about your drawing surface. I have so
much disdain for these collaboration diagrams that I am not even going to include an
example. I highly recommend UML Distilled by Fowler and Scott, and if you are morbidly
curious, you can check out the collaboration diagram in that book!
Collectively, the sequence and collaboration diagrams are called UMLs interaction
diagrams. Use the sequence diagrams.
State diagrams are the last bit of the UML to discuss, and as with the collaboration
diagram, I do not think the state diagram is useful. The state diagram is essentially a flow
chart using UML notational bits. Sure, flow charts are useful and they had their day, but I
feel the trio of use case, class, and sequence diagrams are the different views to use,
representing requirements, and static and dynamic behaviors. The odd state diagram will
also help you out with particularly state-driven complex objects.
Here again, to sabotage the state diagram I omit a diagram for it; see UML Distilled if you
remain interested. Email me if youre passionate about the state diagram; I see it only useful
for the high ceremony shops that would like to make an easy-to-read flow chart.
Chapter 18: Technical Design Previous Top Next
Task Tracking
To measure project progress you must track the tasks that have been completed, the
remaining tasks, and the newly identified tasks. Microsoft Project as a project management
software solution, you would think, would be great for tracking what has been completed,
what remains, and what is new. It turns out that it is fairly tedious to do all these activities. I
swear I think Taldren could make a bunch of money by creating a truly easy-to-use and
effective project tracking software package. In MS Project, tasks that are completed are
difficult to move around; as soon as you mark them 100 percent complete, they are frozen
in the schedule like boulders in the stream. If you are using the automated leveling tool (one
of the main reasons to be using Project in the first place), these boulders act as annoying
nuisances that must be manually moved about. If a task is marked completed but lies in the
future, I think Project should shift it back in time behind now, adjusting duration if need be;
the task is done! So Project does not help much when it comes time to mark tasks
complete. Entering new tasks is actually easier in my opinion than marking tasks complete.
It still requires adjusting the dependencies between tasks and probably re-leveling work
between resources. However, that work is appropriate and necessary as you want to
understand the impact of the new tasks on the rest of the schedule.
What is the alternative to tracking a project in MS Project? From running my roundtable
Real Methods of Game Production at the Game Developers Conference, I have found that
most folks use MS Project to plan their game projects and use either Excel, a database
application, or a bug tracking application to track their project tasks. All three of these treat
a task as a record in a simple database, allowing the manager to quickly add records and
modify existing records. It is easy to sort the records both in a spreadsheet and in a bug
tracking system (note that database applications like FileMaker Pro and Access are used
to create rough, internal bug/task tracking database applications).
The ease of use of these systems blows away MS Project in raw speed for the manager.
The great negative of dispensing with MS Project is that you will not be able to identify
critical paths, overloaded resources, or task dependencies. Those are powerful project
management tools to set aside. In the real world it seems that all of the best-laid plans fall
victim to the Pile-Of- Stuff-We-Must-Do-So-Why-Bother-With-Project philosophy. This is a
heavy problem on my heart, and I have not yet figured out how to best solve this problem
other than have better project management tools. Some teams literally have a full-time
human devoted to updating MS Project files for large teams of 25+ developers; other
smaller teams of 10 or fewer simply keep lists of things to do from high to low and work on
the highs until they are all gone and then the mediums and then the lows. You need to
measure the size of your team and figure out what level of methodology you require.
I do have a specific recommendation though: Use MS Project to create a skeleton of real,
measurable tasks that are almost like a continuous string of micro-milestones each of your
team members must achieve for the game to ship on time. Then use a spreadsheet or
database application to track the thousands of minor bugs and tasks that come up during
actual production of the game. This allows you to maintain an MS Project plan to do high-
level project planning tasks like deciding you cannot afford to take the time to create the
map editor so all of the tasks associated with the map editor should be pruned from the
plan. Or you see that the animation work is falling behind and that you need to hire another
animator.
As for specific bug tracking software to use, see the section on quality assurance in
Chapter 18, Technical Design.Only Visible Tasks Are Completed
It might be a little extreme, but I feel it is a useful axiom of project management to assume
that only visible tasks will be completed by the development team. I have a bagful of
techniques that I use to make tasks visible.The Daily Journal
Games are built a day at a time, and there are a surprising few number of days to
complete a game. If you are slated to make a game in 18 months, then from a Wednesday
to a Friday each of your developers must complete a full 1 percent of all they are going to
put into the game. Each day counts. That is why I force my guys to figure out what they are
going to get accomplished each day when they arrive in the morning and publish that
information on our intranet application we call the Daily Journal. Below is a screen shot from
one of my entries.
Part IV: Game Development Resource GuideIn This Part:Chapter 26: Getting a Job in the
Game IndustryChapter 27: Starting a Game Development CompanyChapter 28:
Outsourcing MusicChapter 29: Outsourcing VoiceChapter 30: Outsourcing Sound
EffectsChapter 31: Outsourcing WritingChapter 32: Outsourcing Cinematics and
ModelsChapter 33: Outsourcing Motion Capture and AnimationChapter 34: Fan-Generated
Material
Chapter 26: Getting a Job in the Game Industry Previous Top Next
You Did Not Scare MeI Love Games AND I Want In!
Okay, if the above comments did not dissuade you from wanting to enter the game industry,
then come on in, the waters great!
So what do you know how to do and what would you like to do? Generally speaking there
are six broad classes of skill sets in the industry:
Programming
Art
Testing
Producing
Audio
Design
I listed the skill sets in descending order of ease for breaking into the industry. Skilled
programmers have the easiest time getting into games. However, Visual Basic
programmers generally do not cut the mustard. Strong artists from other industries can
often slide over without difficulty. The easiest way into games with the least skills is to
become a tester at a publishing house; the only requirements seem to be a passion for
games and some degree of written communication skills.
Producing jobs are both easy and difficult to get. Producers in the game industry often
come from the testing or occasionally programming side of development; however,
increasingly folks are being hired into producing slots at publishers who have some other
management experience such as in the film or music industries.
Audio jobs are difficult to get in my opinion, due to the relatively low number of jobs
industry-wide and the willingness of so many talented individuals to work for relatively low
compensation.
Design is the single most difficult job to get in the industry and I am sure the hardest job to
get as your break-in job. Some old-time paper RPG designers from TSR were able to
transition into well-paying jobs at Interplays Black Isle studio in the heyday of the Baldurs
Gate series. The most common way for new people to get into design positions is in the 3D
first-person genre where exceptionally talented and dedicated folks create compelling levels
on their own that get picked up by fans and become popular. However, I argue these folks
typically work for free on their own for a year or two before their work is noticed, so their
first position is essentially as self-employed intern.
How to Get a Job as a Programmer Previous Top Next
Go to GDCFree!
A great place to meet game developers is at the Game Developers Conference
(http://www.gdconf.com/) held in the spring in San Jose. It is a little-known factoid that you
can be a volunteer at the conference working several hours each day in exchange for a full
pass to the event. This will save you about a thousand bucks!
At GDC there are two prime avenues for networking for a job in the industry; the most
straightforward is of course the job fair. Here you will find dozens of companies looking for
new people. Your resume will go into the pile, and if you wrote a good one, maybe you will
get a call back. The problem with this approach is that your resume will go to the HR
department and sit for a while, gathering dust.
The better way to network for a job is to actually go up and speak to developers. After
attending one of the conference sessions go up to the speaker and ask a good question
and then follow up with an introduction about yourself and state that you are looking to
break in and would like some advice on where to start. If they know of a job opening, they
will steer you there more quickly than your resume will in the HR department. The reason is
simple: They will see you standing there and will be able to look you in the eye to gauge
your determination and sincerity. Also, rank-and-file developers usually know of job
openings well before HR does. The truth is that team members, recalling that a buddy of
theirs over at this other game shop is wrapping up his project and is looking for a change,
fill the vast majority of positions in the game industry. In other words, I believe 90+ percent
of jobs in the industry are filled by word-of-mouth and shuffling about. The HR department
only gets a job description if the company has been unable to fill a position through this
word-of-mouth method. Also, it takes guts to walk right up to someone and ask for a job,
and we developers like to find people with guts.
What About Those Recruiters? Previous Top Next
Find a Path
Why does the world need your game company?
If you are able to answer that question with strength you should create and run a game
company.
Sure, point to any successful game development company and you will show me that all it
took was a mega-hit: Warcraft, Doom, Final Fantasy. However, as I said earlier in the book,
without diminishing the greatness of these games or the effort it took to execute them, I feel
the truly interesting struggle was how Blizzard got to the point where they could create
Warcraft. How did id get to Doom? Do you know why Square named the key franchise Final
Fantasy?
Here are some specific examples. Epic and id started out creating small shareware titles
that were addictive to play and always financed their early projects through sweat and
shareware registrations. When they both became successful they started performing their
own publishing functions and used their position of impeccable strength to have publishers
bid for their games.
Treyarch Entertainment started off as a regular milestone developer for Interplay; however,
Treyarch aggressively pursued console port projects from Electronic Arts. These port
projects turned out to be fairly substantial and could be delivered with much stronger
regularity compared to an original property such as their Die By The Sword. Just four years
after implementing that strategy, Treyarch employs 130 developers and has been bought
out by Activision.
You have two major transition points to manage: How will you launch your company, and
after launching how will you transition your company into a sustainable, successful
company?
Most game company developers would benefit from a few years experience in the industry
to formulate their plan; others are quite capable of just striking out on their own path on
their first day. Think about your company; what are your key employees especially talented
at? What are you especially passionate about? What opportunities are available from folks
with whom you have established relationships?
I Have a Plan; Now How Do I Get Started? Previous Top Next
InsuranceWorkmans Compensation
If you will have employees, you will need workmans compensation insurance. The good
news for us is that our rates are very low as we employ people to just come in and sit down
and enjoy themselves. No lifting or physical activity is required for a game developer! Your
accountant will likely be able to get you in touch with a good insurance broker.
This insurance is absolutely required; if you are not prepared to pay for it, then you are not
prepared to employ people.Liability Insurance
Any good corporation should have a liability insurance policy to handle minor legal scrapes
and other complaints against your company. Usually this is paired up with fire, theft, flood,
and other disaster protection.
Liability insurance is not a strict legal requirement as in the case of workmans
compensation insurance; however, this is the kind of insurance you want to buy!
Employee Compensation Programs Previous Top Next
War Chests
Finally, without ever losing the magic in your heart for the beauty of games, never forget
that you are running a business. A business primarily exists to create money. It might make
money unethically, ethically, in an environmentally friendly manner, or any other way, but at
the end of each day your company has been created to make money.
That seems like an all-too-obvious statement; however, looking at the dot-com bust of the
1990s you will see that American business lost track of the bottom line and measured
business success in hype created and not wealth creation. For a short while you can spend
hype, but it is not very liquid and it will disappear all too quickly.
You have to start somewhere, and for most game developers we have modest starting
points. No matter how modest your early contracts must be to get started, structure your
deals and company expenses to make money off each of your games. Your advances must
be large enough to cover your costs as well as provide a small profit to add to your war
chest.
Game development can sometimes be a grim game, where you and your guys work hard
against milestones that pay 90 to 110 percent of your costs until the day you encounter a
tough problem, such as no follow-up project, grave project slip, or a failed publisher.
You must work towards building a war chest. Your goal should be to first have one extra
month of burn rate, then three months of burn rate, then six months, and finally a year of
burn. I would imagine after you have piled up a years worth of cash, you could entertain
investing in other ventures rather than socking away more cash. War chests cannot be
undervalued; the quality of your projects, contract language, and ultimately your profitability
will be directly related to the amount of cash you have in your war chest. Without it, when
you need the cash badly to pay the next payroll, you have no negotiating room.
Earning money is easy, just work; it is the saving of money that is truly difficult. There are
always a bunch of compelling things that you must spend money on at any stage of your
company; however, I sincerely advocate being as frugal as possible without impacting
productivity, and build that war chest!
Chapter 28: Outsourcing Music Previous Top Next
The panel exposed the benefits of releasing soundtracks independently from the game
itself. Chance Thomass soundtrack for Quest for Glory V is a great example of the potential
benefits. The soundtrack was released before the game and included a playable demo of
the project. They sold 50,000 copies of the soundtrack and made $500,000 from
soundtrack sales. Chance said, Music is the language of emotion. We draw people in.
Ironically the soundtrack outsold the game . Quote from gamesdomain Quest for Glory
V review: The music was very well done, Sierra knows this is one of the highlights of the
game, which is why they are selling the soundtrack.
More ideas from Jack WallComposer: Myst III Exile: (In regard to using live orchestra)...
The way I got Myst III Exile going was I talked up ancillary markets to the producer and
to the marketing department. If you have great sounding music, you can sell this music as a
standalone CD , you can use this music in your marketing campaigns , etc. They used
the heck out of me for Myst III Exile. I basically crafted about 80% of their entire launch
marketing campaign for them. It took a lot out of me, but obviously, it was worth it. They put
the music on United Airlines flights. They used the Main Title in the trailer that played
nationwide in movie theaters . But, more directly, I think its how to educate publishers
and developers that it will truly translate into salesThats the bottom line! Read Jacks Myst
III: Exile article The Evolution of a Videogame Soundtrack.
Giacchino Composer.
The Academy of Interactive Arts and Science Awards
Medal of Honor Underground Best Original Score
At the 4th Annual Interactive Achievement Awards, Medal of Honor Underground won in
both categories in which it was a finalist: Outstanding Achievement in Original Musical
Composition and Outstanding Achievement in Sound Design.
When you hear the phrase video game score, what do you usually think of? MIDI? Eric
Serra-style synth? Synthesized orchestras? Drum machines? How about fully orchestral
John Williams-style action scores? Finally, the orchestral score has migrated to video and
computer games, with the release of Medal of Honor. The game, based on the film Saving
Private Ryan , was authorized by Steven Spielberg and turned out probably the best game
music score ever heard up to this point. The music is in the percussive, swashbuckling vein
of John Williams and it conjures up images of his Indiana Jones scores& Michael
GiacchinoComposer.
Epilogue
I recently heard a talk by Mark Terrano of Microsoft in Daejon, South Korea. His talk was
titled What is Life? It was simply the most information-dense, most wonderful talk I have
ever heard given about the games business. Mark opened and closed his talk by referring
to himself both as teacher and as student. Mark is an accomplished developer with a good
number of great games.
Honestly, I feel more on the student side than the teacher side, myself.
A year and a half and over 200,000 words went into this book. This was my first attempt to
write a book, and I apologize to you, dear readers, for having to endure my clumsy efforts.
While writing this book our company has grown from 15 employees to 25, and we have
started and shipped SFC3. We are now working on our first console title, a multiplatform
sci-fi action/RPG called Black9. And I became a father.
After eight years of game development, personally leading the shipping of five games, I feel
like I am just beginning to understand what I need to focus on to become a stronger game
producer.
The tools are getting better, the machines are faster, the games are much bigger, and this
will only accelerate. The future of games is amazingly bright, and I just cannot wait to play
your games!
Please consider this book as just my humble efforts to begin a conversation with all of you
on how to make games better.
Please send all your thoughts, information, and criticisms to me at [email protected] so I
may learn from you.
Appendix A: Suggested Reading Previous Top Next
Game Industry
Abrash, Michael, Michael Abrashs Graphics Programming Black Book, Coriolis Group
Books, ISBN 1576101746, 1997
Previously published as: Zen of Graphics Programming: The Ultimate Guide to Writing
Fast PC Graphics, Coriolis Group Books, ISBN 188357708X, 1994.
Abrash, Michael, Zen of Code Optimization: The Ultimate Guide to Writing Software That
Pushes PCs to the Limit, Coriolis Group Books, ISBN 1883577039, 1994
Michael Abrash is one of my all-time favorite authors. The text of his Zen of Graphics series
of books is material from magazine articles he has written for years. Michael Abrash
remains the only author whose books I have reread just for the sheer pleasure of his
writingthe material itself was bonus material. The Zen books I feel are must-reads for all of
your programmers. Even though the bulk of his material is outdated due to advances in
technology, the clarity of logic that he brings to bear on an algorithmic problem deserves to
be studied.
Deloura, Mark, Game Programming Gems volume 1 , Charles River Media, ISBN
1584500492, 2000
Deloura, Mark, Game Programming Gems volume 2 , Charles River Media, ISBN
1584500549, 2001
Deloura, Mark, Game Programming Gems volume 3 , Charles River Media, ISBN
1584502339, 2002
Mark Deloura is the director of developer relations at Sony PlayStation and was previously
editor-in-chief of Game Developer magazine. Delouras Game Programming Gems have
been edited with excellence, making each article of each volume in the series a must-read
for the programmers on your team.
Hallford, Neal, and Jana Hallford, Swords & Circuitry: A Designers Guide to Computer
Role-Playing Games, Prima Tech, ISBN 0761532994, 2001
This 524-page book is nicely focused on one genrecomputer RPGs. The highlights of the
Hallfords book include interviews with Trent Oster, the lead designer (among many hats) of
Neverwinter Nights representing BioWare Corp.; Chris Taylor, the lead designer of Dungeon
Siege and CEO of Gas Powered Games; as well as four other interviews of lead designers
of hit RPGs. The Hallfords also do a nice job of trying to analyze game design issues that
are specific to the computer RPG. I would like to see a series of books myself that focus
on different genres such as sports, extreme sports, platform, first-person shooter, etc.
There is not very much specific that you will be able to make immediate use of; however, it
is a pleasure to read.
Olson, Jennifer (Editor-in-chief) et al., Game Developer magazine, CMP Media LLC
This magazine is the only and best print magazine for game development. Postmortems of
games are key regular features such as Black & White by Peter Molyneux and Deus Ex by
Warren Spector. Visit their web site at http://www.gdmag.com/ to subscribe to the
magazine. It is also free to qualified professional game developers.
Rollings, Andrew, and Dave Morris, Game Architecture and Design, Coriolis Group Books,
ISBN 1576104257, 2000
While I do believe this book is fundamentally worth reading, I could not escape the feeling
that neither of the two authors have personally led a major game project. The positives of
the book include some specific thoughts on how you might want to organize your team and
some game design templates.
Sawyer, Ben et. al., Game Developers Marketplace, Coriolis Group Books, ISBN
1576101770, 1998
This 728-page tome covers a wide selection of game development topics from the history
of game development and the business of game development to design and audio. A lot of
the specific tools mentioned in the book are now outdated; however, it is easy reading and
the careful producer will gain some knowledge from the book.
Sawyer, Ben, Game Developers Source Book, Coriolis Group Books, ISBN 1883577594,
1996
This is Ben Sawyers 824-page predecessor to Game Developers Marketplace . Several
chapters were reproduced in the Marketplace title. If you own Marketplace there should be
no driving reason to purchase Source Book .
Yu, Alan (Director of Conferences and Events) et al., Game Developers Conference
Proceedings , CMP Media LLC
These proceedings are the collected papers on a wide variety of topics from programming
and art to design and legal that are presented each year at the Game Developers
Conference in March in the United States. Selected topics from 2000-2002 are available for
free at http://www.gdconf.com/archives/. The full proceedings are available for purchase at
the GamaSutra Store at https://www.gamasutra.com/php-bin/store.php (also a CMP Media
LLC holding).
Software Development Previous Top Next
Software Development
Booch, Grady et. al., The Unified Modeling Language User Guide, Addison Wesley, ISBN
020165783X, 1999
This is the definitive overview of the Unified Modeling Language. Each of the three amigos
was lead author on a UML book: Booch wrote the User Guide , Jacobson, Development
Process , and Rumbaugh, the Reference Manual . The Reference Manual and User Guide
really should be purchased as a set after you have digested UML Distilled . I highly
encourage reading Development Process before digging into the User Guide and
Reference Manual .
Cline, Marshall et. al., C++ FAQs 2nd Ed ., Addison Wesley, ISBN 0201309831, 1998
The moderators of the online C++ FAQ at comp.lang.c++ collect and answer the questions
most often asked by professional programmers on USENET. Every advanced C++
programmer I know has learned something from the book, an excellent read for your junior
and intermediate developers with bite-sized chunks of information.
Fowler, Martin, with Kendall Scott, UML Distilled 2nd Ed., A Brief Guide to the Standard
Object Modeling Language , Addison Wesley, ISBN 020165783X, 2000
Unlike most technical books, UML Distilled manages to cover something important in less
than 200 pages. I consider this book a must-read for all of my developers, producers, and
designers.
Lakos, John, Large-Scale C++ Software Design, Addison Wesley, ISBN 0201633620, 1997
This is a very important book; every programmer on your game development team should
be exposed to this unique book. Game projects are now quite large pieces of software and
the majority of game developers are self-taught or academically taught with no formal
background in software engineering in a practical sense from working on large teams. This
book discusses how to physically design your software, a topic that I believe is not covered
anywhere else.
Maguire, Steve, Writing Solid Code: Microsofts Techniques for Developing Bug-Free C
Programs, Microsoft Press, ISBN 1556155514, 1993
The other Steve writing for Microsoft Press on good software development. Maguire
presents many practical tips on writing solid code. This book contains especially lucid
writing on debugging and how to integrate code team-wide. All junior and most intermediate
programmers will benefit greatly from this book, and advanced programmers might be
reminded of a safety technique that they have allowed to fall into disrepair.
Meyers, Scott, Effective C++ CD: 85 Specific Ways to Improve Your Programs and
Designs, Addison Wesley, ISBN 0201310155, 1999
Meyers, Scott, Effective STL: 50 Specific Ways to Improve Your Use of the Standard
Template Library, Addison Wesley, ISBN 0201749629, 2001
Meyers, Scott, Effective C++: 50 Specific Ways to Improve Your Programs and Design
2nd Ed., Addison Wesley, ISBN 0201924889, 1997
Meyers, Scott, More Effective C++: 35 New Ways to Improve Your Programs and
Designs, Addison Wesley, ISBN 020163371X, 1995
Scott Meyers is a very lucid author and perhaps the most popular C++ author. The Effective
C++ series is most thoughtfully written, and Meyers shows an uncommon sensitivity of what
the beginning to intermediate programmer would need to understand about C++. All of
Meyers books can be recommended without hesitation; however, the CD version of the two
Effective C++ books and the STL book seem like the best buys. To get an idea how popular
the Effective C++ books have been, notice the other C++ books at your local bookstore
that attempt to capitalize on the title such as Essential C++, Efficient C++, and Exceptional
C++.
Musser, David R., STL Tutorial and Reference Guide: C++ Programming with the
Standard Template Library (2nd Ed.), Addison Wesley, ISBN 0201379236, 2001
The original edition of this book stood out to me as the only book able to explain to me how
to use STL! For some reason, at the time that I was learning STL, either I was dense, or
the other texts were poor, or an unfortunate synergy of the two conspired to make this a
slower process than it needs to be. Your C++ programmers must have an introduction to
the Standard Template Library that is part of C++. Lists, vectors, sets, and more complex
data structures and algorithms have already been developed to a rigorously high quality.
Your developers should not be reinventing their wheels when good ones are available for
free!
Rumbaugh, James et. al., The Unified Modeling Language Reference Guide, Addison
Wesley, ISBN 020130998X, 1999
This is the definitive reference for the Unified Modeling Language.
Appendix B: The Art Institute of California - Orange County Previous Top Next
Index2D artist, 473D graphics programmer, 433D modeler, 473D models, outsourcing, 187,
39080 percent stereotype rule, 371-372AActivision, 97-98and licensing, 212activity
diagram, 148, 240-241actor, 84ADPCM, 342Advanced Squad Leader, 10-11alpha, 192,
294alpha testers, 294Alter Echo, sound effects list, 121ambient music, 344analysis model,
144-145animation, 48in games, 381outsourcing, 187-188art assets,estimating time for
creating, 261prototyping, 224art director, 46Art Institute of California, see The Art Institute
of Californiaart, outsourcing, 186-188, 376-380art parts, 45-49artificial intelligence
programmers, 43artist, entering game industry as, 317asset lists, 221-
222assets,animation, 117audio, 49character models, 115missions, 115music, 121-
122sound effects, 121special effects, 125-127voice, 116associate producer, 50-
51association relationship, 228associations, 231-232attributes, 232audio assets, 49-
50audio bid example, 122-125audio, outsourcing, 188-190audio programmers, 44Audio
Scrambler, 343automated testing, 155, 195, 256Avalon Hill, 10-11
Index_B Previous Top Next
IndexMMadden NFL Football, 12main game view, 108main QA team, 53Makkoya, design
staff, 261management parts, 50-51manual, 60when to write, 223manufacturer testing, 197-
198manufacturing parts, 61Mario64, music in, 344marketing, 59marketing development
funds, 56marketing director, 59Max Payne, 22menus,designing, 222-223music in,
345Messiah, 16Microsoft, 81preproduction process, 27Microsoft Excel, see ExcelMicrosoft
Flight Simulator, 10Microsoft Project, 158, 265using, 167, 172-173, 181, 266, 268-269,
271-273MIDI, 340-341milestone meetings, 180military simulations, 10-12missed deadlines,
effects of, 77mission designers, 40-41mission editor programmers, 44-45missions, listing,
115mod, 70modeling, outsourcing, 187Moores Law, 31, 133motion capture, 48, 382list
example, 118-120using in games, 382-384movies, outsourcing, 186-187MP3, 342-
343multiplayer mechanics, 110-111outsourcing, 185multiplayer QA team, 53multiplicity,
231music, 50formats, 340-342in games, 339-340outsourcing, 188-189types of, 344-
345music bid, 343-344example, 345-346Musical Instrument Digital Interface, see
MIDImusical sting, 344Muzyka, Ray,on selling cross-genre game, 98on user expectations,
95
Index_N Previous Top Next
IndexXXMI, 341X-Plane, 10
About the CD Previous Top Next
About the CD
The contents of the companion CD are not the usual bits of programming code one would
expect in a traditional computer programming book. Instead, you will find three tools that
are very useful in the production and development of your games.
The following folders are on the CD:
PerforcePerforce is a very powerful asset and source code control system. Asset
management and version control are critical bits of day-to-day housekeeping in the
development of a game. Most folks start out with Microsofts very modestly priced Visual
Source Safe. After your team grows you will begin to feel the limits of VSS, and Perforce is
an excellent solution. Perforce is somewhat expensive; however, the version included on the
CD is a free two-client and server license to use as long as you like.
Perforce has also graciously supplied a Best Practices White Paper on version control.
Daily JournalThe Daily Journal is a tool we developed and use internally at Taldren to track
and publish the companys activities on a daily basis. As you will see, it is a very thin web
applet with no additional bells or whistles. Feel free to modify the Daily Journal to your
needs.
DescribeDescribe is by far the easiest to use of the forward and backward code generation
UML tools that I have used. A full-featured demo of Describe is included on the CD.Caution
By opening the CD package, you accept the terms and conditions of the CD/Source Code
Usage License Agreement.
Additionally, opening the CD package makes this book nonreturnable.
CD/Source Code Usage License Agreement
Please read the following CD/Source Code usage license agreement before opening the
CD and using the contents therein:
By opening the accompanying software package, you are indicating that you have read and
agree to be bound by all terms and conditions of this CD/Source Code usage license
agreement.
The compilation of code and utilities contained on the CD and in the book are copyrighted
and protected by both U.S. copyright law and international copyright treaties, and is owned
by Wordware Publishing, Inc. Individual source code, example programs, help files,
freeware, shareware, utilities, and evaluation packages, including their copyrights, are
owned by the respective authors.
No part of the enclosed CD or this book, including all source code, help files, shareware,
freeware, utilities, example programs, or evaluation programs, may be made available on a
public forum (such as a World Wide Web page, FTP site, bulletin board, or Internet news
group) without the express written permission of Wordware Publishing, Inc. or the author of
the respective source code, help files, shareware, freeware, utilities, example programs, or
evaluation programs.
You may not decompile, reverse engineer, disassemble, create a derivative work, or
otherwise use the enclosed programs, help files, freeware, shareware, utilities, or
evaluation programs except as stated in this agreement.
The software, contained on the CD and/or as source code in this book, is sold without
warranty of any kind. Wordware Publishing, Inc. and the authors specifically disclaim all
other warranties, express or implied, including but not limited to implied warranties of
merchantability and fitness for a particular purpose with respect to defects in the disk, the
program, source code, sample files, help files, freeware, shareware, utilities, and evaluation
programs contained therein, and/or the techniques described in the book and implemented
in the example programs. In no event shall Wordware Publishing, Inc., its dealers, its
distributors, or the authors be liable or held responsible for any loss of profit or any other
alleged or actual private or commercial damage, including but not limited to special,
incidental, consequential, or other damages.
One (1) copy of the CD or any source code therein may be created for backup purposes.
The CD and all accompanying source code, sample files, help files, freeware, shareware,
utilities, and evaluation programs may be copied to your hard drive. With the exception of
freeware and shareware programs, at no time can any part of the contents of this CD
reside on more than one computer at one time. The contents of the CD can be copied to
another computer, as long as the contents of the CD contained on the original computer are
deleted.
You may not include any part of the CD contents, including all source code, example
programs, shareware, freeware, help files, utilities, or evaluation programs in any
compilation of source code, utilities, help files, example programs, freeware, shareware, or
evaluation programs on any media, including but not limited to CD, disk, or Internet
distribution, without the express written permission of Wordware Publishing, Inc. or the
owner of the individual source code, utilities, help files, example programs, freeware,
shareware, or evaluation programs.
You may use the source code, techniques, and example programs in your own commercial
or private applications unless otherwise noted by additional usage agreements as found on
the CD.
List of Tables Previous Top Next