You are on page 1of 43

DECEMBER 1999

G A M E D E V E L O P E R M A G A Z I N E
ON THE FRONT LINE OF GAME INNOVATION

G A M E P LA N
DEVELOPER
600 Harrison Street, San Francisco, CA 94107
t: 415.905.2200 f: 415.905.2228 w: www.gdmag.com

Down With Global Publisher


Cynthia A. Blair cblair@mfi.com
EDITORIAL

Homogenization! Editorial Director


Alex Dunne adunne@sirius.com
Managing Editor
Kimberley Van Hooser kvanhoos@sirius.com
think most of us in this industry As an American, however, I must

I
Departments Editor
Jennifer Olsen jolsen@sirius.com
are pretty happy about the fact admit to having reservations about an
Art Director
that interactive electronic enter- influx of foreign talent. It’s not that I Laura Pool lpool@mfi.com
tainment has rapidly become a think American jobs will be stolen by Editor-At-Large
widespread form of entertainment immigrants, nor that I adhere to isola- Chris Hecker checker@d6.com
Contributing Editors
around the world. And in case you tionist beliefs. On the contrary, I say Jeff Lander jeffl@darwin3d.com
didn’t notice, game development itself the more the merrier here in the U.S. Paul Steed psteed@idsoftware.com
has spread around the globe with simi- What I fear is the result of a slow, Omid Rahmat omid@compuserve.com
Advisory Board
lar speed. This fact was made abundant- steady exodus of game developers from Hal Barwood LucasArts
ly clear to me last year when entries for countries whose game industries are Noah Falstein The Inspiracy
the GDC’s Independent Games Festival just beginning to form. I don’t think Brian Hook Verant Interactive
Susan Lee-Merrow Lucas Learning
poured in from far-flung countries like that’s good for the countries in ques- Mark Miller Harmonix
4 Poland and Pakistan. (That was a bit of tion, nor for their burgeoning commu- Dan Teven Teven Consulting
Rob Wyatt DreamWorks Interactive
a mind-blower.) It really makes you nities of game developers. Sometimes
realize that there’s much more to this all it takes is a few key people leaving a ADVERTISING SALES

industry than meets the eye at E3, team to kill a game, and in some coun- National Sales Manager
Jennifer Orvik e: jorvik@mfi.com t: 415.905.2156
ECTS, and the Tokyo Game Show. tries, the development of a single com- Publisher Relations Manager
What’s becoming increasingly clear to mercial game is a real feat. Ayrien Houchin e: ahouchin@mfi.com t: 415.905.2788
me is that many overseas game develop- I also feel (and I think many would Account Executive, Eastern Region
ers want to come to America. I know agree) that our industry needs to Afton Thatcher e: athatcher@mfi.com t: 415.905.2323
Account Executive, Western Region
this firsthand, because I regularly get explore more game designs, and I fear
Darrielle Sadle e: dsadle@mfi.com t: 415.905.2182
asked to write letters of reference for for- anything that will homogenize game Account Executive, Northern California
eign game developers trying to make development. Cultural differences Dan Nopar e: nopar@mfgame.com t: 415.356.3406
their way through the U.S. Immigration between countries make many titles Account Representative, Silicon Valley
and Naturalization Service bureaucracy. extremely entertaining, simply due to Mike Colligan e: mike@mfgame.com t: 415.356.3406

While my experience is just anecdotal, their (for lack of a better term) exotic ADVERTISING PRODUCTION
I’ve spoken to enough game executives design. When I first saw PARAPPA and Senior Vice President/Production Andrew A. Mickus
around the industry to know that many DANCE DANCE REVOLUTION, I knew Advertising Production Coordinator Dave Perrotti

American companies actively recruit they weren’t developed in America. Reprints Stella Valdez t: 916.983.6971

overseas game development talent. There is something distinctly Japanese MILLER FREEMAN GAME GROUP MARKETING
It’s probably not too tough to entice a about them which I really enjoy. It Marketing Director Gabe Zichermann
foreign developer over here. It’s no would be a pity to lose some of that MarCom Manager Susan McDonald
secret that American companies pay diversity in favor of Yet Another FPS. Junior MarCom Project Manager Beena Jacob

game developers more than those in In the newspaper this morning I read CIRCULATION

most other countries (and that probably that French chefs staged a protest in Vice President/Circulation Jerry M. Okabe
Assistant Circulation Director Sara DeCarlo
holds true for most professions). A Paris, in part to voice their anger against
Circulation Manager Stephanie Blake
salary survey conducted last spring by America’s growing economic and mar-
Assistant Circulation Manager Craig Diamantine
the Miller Freeman Game Group (which keting muscle overseas — in this case,
Circulation Assistant Kausha Jackson-Crain
this magazine is affiliated with) and McDonald’s was the object of their Newsstand Analyst Joyce Gorsuch
Market Perspectives revealed that the scorn. The French want no more of our
INTERNATIONAL LICENSING INFORMATION
average total salary — including any fast food, music, and movies. They
Robert J. Abramson and Associates Inc.
sort of cash bonus — for an American probably still hold Euro Disney against t: 914.723.4700 f: 914.723.4722
game programmer in the U.S. was us. And while I used to write these com- e: abramson@prodigy.com
$49,991, and the median total salary for plaints off as poor sportsmanship in the
a game programmer was $50,000. arena of international business, I’m
CEO/Miller Freeman Global Tony Tillin
Compare that to a Polish company that coming around to see that it’s impor- Chairman/Miller Freeman Inc. Marshall W. Freeman
we recently talked to, which pays its tant to grow our industry outside the President & CEO Donald A. Pazour
staff programmer the equivalent of clutches of Uncle Sam. Executive Vice President/CFO Ed Pinedo
about five hundred U.S. dollars per Sigh. Maybe a croissant will cheer Executive Vice Presidents Darrell Denny, John Pearson,
Galen Poss
month. Though the cost of living in the me up. ■ Group President/Specialized Technologies Regina Ridley
U.S. is substantially higher, that magni- Sr. Vice President/Creative Technologies KoAnn Vikören
tude of a discrepancy lures many for- Sr. Vice President/CIO Lynn Reedy
eign game developers away from their Sr. Vice President/Human Resources Macy Fecto

native lands.

G A M E D E V E L O P E R DECEMBER 1999
New Products: Lips Inc. yaks it up
with Ventriloquist, Microsoft whips out
new CE for Dreamcast, and Sonic
Foundry takes another trip. p. 9

Industry Watch: Sony seeks desktop


real estate, Titus nibbles at Virgin
Interactive, and Sierra lets fly an
avalanche of canned titles. p. 10

Product Review: Jeffrey Abouaf puts


Mirai, Nichimen’s new 3D modeling
and animation package, through the
News from the World of Game Development wringer. p. 12

New Products es they’ve already saved a lot of time,


which they can then spend tweaking
those faces to perfection instead of
Dreamcast development is its browser
support. Internet Explorer 4 HTML
Control enables developers to give
by Jennifer Olsen sweating the set-up. players access to HTML content from
Ventriloquist is appearing first for within a game so they can post high
3D Studio Max 3 at a suggested price scores, link to hints and cheats, and
But Does It Walk the Walk? of $595. Versions for Lightwave, Soft- lose some of that excess disposable
image, Maya, and others are to follow income with e-commerce functionality.
LIPS INC. has developed Ventriloquist, a soon. ■ Microsoft Corp.
plug-in designed to aid animators by ■ Lips Inc. Redmond, Wash. 9
automating the complex task of lip- Cary, N.C. (425) 882-8080
synching facial animations to audio (919) 468-7005 http://msdn.microsoft.com/cetools/
files. Typically, facial animation is a http://www.lipsinc.com platform/support.asp
grueling process for animators. To do it
correctly, one practically needs an
advanced degree in linguistics to figure Common Environment Still Uncommon Another Loopy Trip for Musicians
out all the phonemes, visemes, and for Consoles
every other -eme one needs to master SONIC FOUNDRY introduced a new ver-
before a speaking character is ready for MICROSOFT has released the Windows sion of Acid Pro, its groundbreaking
its close-up. What Ventriloquist aspires CE Toolkit 2 for the Sega Dreamcast. loop-based music production tool.
to do is to let animators plug character With the advent of the Dreamcast, con- When it debuted in 1998, Acid thrilled
dialog straight in from one of numer- sole development is finally emerging music professionals with its ability to
ous standard audio file formats, and from its smoke-filled room, no longer change tempos without altering pitch.
then quickly and painlessly deliver an the arcane process associated with the New to Acid 2 is Sonic Foundry’s
output stream of precise morph targets. current, aging generation of consoles. XFX 1 DirectX audio plug-in which
The immediate results from this Sega is banking that it will be able to enables real-time tweaking of mixes. It
process look admittedly stilted, but a attract more developers already familiar also includes Sound Forge XP 4.5, a
one-size-fits-all answer to the infinite with the Windows CE development digital audio editor that lets users cre-
range of human (or animal, or robot, environment to their new console. ate and edit loops, synchronize audio
or alien) emotion and expression is a Windows CE for Dreamcast means and video, and manage file conversion.
tall order. By the time animators are that porting games between Dreamcast Hundreds of royalty-free loops are
ready to keyframe the finishing touch- and PC will be relatively easy, and is available that users can simply drag
sure to encourage more and drop from the explorer window
simultaneous cross- into their track view and arrange into
platform development multiple-track creations. Acid automat-
since many of the ically adjusts the key and tempo of
hardware barriers of incoming loops to keep things from
traditional console getting out of whack, which means less
development will be dirty work for you, the artiste.
mitigated or eliminated Once your magnum opus is com-
altogether. Memory- plete, you can output your music to
light but feature-rich, .WAV, .MP3, .WMA, or .RM files,
the Toolkit of course export as digital audio tracks, or burn
incorporates the it on CD with track-at-once CD burn-
DirectX library of APIs ing. Acid Pro 2 is available for
and is compatible with Windows 95/98/NT 4.0 and carries a
Visual C++ and Visual suggested price of $399.
Studio. ■ Sonic Foundry Inc.
One new feature of Madison, Wis.
Ventriloquist brings easy lip-synching to Max. the Toolkit that may (608) 256-3133
prove interesting for http://www.sonicfoundry.com

h t t p : / / w w w. g d m a g . c o m DECEMBER 1999 G A M E D E V E L O P E R
BIT BLASTS - INDUSTRY WATCH

Industry Watch TITUS TAKES VIRGIN INTERACTIVE.


Acquisitive French publisher Titus con-
tinued its expansion by purchasing a
BALLARD RESIGNS FROM 3DFX.
L. Gregory Ballard tendered his resigna-
tion as chief executive officer of 3dfx
by Daniel Huebner controlling interest in Virgin Interact- effective October 31, 1999. Ballard
ive, a move that should further bolster spent three years at the company, see-
PLAYSTATION GOES DESKTOP. Accord- Titus’s position in Europe. The firm ing revenues grow to more than $400
ing to some reports, Sony plans to fol- gained a 43.9 percent share in Virgin as million. “I truly believe that the chal-
low the March release of the Play- part of an earlier deal to take control- lenges in this next phase of the compa-
station 2 with a series of desktop ling interest in Interplay. Titus pur- ny’s growth will be more technical
workstations based on the console’s chased additional shares to expand than marketing and strategic, and that
Emotion Engine processor. SCEA chair- that stake to 50.1 percent and a con- 3dfx can benefit from the fresh per-
man and CEO Ken Kutaragi noted that trolling interest in the company. The spective that a new CEO can bring,”
the current Emotion Engine is equal to terms of the sale were not disclosed, said Ballard. 3dfx is forming a search
Intel’s Pentium III in transistor count, and neither company has yet com- committee, which Ballard himself will
and he expects the next-generation mented on its plans. lead, to find a replacement. ■
Emotion Engine 2 to surpass the
Pentium when it’s released in 2002. SIERRA PULLS PLUG ON BABYLON 5. In
The workstation will be aimed primari-
ly at users in broadcasting, film pro-
what was billed as a move to “enhance
focus on market success,” Sierra killed UPCOMING EVENTS
CALENDAR
10 duction, and software development. As off several titles and eliminated 105
we went to press, Sony had yet to com- jobs. The cancellation of DESERT FIGHT-
ment on an OS, but it is suspected that ERS and PRO PILOT PARADISE at Dynamix
Linux will power the new systems. in Eugene, Ore., sent 60 employees
packing. An additional 45 jobs were
CODEMASTERS PICKS UP YOSEMITE. A lost with the cancellation of BABYLON
closed studio will gain new life in the 5, a title that had been relocated to
Digital Content Creation
so-called “birthplace of computer gam- Bellevue, Wash., after Sierra shuttered
ing.” U.K.-based Codemasters has Yosemite Entertainment earlier this LOS ANGELES CONVENTION CENTER
announced a plan to open a studio in year. Other titles cut in the restructur- Los Angeles, Calif.
Oakhurst, Calif., a town that gained ing included ORCS: REVENGE OF THE December 6–8, 1999
notoriety as the home of Sierra’s first ANCIENTS and the persistent-world pro- Cost: variable
headquarters 20 years ago. Much of the ject MIDDLE-EARTH. The reorganization http://www.dccexpo.com
staff and management of the new stu- will ultimately see Sierra divided into
dio will be veterans of Sierra’s Yosemite three business units: Core Games will
Entertainment studio. Craig Alexander, focus on Sierra’s high-profile games Game Developers Conference
who served as Yosemite’s general man- and includes HALF-LIFE publisher Sierra HardCore Technical Seminars
ager for nearly five years and directed Studios, Impressions Games, Papyrus,
games such as PHANTASMAGORIA and Sierra Northwest Studios, and the HYATT REGENCY
POLICE QUEST: SWAT, will lead the remaining teams at Dynamix; Casual SAN FRANCISCO AIRPORT
group. The studio is expected to start Games will focus on Hoyle card games Burlingame, Calif.
with two dozen employees and ramp as well as hunting, fishing, and rodeo PHYSICS: December 6–7, 1999
up to 70 in the coming months. The titles; and Home/Productivity will deal GRAPHICS: December 8–9, 1999
group will keep the Yosemite name, with cooking, gardening, and genealo- Cost: $1,950/each; $3,300/both
which was purchased from Havas, and gy titles. http://hardcore.gdconf.com
will pursue development of both PC
and PS2 projects. AMEN DESIGN STAFF DUMPED. Cave-
dog Entertainment, well-known maker Game Developers Conference
of strategy games TOTAL ANNIHILATION 1999 RoadTrips
and TA: KINGDOMS, cited problems
with the technological development
WYNDHAM GARDEN HOTEL
of its much-anticipated shooter AMEN:
San Rafael, Calif.
THE AWAKENING as the basis for its deci-
December 10, 1999
sion to let go of the entire AMEN
design staff and push back the game’s
MEYDENBAUER CENTER
release date. While Cavedog hasn’t
Bellevue, Wash.
elaborated on the game’s problems,
December 14, 1999
the design staff were praised for their
“talent, dedication, and contribution”
Cost: $120 ea. (discounts available)
AMEN: THE AWAKENING has gone into and were invited to return to the pro-
http://roadtrips.gdconf.com
hibernation, at least for now. ject when, and if, the development
difficulties are resolved.

G A M E D E V E L O P E R DECEMBER 1999 h t t p : / / w w w. g d m a g . c o m
BIT BLASTS - PRODUCT REVIEW

more subtle and far-reaching than the planned for a future release.) While you
demo showed: it begins with a work- will occasionally set the camera to the
ing environment, which strives to be XYZ orthographic views, the traditional
more like a 3D operating system than four-windowed orthographic presenta-
a user interface, and builds on this tion is not the intent. To model and
with a comprehensive, advanced fea- animate in Mirai, you see the scene
ture set. through the camera lens’s perspective.
A 3D OPERATING ENVIRONMENT. Some You have a wide choice of lenses, and
leading 3D applications have a UI can save multiple viewpoints, animate
organized into modules (modeling, camera motions, and attach the camera
animating, rendering, and so on); oth- to a path.
ers perform all operations within a Mirai is “selection driven” as
single perspective window, enhancing opposed to “tool driven.” All 3D pro-
this with a series of modeless dialog grams have you select objects, faces,
boxes. Each approach has its strengths edges, or vertices, and then perform
and limits. Of the former, few, if any, an operation on them, but generally
Nichimen’s let you work in more than one mod-
ule at a time; of the latter, the single
you choose a tool first. In Mirai, your
selection defines your options to a

12 Mirai interface is usually supplemented by


floating dialogs. Mirai’s designers con-
ceived the interface as a 3D operating
greater degree than in other programs
— if you click on the geometry view
while working on the model, you can
by Jeffrey Abouaf system, in which modules behave like switch to camera mode where all
applications, each complemented actions change your viewpoint, then
f you attended Siggraph ‘98 in with its own floating dialogs, yet all click back on an edge or polygon to

I Orlando and rested your feet at


the Nichimen booth, you saw the
promise of something new in character
are dynamically linked so changes to
one propagate through the others
instantaneously.
bring up a menu of everything you
can do to that face. When you first
encounter this, you may find it so
animation: Mirai. The promise was This means, for example, you can seamless that you inadvertently
realized with the product’s release last have multiple geometry editors, 2D switch from camera mode to object
May, followed by unanimously positive paint sessions, 3D paint sessions, and editing without warning — quite dis-
critical reception. It brings many firsts UV mapping windows open simultane- concerting. Also, when you’re used to
to character animation, and is well ously. In each geometry window, how- manipulators constraining transform
worth looking at whether your pas- ever, you control what is visible vs. operations, it’s a little awkward trying
sions run to cinematic or real-time 3D. what is hidden — that is, you can dis- to control manipulations in a perspec-
The most noticeable innovation is play different objects or sets of scene tive window. Once you understand
the degree of skeletal intelligence built objects in different windows, even the orders, however, this is a remark-
into the animation module. The first though you’re looking through the ably fast way to work.
demo involved a generic bipedal char- same camera from the same vantage Although available for both IRIX and
acter performing a gymnastic exercise point. Having isolated objects and NT, Mirai reflects its IRIX roots.
— taking two running steps toward a groups this way, you could bring up Nichimen’s N-World (Mirai’s predeces-
wall, kicking one foot against the wall one or more 2D and 3D paint windows sor) was deservedly recognized as a pre-
to push up and off into a backward showing the isolated objects. Because mier real-time 3D character animation
somersault, catching a trapeze, then these editors are linked, as you paint in system. This was when most real-time
dropping to the floor. The naturalistic 2D it updates both the 3D view and developers used the SGI platform
motion sequence took about two min- any geometry editors. exclusively. When they ported N-World
utes, required only eight keyframes, This differs from working in an appli- to Windows NT three years ago, its
and was actually usable. The second cation such as 3D Studio Max, in which hefty price tag and high-end hardware
part of the demonstration involved you can have more than one instance requirements kept it out of the hands
the artist refining and smoothing the of a single viewport, but could not hide of all but the most dedicated, well-
model, texture-mapping it, and or show different objects in each one. funded game shops.
adding touch-up paint, all from with- (In Max, you’d achieve isolation with Mirai’s “SGI” style comes through in
in Mirai, with changes updated across additional cameras in the scene; in its clean interface, with minimal icons
all modules in real time. No doubt Maya, you’d accomplish a similar result and no tool tips; you drive it with left,
that first demo belied the technologi- by assigning objects to different layers.) middle, and right mouse clicks, with
cal advances under the hood, because Mirai operates from a single-camera results dependent entirely on sequence
Mirai didn’t ship until the following perspective; you look through this cam- and context. It supports hot keys, but
May. Mirai’s power and advantages are era at all times. (Additional cameras are has far too many commands to be
hot-key driven. This is wonderful for
Jeffrey Abouaf is an artist, animator, and instructor who appears at home in a couple the initiated, but will cause consterna-
of institutions in downtown San Francisco. tion for newcomers. The good news is
that Nichimen has anticipated the

G A M E D E V E L O P E R DECEMBER 1999 h t t p : / / w w w. g d m a g . c o m
BIT BLASTS - PRODUCT REVIEW

problem with superior printed and Nichimen’s


online documentation and tutorials. August 1999
You’ll save a lot of time and minimize update to Mirai
frustration if you follow the “Getting introduced “mag-
Started” manual before exploring on net moves” along
your own. By the time you’re through face normals with
with it, you’re comfortably reoriented falloff. This feature
and ready to play. allows artists to
ONE HELLUVA MODELER. Because of its model by painting
roots in real-time 3D, Mirai has one of surface deforma-
the most extensive modeling toolsets tions and displace-
available. The ability to align and ments. This is
bevel vertices, edges, and faces enables handy, for exam-
precise, easy control of any object ple, for painting
property. In the hands of an experi- extrusions on edge
enced artist, edges are quickly aligned loops to create
to follow a character’s head and body cheekbones,
contours and muscle formations brows, and so on, F I G U R E 1 . This character shows off the smooth and highly
(“Edge Loops”); when these edges are or for painting an detailed work achievable in Mirai.
14 extruded and the mesh area subdivid- extruded layer of
ed and smoothed, you achieve high clothing or armor
detail and control that rivals any on a character. applied. Changes to the control vol-
package. Figure 1 demonstrates the SUBDIVISION MESH MODELING — NO ume update on the high-resolution
smooth yet highly detailed work NURBS, B-SPLINES, OR H-SPLINES version. The value, of course, is that
achievable in Mirai. ALLOWED. Because if its real-time 3D working with polygons presumes you
The 2D and 3D paint modules com- roots, Nichimen has always been a can generate multiple levels of detail
plement the extensive materials editor polygonal modeler and never support- (LODs) from the same control vol-
and mapping capabilities. Like many ed spline technologies. Building on ume, that surface deformations do not
competing packages, Mirai supports the pioneering efforts of Symbolics, change the face count, and that poly-
UVW mapping parametrically by pro- and boasting a staff whose credits go gons provide the lowest overhead for
jection and face-mapping. You can back to 1980’s Tron, Mirai’s developers texture mapping. Yet the control vol-
assign multiple types of mapping were among the first to embrace sub- ume also acts like a lattice deformer,
coordinates (such as planar and spher- division-mesh modeling as their tech- in that generating poses or morph tar-
ical) to the same selection set, and nology for delivering smooth, organic gets is a very elastic experience.
you can composite multiple layers of surfaces, only they followed this FK/IK ANIMATION. Mirai’s FK/IK solution
materials on a face selection, taking approach before it became fashion- is to create a stop-motion puppet.
advantage of different types of projec- able. They call it “Volume Modeling,” Rather than keyframing each skeletal
tions. In addition, Mirai’s painting and the surface the “Derived Surface”; joint rotation, keyframes are set for
capability allows you to paint over it amounts to making a low-resolution the entirety, pose to pose. The IK sys-
any seams that might result where dif- geometric form, and a reference copy tem uses quaternion algorithms simi-
ferent mapping coordinates meet. with high-resolution smoothing lar to those used in other packages,
with a second-pass analysis checking
for incorrect or less-than-natural
motion. Whereas other applications
have skeletal motions dependent
upon pulling the skeleton along a
path, Mirai is about altering poses.
The poses can be set by rotating joints
and/or by “pinning” bones. This pin-
ning can be in the nature of “glue” or
a “tack”; if you glue a left foot and
pull a right hand, the foot will remain
in place as long as possible before
pulling away. If you tack a foot, the
foot will not move and the hand will
move until it slips away. The pins can
be temporary; different bones can be
pinned or unpinned at different
F I G U R E 2 . Combining Mirai’s various animation effects offers naturalistic results frames.
for complex animation sequences. Second, Mirai’s skeleton responds to
“magnet” moves, that is, you can

G A M E D E V E L O P E R DECEMBER 1999 h t t p : / / w w w. g d m a g . c o m
BIT BLASTS - PRODUCT REVIEW

move one bone relative to FACIAL ANIMATION: DISPLACE-


another specified bone. MENT EQUALS LIP-SYNCH.
This allows naturalistic “Displacement” in Mirai is
squash and stretch. These what other packages refer
features combine, for to as morphing or blend
example, to let the charac- shapes — in each case it’s
ter crouch (magnet move), isolating a series of facial
spring upward (pinned expressions for direct or
feet); loop around the indirect use as morph tar-
trapeze (feet unpinned, gets in facial animation.
hands pinned), and drop Mirai has this capability, as
into a crouch. The fairy did N-World before it. The
sequence in Figure 2 documentation shows how
shows how these work to set up the displace-
together. ments, how to “wire” them
Mirai supports the most to sliders, and how to use
common motion capture the sliders to generate
formats (such as Acclaim, unique expressions.
Motion Analysis, and Because motion editing
16 Biovision), and can send F I G U R E 3 . Mirai allows you to stitch two motion sequences supports layers and scripts,
the data out to Nichimen’s together and retain control of the transition. setting up displacements
Game Exchange utility. for one character implies
Nichimen’s current devel- you can adapt these to a
opment direction is expanding this motions combine seamlessly into the different characters without starting
biomechanical capability. In addition, final sequence, but could also be from scratch. Figure 4 shows Bay
Testarossa (which won an Emmy taken apart and recycled. Mirai also Raitt’s Horus character set up for lip-
award for its figure skating simula- lets you stitch two motion sequences synching. Note you can see the
tions for the most recent Winter together, and gives you full control smoothed version, the connected low-
Olympics) has written a set of mo-cap over the transition. Figure 3 shows the polygon modeling version, and the
plug-in tools for Mirai, designed to animation editor set up for a transi- slider-driven animated composite all
extract added functionality from the tion between two motion clips. Not within the working environment,
data files (for more information, see only can you control the speed, num- together with the graphs and timeline
http://www.toolsinmotion.com). ber of frames, and other characteris- pertinent to Horus’s speech.
Finally, Mirai supports full non- tics for the transition, you can layer Figure 5 shows John Feather’s Grunty
linear editing of motion and motion other motions on top of the source character, specifically how you would
capture data. For example, you can set clips. Further, with Mirai’s scripting set up to animate him in Mirai. The
up a run cycle and loop it (using capabilities you can call and recom- facial features have been wired to slid-
motion capture data or keyframing), bine additional premade layers or ers in the Animation Mixer, the charac-
then add a second layer of dodging scripts to make complex, unique ter’s hierarchy is laid out in the Anima-
and weaving obstacles. The two results. tion: Viewer Graph, and we see the

F I G U R E 4 . A character set up for lip-synching. All the F I G U R E 5 . A typical facial animation setup in Mirai, with
information pertaining to the character’s speech is shown. all the relevant information at the user’s fingertips.

G A M E D E V E L O P E R DECEMBER 1999 h t t p : / / w w w. g d m a g . c o m
Excellent Very Good Average Below Average
Poor

tainly measures up many of whom have been devotees of


to the renderer the competing high-end 3D modeling/
included in the animation packages, who said they had
first releases of switched to Mirai for character anima-
these competitors, tion production, or would be soon. The
and exceeds the consensus among the faithful was that
quality of many Mirai’s FK/IK capabilities are at least
other packages. one generation ahead of the competi-
Like the best of the tion. When I brought this up with the
renderers, Mirai’s is many representatives of competitors at
multi-threaded. the show, they made it clear they’re
For the profession- watching Mirai.
als, Mirai will be Mirai is a solid, versatile package
adapted to work with cutting-edge character animation
with Renderman capabilities. With its highly evolved
on IRIX and NT by FK/IK, biomechanics, and facial ani-
year’s end. mation capabilities, it’s ready for
You can render mainstream use in games and all real-
to stills, play them time 3D. But to limit it to this niche is
18 back in real time, to underplay its full capability,
and/or compile because the modeling, texturing,
them into a movie. painting, and dynamics properties
F I G U R E 6 . The facial animation results: a high-resolution Mirai includes make it as viable for prerendered use,
version of the character with four morph targets. compositing tools and compatibility with Pixar’s Render-
for layering anima- man targeted for year’s end can only
tion and combin- enhance that. The obstacles facing
hierarchy of movements in the Anima- ing work with live-action output, Mirai’s entry into the production
tion: Script Graph and the Animation titling, and the like. While the post-pro- pipeline appear to have little to do
Timeline. The results appear in Figure 6 duction tools are not nearly as extensive with the product, because it looks able
which shows the smoothed, high-reso- as the modeling tools, and lack the to compete with the best. Building a
lution model of Grunty, together with state-of-the art reflected in its FK/IK, large user base and replacing existing
four morph targets. Mirai’s output tools reflect the fact that production systems will prove the
PARTICLES, RIGID DYNAMICS, GELATIN, this product has earned a place in both biggest barriers. ■
AND ROPE. Mirai supports both rigid
and soft-body dynamics, allowing you
cinematic and real-time 3D production.
CONCLUSION. Nichimen held its first
Acknowledgements
Special thanks to Intergraph Computer
to set up interactions between objects annual Mirai user meeting at Siggraph
Systems for use of a TDZ workstation, and
such as collision detection, wind, grav- ‘99. While I was not surprised to see
to 3Dlabs for their GVX1 card used to test
ity, and so on. The soft-body dynamics several hundred show up, I was sur-
Mirai. No virtual humans were damaged
include Gelatin and Rope simulations. prised at how many were serious game
in the course of preparing this article.
Gelatin is intended to simulate jig- artists (averaging ten years’ experience),
gling, as in the belly of a fat man or
something more exotic/erotic by the
heroine/hero. Rope calculates the
Nichimen’s Mirai:
effect of a tire tethered to a tree
Nichimen Graphics Pros: Cons:
branch, and should be very useful Los Angeles, Calif.
where any two objects or characters 1. “3D operating system” 1. NT users may have diffi-
310-577-0500 interface enables multi- culty with IRIX-inspired
are bound together. The particle sys- http://www.nichimen.com ple windows of the same interface.
tem responds not only to forces and
Price: $6,495. Nichimen type, revealing/hiding 2. Rendering engine as it is
turbulence, but can work into simula- also offers a 90 percent different objects, and now is adequate, but not
tions as any other object. Further, par- educational discount. hot-linking to other mod- world-class.
ticles can be the built-in standard ules such as paint.
System Requirements: 3. Needs larger user base
shapes or any geometric shape.
Windows NT 4.0 or SGI 2. Intelligent IK/FK system before cross-user sup-
OUTPUT: COMPOSITING AND LAYERING IRIX 6.3. Both operating is very easy to use in port and third-party
ANIMATION. If Mirai has a weakness, it’s systems require 128MB final animation. plug-in development get
the renderer. To be fair, however, this RAM, 300MB disk space, 3. Motion capture and fully underway.
weakness in Mirai simply means that 300MB virtual memory, motion layering; sophis-
the built-in renderer does not rival three-button mouse. ticated support for main
Renderman or Mental Ray 2. This Windows requires motion capture systems.
review did not pit Mirai’s renderer 266MHz Pentium II plus
against the new renderers built into 3D OpenGL accelerator.
Studio Max 3 and Maya 2, but it cer-

G A M E D E V E L O P E R DECEMBER 1999 h t t p : / / w w w. g d m a g . c o m
by Jeff Lander GRAPHIC CONTENT

A Clean Start: Washing Away


the Millennium
he millennium is coming to a close at the end of the month. While I

T actually believe that the turn of the century is a year from now, I am
going to fight it no longer. The Y2K hype has washed away any chance
of restraining the feeling that something big is about to happen.
I for my part am going to toast the
new millennium next year, but who
wants to miss out on the big party?
Hype and Demos
hat brings me to something that I
ing up with the technology. A flashy
demo can get them press coverage,
attention from publishers, and that
23

Let’s make it a yearlong celebration.


What the hell, it only happens once
T find annoying in the industry.
News in the high-tech business seems
intangible “hype” from the gaming
public. Some of this forms the back-
every thousand years — I’m going to to surf hype waves constantly. Nothing bone of a healthy development cycle.
enjoy it. gets any press unless it has “never However, when the game engine is
For the doomsdayers, it’s going to before been seen on a game console!” directing the development of the
be a year of hunkering down in their or is “unlike anything ever created in a game, priorities are out of whack.
battery-powered shelters, Most gamers fondly recall
hoarding food, waiting for games that lacked flashy tech-
everything technological to nology yet captured their souls
spiral out of control. Many for hours.
will be nostalgic for the grand When it became public that
old days of mechanical cash QUAKE 3: ARENA would support
registers and supermarket a form of curved surface geom-
checkers who knew the actual etry, suddenly this became the
prices. However, I look for- must-have feature for 3D
ward to the new year. I like all action games. Games were con-
things techie and don’t really sidered to be using “old” tech-
care if they get the date wrong. nology if their engine didn’t
To quote Douglas Adams, I support curved surfaces. This
still think digital watches are a happened regardless of
pretty neat idea. The year 2000 whether the game had envi-
is going to be full of exciting ronments that would benefit
new toys for game developers from curves. Programmers had
to play with. to go back and retrofit their
In fact, if you watch the engines with some kind of
news you’ll know that game parametric surfaces. Level
developers are going to get designers had to go back and
equipment so sophisticated invent places that would bene-
that the government considers fit from some kind of curves.
them weapons. This will be the first computer game!” These quotes general- Didn’t matter what they were or
year that we create games for home ly come from very early views of tech- where they were used, just as long as
machines that can perform more than nology demos or art tests. Any evi- it could be added to the feature list.
two billion operations per second. dence of game play or interactive It should be clear to anyone who has
Some of the press I’ve read said that experience is completely missing. read this column before that I believe
developers aren’t ready to handle that Game companies realize this so a technology can be a strong force in cre-
much power. I don’t know what great deal of effort is spent just com- ating a more compelling game experi-
sources they have been talking to. I
have never met any developers who Whether he’s testing the theories of water displacement while scuba diving or in the
didn’t think they could use more tub with his duckie, you can drop Jeff a line at jeffl@darwin3d.com.
power even on their current projects.

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


GRAPHIC CONTENT

ence. However, technology should not never be the same. What interactive
be turned into a checklist and become demo was shown that elicited these
Yes, I Have a Point
the only determination for a game’s opinions? Some footage of a car dri- want people to realize that technolo-
potential for success. The game is what
is important. The technology is just a
ving through a scene and a duck in a
tub of water.
I gy is just a means for achieving a
result. I hope to discuss techniques that
vehicle to enhance the experience for Sure, it was a beautiful car and a cool make you think about ways you can
the player. duck. However, it was just a display of attack a particular problem. Hopefully,
At E3 this year, I was amazed at the technology and computing power. these ideas can be used on a variety of
Playstation 2’s reception. There we Don’t get me wrong. I am certain the platforms in a variety of ways.
were at a show filled with amazing Playstation 2 will be an amazing con- For example, let’s take the water
games for all platforms. Real-time 3D sole. The hardware looks impressive. effect from the Playstation 2. I think
graphics were represented everywhere. Sony has definitely proved they can one of the reasons it was so impressive
The level of art was unbelievable. foster the creation of great games and is that water is terribly difficult to rep-
Game play and production on every lots of them. They also wanted to build resent in a real-time 3D simulation. It
platform from PC to Game Boy were up momentum for the new console, remains hard even for the visual effects
very impressive. But what was the and I think they succeeded. They rec- community. They have unlimited poly-
“buzz” in the press? The Playstation 2 ognized that technology can be used to gon budgets yet modelers will still
demos. The Playstation 2 is going to build hype and anticipation without groan if you ask for realistic water. In
revolutionize gaming. Games will even having a game. the early days of real-time 3D games
24 (what was that, like three years ago?),
L I S T I N G 1 . Processing the height field. polygons were at a premium. You
could not represent water with lots of
geometry so developers had to create
///////////////////////////////////////////////////////////////////////////////////// animated textures that showed nice
// Procedure: ProcessWater rippling water. It was still pretty life-
// Purpose: Calculate new values for the water height field less. It could not react to what was
///////////////////////////////////////////////////////////////////////////////////// going on around it and sort of just did
void CAguaDlg::ProcessWater() its own thing.
{ However, with all the billions of oper-
//// Local Variables //////////////////////////////////////////////////////////////// ations per second the new millennium
int i,j; will offer to developers, we can do bet-
float value; ter. You probably have seen waterlike
///////////////////////////////////////////////////////////////////////////////////// ripples as Java web site banners. The
for (j = 2; j < WATER_SIZE - 2; j++) effect has been around for years and is
{ quite simple. It does a good job of simu-
for (i = 2; i < WATER_SIZE - 2; i++) lating how ripples will interact with
{ each other and reflect off barriers. Since
// Sample a "circle" around the center point it can be created in Java, it’s obviously
value = (float)( not too complex, either.
READBUFFER(m_ReadBuffer,i-2,j) +
READBUFFER(m_ReadBuffer,i+2,j) +
READBUFFER(m_ReadBuffer,i,j-2) +
READBUFFER(m_ReadBuffer,i,j+2) +
READBUFFER(m_ReadBuffer,i-1,j) +
READBUFFER(m_ReadBuffer,i+1,j) +
READBUFFER(m_ReadBuffer,i,j-1) +
READBUFFER(m_ReadBuffer,i,j+1) +
READBUFFER(m_ReadBuffer,i-1,j-1) +
READBUFFER(m_ReadBuffer,i+1,j-1) +
READBUFFER(m_ReadBuffer,i-1,j+1) +
READBUFFER(m_ReadBuffer,i+1,j+1));
value /= 6.0f; // Average * 2
value -= (float)READBUFFER(m_WriteBuffer,i,j);
// Values for damping from 0.04 - 0.0001 look pretty good
value -= (value * m_DampingFactor);
SETBUFFER(m_WriteBuffer,i,j,(int)value);
}
}
SetDisplay(); // Draw and Swap Buffers F I G U R E 1 . Sampling the water
} field.

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


GRAPHIC CONTENT

In fact, the effect is really just a form of image processing. scheme. This image ends up looking like a bump map. You
Start by creating a double-buffered height array that will hold can see what it looks like to convert the height array into an
the values for the water level at each position in the grid. The image in Figure 2.
key to making this array behave like water is to determine the This creates a pretty good texture that could be used in a
new level at each location. This is done by sampling the sur- 3D environment to simulate a pool or fountain. However, I
rounding locations to determine whether the current location can make it even more interesting by applying some envi-
should be moving up or down. I chose to sample a rough cir- ronment mapping techniques. The gradient of the water lev-
cle around the center point as you can see in Figure 1. els surrounding a location can be used to define “normals”
If I wanted to average the water levels over this region, I like you would find on a 3D mesh. I could then trace these
would add the values together and divide by 12. However, normals to see where they intersect my environment map.
this is where we are going to fake some of the fluid dynam- However, an even faster way is to treat these gradients as off-
ics that make this look like water. Water level actually rises sets into the environment map. At position (u,v) in the
when the surrounding pressure is increased. Think of Height array:
squeezing water in a plastic bottle and watching the water offsetX = height_array(u + 1, v) - height_array(u - 1, v);
in the center rise. So, I can think of the water level at each offsetY = height_array(u, v + 1) - height_array(u, v - 1);
location as representing the water pressure. When the sourceTexel = (u + offsetX, v + offsetY);
water level surrounding a This can be blended with
location is high, that has the the height color to create a
effect of raising the water shaded reflection, as you can
26 level at the center above the see in Figure 3. However, this
surrounding locations. Like- kind of blending is processor-
wise, when the surrounding intensive. But, since I eventu-
level is low, the pressure is ally want to use this in a real-
greatly reduced and the level time 3D environment, why
at the center should drop not make use of my graphics
below the average. So, card?
instead of dividing by 12, I
divide the sum of the sur-
rounding levels by six, dou- Hardware Help
bling the average height.
In order to give the water have a nice 3D graphics
motion, the height of the cur-
rent position in the previous
I card that can blend two tex-
tures together without involv-
frame is subtracted from the ing the CPU. To make this
new calculated height. Now work with my textures, the
everything is in motion. How- environment map calculations
ever, there is no way to reduce F I G U R E 2 . A water image. set the UV coordinates for the
that motion. I can cause the environment map pass. Most
system to lose some energy by of the graphics hardware that
applying a damping factor is currently popular with game
that is multiplied by the players can blend two textures
change in height. That way, I together in a single pass. This
can be sure that the field will means that if your hardware
come to rest if nothing is can handle it, the blending of
changed manually. The code the environment map and
for calculating the water level bump map are rendered at
is in Listing 1. To get things once.
started, I simply write some Once hardware is in charge
values directly into the height of the blend, it’s easy to con-
array and let it run. trol the amount each image
contributes to the final render
by using the alpha values. I
Viewing the Water can also take advantage of the
built-in filtering to smooth
now have a height array out the fact that my maps are
I that animates in a way that
forms ripples and wakes. I can
of relatively low resolution
(say, 128×128).
easily turn that height field I can also use the informa-
into an image and display it tion I now have to make the
by converting the values to F I G U R E 3 . Environment mapping and shading. scene even more immersive.
grayscale or to some color Water consisting of a single

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


GRAPHIC CONTENT

map hack I already respond by rising on the other side.


described. However, Also, the methods I have discussed do
actually using the not account for what is in the water. I
normals to generate am interested in simulating the actual
the map for the flow of the water. It should be able to
reflection makes spill across a terrain as well as form
some sense. Real eddies and standing waves. Also, a
environment maps height field naturally makes effects such
are view-dependent as breaking waves or splashes that flow
and require the nor- over into adjacent cells impossible. To
mals for calculation. get these kinds of interactions, I need to
The next generation make the simulation more complex. I
of graphics cards will have to look towards the field of
coming out this year computational fluid dynamics (CFD).
support cubic envi- Perhaps there are some lessons in that
ronment mapping. field for game developers.
That will enable But that will have to wait until next
effects such as water time. For now, play around with the
F I G U R E 4 . Water made from springs. reflection to be cal- simple image processing method for
28 culated more easily. water. It is easy enough to understand
I saw another and you can quickly experiment with a
flat polygon looks strange no matter effect recently that really adds to the variety of effects. ■
how interesting the animated texture realism of rendering water. Nvidia has
looks. However, I could create the sur- been showing a demonstration of FOR FURTHER INFO
face on the same grid as the height Fresnel Reflections where they create a The image-based water effect has been
array. If my height array is 128×128, I completely variable reflection based on kicking around so long, I don’t know
can create a polygonal grid that is also the viewing angle. It produces a much where it originated. I see it crop up on
128×128. I then use the data in the more accurate reflection image at the Internet forums every couple of months.
height array to displace the vertices cost of extra CPU calculations. They A quick pass over the search engines
in the water mesh. Now, when the may have some information on their yielded quite a few links:
water ripples, the texture not only web site about the technique by now.
changes, but the actual surface of the Considering the actual physics of • http://www.remedy.fi/company/
water moves also. This all combines to the water itself, the method I described cool_stuff_data/stone1.shtml
create a very realistic looking water here is completely inaccurate. There is A Java-based applet implementing
simulation. no physical simulation of water hap- something similar to what I described.
Best of all, there are built-in perfor- pening at all. Like many game pro-
mance adjustments to make sure it gramming methods, tricks are used to • http://freespace.virgin.net/
runs well on all sorts of systems. If the achieve the desired look without the hugo.elias/graphics/x_water.htm
player doesn’t have fast 3D hardware complex calculations. Hugo Elias has a little bit of every-
you can use a lower resolution for the These days, however, it’s worth con- thing on his site. The section describ-
displacement mesh. If the CPU is older, sidering designating more CPU power ing the water effect is pretty thorough,
lower the resolution in the original for methods that increase the dynamic complete with a sample application.
height array. You can also turn off the realism in the scene. When I wrote the
environment map if fill rate is an issue. column on mass-and-spring systems Also check out:
If the player has a really nice system, for cloth animation (“Devil in the • Fournier, Alain, and William Reeves.
all features are set at the highest resolu- Blue Faceted Dress: Real-Time Cloth “A Simple Model of Ocean Waves.”
tion. This kind of detail adjustment is Animation,” May 1999), it may have Siggraph 1986, Vol. 20, No. 4, pp.
critical as the number of possible user occurred to you that a spring system 75–84.
configurations increases. could be made to behave like water. I didn’t talk about generating wave
Each element in the mesh could be motion via simple trigonometric func-
restricted to move only up and down tions. This paper examines this in
Improving the Accuracy and each element is connected to its depth.
neighbors by springs. You can see this
f I generated actual normals, I could in Figure 4. • Kass, Michael, and Gavin Miller.
I improve the look a bit. For one
thing, I could simulate the light diffrac-
However, even this method differs
from the way actual water performs in
“Rapid, Stable, Fluid Dynamics for
Computer Graphics,” Siggraph 1990,
tion through water. I could then create several ways. One key difference is the Vol. 24, No. 4, pp. 49–55.
another environment map represent- way true water behaves when com- If you want to read ahead and learn
ing the reflection, which is underneath pressed. The total volume of the water about real-time methods for CFD,
the water. I’m not sure that it would should be preserved. If I compress the check this out.
look any better than the environment water on one side, the level should

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


by Paul Steed A R T I S T ’ S V I E W

No Pain, No Gain: Implementing New


Art Technology in QUAKE 3: ARENA
hen beginning a new project, an immediate question that comes

W
my art tools or stay where I am?”
to developers’ minds is, “Are we going to use the same technolo-
gy or an entirely a new game engine?” A question that pops up
for the artist in particular is, “Do I upgrade to the next version of

While the answer to the first question


often varies, the answer to the second
mated in Alias|Wavefront’s Power Ani-
mator. The reason I went with Alias is
because fellow artist and id co-owner
the head and upper body, and would
give me more flexibility to create bet-
ter animations at a higher polygon-
31

shouldn’t. Kevin Cloud had been using it since per-model budget. This system also
Spending more than a year or two QUAKE and already integrated it into enabled more realistic and sponta-
working on a game means that the the production pipeline. Recombined neous animations, since the lower and
tools you started with have invariably by Carmack’s wizardry, the game upper body animations were complete-
evolved into their next version or iter- engine animated characters in the ly detached and unrelated unless
ation by the time you have finished. game via vertex deformation using a explicitly specified otherwise.
Unless you’ve switched mid-project, string of .TRI files exported from Alias For me, the new animation system
you have to take the time at the end of as basic, linearly interpolated key- meant I could consolidate the anima-
a project to learn the new tools — that frames. Each animation cycle — walks, tions for a single character into one
is, if you’re given the time to train and runs, deaths, and so on — were stored file. This in essence rendered the ani-
the upgrade of the product itself. as separate files that could be accessed mation file for a character in Q3A a
and re-exported to .TRI files whenever “folder” in which sequences are like
we wanted. Of course, the immediate pages that the engine references when
Changes from Q2 to Q3A problem that comes to mind when animating the game’s characters.
creating models and animations this Making changes to the model became a
hen we completed QUAKE 2 at way is that when any changes are lot easier, to say the least. Another
W the end of 1997, we started in
on our next project, QUAKE 3: ARENA.
made, a plethora
of files must be
advantage of keep-
ing the animations
For id, this new project introduced a tweaked and re- in one file was that
dramatic departure from the usual first- exported — very it allowed me to
person shooter formula. Instead of hav- painful, trust me. utilize a great fea-
ing players opposing a horde of blood- Since the ques- ture of Character
thirsty monsters while struggling to tion of utilizing Studio: sharing .BIP
figure out puzzles and find keys that new technology for files. Character
would allow them to escape a a new project is Studio’s ability to
labyrinthine maze, QUAKE 3: ARENA moot at id stream different
would be all about deathmatch. Gone (Carmack always animations togeth-
was any sort of suspense or story-dri- retools or recreates er via its Flow
ven tension. Instead, the game was the game engine for Manager was one of
about combat and competition — play- new projects), it came as no surprise the primary reasons I chose Max after
ers pitted against other human oppo- when John announced the implemen- Q2 instead of Maya, Softimage, Light-
nents or complex, artificially intelli- tation of a new animation system for wave, Nichimen, or any other program.
gent bots via a LAN or the Internet. Q3A. The new “tag” system would save Sharing animation data is so important
During QUAKE 2, I modeled in storage space by using a single triangle because, in a crunch, I can simply plug
Kinetix’s 3D Studio R4 (DOS) and ani- to represent certain body parts such as one character’s animation data into

Paul Steed is a Guy. He likes Guy things: working out, playing pool, drinking beer, and trying hard to stay out of trouble. He happens to
make art for computer games and occasionally convinces learned editors he’s a competent enough writer to contribute to their esteemed
publications. Write him at psteed@idsoftware.com if you’re bored. Contrary to popular belief, there’s no such thing as too much e-mail.

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


ARTIST’S VIEW

another and make tweaks instead of something like this:


having to animate 40 characters create the character,
entirely from scratch. This worked assign the Physique
only because the sequence of all the modifier to the mesh,
character’s animations had to be the animate it in a specific
same (for example, three death anima- order of animations
tions, then gestures, then walks, then (both body parts
runs, and so on). The length and style together, then upper
of animations could vary from charac- only, then lower), cre-
ter to character, but the basic order ate a small right trian-
had to remain the same due to the gle with the point fac-
new animation code. ing forward, name it
TAG_TORSO, link it F I G U R E 2 . To combat characters sliding around in
(again by assigning place while turning, a “shuffle” was added to give them
Match Tag “A” with Tag “B” Physique to it) to the something else to do with their feet.
point where the biped
n QUAKE 2, each frame of animation spine rotates, and save
I I exported served as a keyframe for
the engine to interpolate the position
it. Once I had the file saved I’d delete
the upper body and export the lower
would be preceded with “L_.” We also
determined that the reason the upper
32 of the mesh’s vertices linearly to the body only as a .3DS file (the engine body still appeared stiff was that peo-
next saved animation frame. Although couldn’t work with the native Max file ple naturally lead turns with their
the frame rate was only 10 frames per format), keeping the tag as a represen- heads. So we detached the head,
second, some characters had up to 500 tation of the upper body. (It was linked necessitating a third naming conven-
frames of animation to support — not to the skeleton/biped, which the tion (“H_”), as well as a new tag
only, say, firing a weapon, but firing a exporter ignored.) I’d then do the same (TAG_HEAD). To counter the problem
weapon while standing and firing a for the upper body. of sliding in place while turning, we
weapon while crouched. There were no This sucked — mainly because of added a “shuffle” where the character
animations of characters firing while having to remember which body part would pick up his feet and turn pro-
running or moving, since I couldn’t to delete, and the fact that after doing it grammatically (Figure 2).
anticipate where in their stride they for a couple of characters the poor This was really no big deal as all ani-
would be when attacking. Of course, artist’s mind can get confused. Also, mations have to be done “in place” for
this quickly reveals the limitations of once we got the model to show up in bounding-box consideration. (The
the vertex deformation scheme as the the game world by converting the .3DS bounding volume of a model created by
character slides all over the place while files to a game-digestible format, the its aggregate vertices equals the area in
firing on the move (hence the term animations weren’t quite right. While it XYZ space that registers a hit when fired
“skating”), because his body is locked was cool to move the mouse and see upon.) Another change we decided to
in the stationary “firing-while-stand- the upper torso move with the “free make was to export the models as ASCII
ing” pose. look” motion of the mouse, the upper files instead of .3DS. From the huge
Hierarchically, implementing the tag body was stiff. Once you passed a amount of information contained in an
system (see Figure 1) meant that the threshold of 30 degrees or so, the feet ASCII file (or in Max’s case, .ASE), the
lower body would be the parent and would stay still while the body rotated programmers could cull all the informa-
the upper body the child (since the in place. This rotation (like the sliding tion they wanted about normals, UVWs,
lower body incorporates locomotion). effect in our previous system) broke the and animation data.
Getting a character into the game went illusion of the character having contact This worked much better. The head
with the ground, exhibit- detachment as yet another layer in the
ing any sense of weight, tag hierarchy made the motion of the
and it was generally not a character’s upper torso correspond
good thing. So we made almost eerily with the movement of the
some changes. mouse. As the mouse moved, the head
Instead of deleting any- would move just barely, and then the
thing, we just kept every- torso, and then the character would
thing in one file and raise and lower his feet as he turned in
made sure the different place to look where the mouse was
body parts adhered to a telling him to look. Of course, the draw-
strict naming conven- back to this was that facial expressions
tion. Any file associated and any sort of hair animations went
with the upper body out the window. Still, the in-game ani-
would be preceded with a mations didn’t quite jibe with how I
F I G U R E 1 . Mesh, skin, and Character Studio biped “U_” (U_TORSO, U_ARM, wanted them to look and definitely dif-
with proper tag placement. and so on). Files associat- fered from an orientation standpoint
ed with the lower body from their Max file counterparts.

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


Jane! Stop This Crazy Thing!
fter some research, it became clear
A to me why the animations were
off — it was the stupid tag. I had been
linking the TAG_TORSO to the torso of
the skeleton or biped (first spine link).
This was wrong. I was supposed to be
linking it to the pelvis. (I was confused
— sue me.) I also misunderstood the
fact that the base of the right triangle
of the tag was the exact point at which
the rotation needed to occur (not the
overall area of the triangle as I had
thought).
After I got that straight, things looked F I G U R E 3 . Hours of consternation over inappropriate shearing could have been
better, but if the pelvis rotated at all or avoided by turning off the animation tags’ Inherit Scale at the start.
was otherwise moving inappropriately,
the torso of course did its animations
from whatever position the sometimes forward. Soon I became frustrated, how- menting and exchanging of e-mails and 33
errant tag told it to. Since the tag repre- ever, because the tag would do this Max files galore, Jeff Yates at Kinetix
sents the upper body’s position relative weird shearing thing and the triangle asked me if I had unchecked a particular
to its predefined default position (a sin- would try to skew itself in a seemingly option in the Hierarchy options of the
gle frame in the animation set), rotating random fashion. mesh. D’ohh. How the heck was I sup-
the tag itself during the animations This...drove...me...nuts. posed to know that? (This series of
would rotate the base at which the After all kinds of kludgy, inefficient, check boxes is in the Inherit Scale sub-
upper body was attached. So, happy mickey-mouse attempts at band-aiding menu of Link Info.) Once I turned the
with this second level of “after market” the problem, I resorted to bugging Inherit Scale off for the tag (Figure 3),
animation capability, I went and started Character Studio’s developers and ask- the shearing went away and I was
rotating the tag so it would always face ing them for help. After much experi- happy...for a while.
ARTIST’S VIEW

Then I noticed efforts didn’t share


some other prob- the same geometry
lems with the torso for both instances
moving around of seeing weapons
and, clever guy that was...well, I don’t
I am, I thought know.
about the process The only prob-
some more. You see, lem with this new
the conversion method of seeing
process of .ASE to the weapons was
.MD3 (game format) F I G U R E 4 . Q UAKE 2 shotgun (left) vs. Q UAKE 3 shotgun: animated hands and field- that it added yet
happened via strict of-view-compensated geometry give way to no hands and more attention paid to another shackle to
adherence to nam- the weapon’s business end. the weapon
ing convention. design con-
This basically straints. The field
allowed me to have all kinds of props Carmack wanted me to use the same of view while playing the game is at
with the file and, of course, made the animations for all weapons (one default least 90 degrees (it can be raised if
converter ignore them along with the position, one firing, and one weapon- desired). While it may not quickly be
biped geometry (among other things) switch). I balked, saying I wanted to apparent why this is a problem, the dif-
34 through “wrong” naming conven- have different positions for each ficulty lies in how much of the weapon
tions. Since the tag at the torso was weapon so the design wouldn’t be dic- you actually see in your view: only the
essentially doubled (according to tated by a single grip. Also, how a player end of the barrel. In QUAKE 2 I used
Carmack) as the code separated the held a weapon could be noticed from a animated hands and squished, unique
upper and lower body, why couldn’t I distance and be an additional cue for geometry to make the weapons in view
double the pesky tag, name it some- ordinance recognition. Well, I didn’t get look interesting and, more important-
thing besides TAG and use it as refer- my way but I did get one extra default ly, to simulate the right perspective.
ence? This way I could see why the position for a melee weapon (the So, using mostly artist/owner Adrian
upper body wasn’t seating properly on Gauntlet). This sort of compromise Carmack’s cool designs, I went about
the lower body. occurs all the time when you pit tech- making weapon models that were equal-
So that’s what I did and, lo and nologically-constraining frugality (keep- ly appealing in both the normal view
behold, there were some discrepancies ing the memory requirements low and the in-use view. Do I make it cen-
(mainly due to the mostly goofy IK begets a faster-running game, obviously) tered, held to the right, the left, what?
solution Character Studio uses for the vs. artistic expression. In the end, I settled on a slightly-to-the-
upper body). Utilizing the oft-unsung Another artistic hurdle was the fact right position that corresponded to the
“snap to vertex” power of Max’s Grid that my programming leader wanted to animation of the characters when they
and Snap Setting dialog box , I adjusted implement the tag system in the changed weapons (see Figure 5).
the position of the tag and made sure it weapon as well. This would save even I solved the tag issue by first building
matched my reference tag at the base more space and do what we hadn’t a weapon that I positioned in the char-
of their respective right triangles. done in Q1 or Q2: use the same model acter’s hands with a comfortably
for both the “in-use” view of the aggressive stance, settling on a semi-
weapon and the weapon you see in the sniper position. I took this first weapon
This Is My Weapon, This Is My Gun... world. The reason the previous two and embedded a copy of the tag I used
for the torso and the head into the
aving mastered the basic weapon. The reason for the tag
H mechanics of the new tag sys-
tem it was time (naturally) to make
attachment was so that I could link
the weapon to the character’s right
some more changes. People com- hand (having positioned it correct-
plained about the difficulty of see- ly). That way, after I had complet-
ing which weapon they held in Q2. ed the character’s animations and
Mod authors quickly rectified this was ready to export the file, I could
by adding customized code that create a snapshot of the weapon,
allowed players to see their delete all vertices except for the tri-
weapons during deathmatch. In angle, rename it TAG_WEAPON,
Q3A, we decided to go ahead and assign Physique to it, link it to the
implement the multiple weapons, right hand, and finally delete the
but added a “weapon-switch” ani- original weapon (or keep it under a
mation. This departed from garbage name for reference).
QUAKE’s original instant weapon- As far as the commonly held grip
switch that the diehard fanatics F I G U R E 5 . The final design for Q3A’s weapons dictating the design of the weapon,
were clamoring for even during Q2 also incorporated the animation tag system. I think we ended up with a pretty
(Figure 4). varied arsenal despite the limita-

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


tion. Once I completed a weapon I just action. Luckily, he’s the type of guy benefit of your opponents. Why not
placed it over the top of my archetypal who, once shown something, can be give them a show?
first weapon (aligning the grips so they convinced to bend a little for art’s sake.
matched), deleted all the first weapon’s A good example of this was my hell-
vertices except for the tag again, and bent desire to have swimming anima- The Moral of the Story
saved the new weapon off with a tag in tions in the game. Why do we need
the exact same position as the one in swimming? he’d ask. Because it’ll look he character animation technolo-
the first weapon. Thus, when I went
through the process of animating and
cool, was my reply. Sure enough,
Carmack — doubtful yet accommodat-
T gy was but one of several changes
we made for the art in QUAKE 3: ARENA.
exporting weapons, they all had their ing — put the swim animation in and In fact, even though it’s a QUAKE prod-
tags in the right place. everyone went “Ahhh...” or “Ooooh...” uct, Q3A’s code shares similarities with
He became a believer. its esteemed predecessors strictly by
Another case was the jump anima- virtue that it’s 3D and from id Soft-
And What About Style? tions. I was given one paltry frame to ware. Carmack was continually refin-
represent a recovery from jumping for- ing and optimizing the technology in
nough about the mundane and ward or backward (two separate anima- all aspects of the game up until the
E tedious assimilation/accommoda-
tion of the technology into the work-
tions). Characters in our game jump the
equivalent of 20 feet in the air — cer-
very end of development.
As for my part in the implementation
flow, what did I actually do with it? tainly they needed to be able to recover of the animation changes, more lucid
Now that’s a great question! I made from that kind of air time. So I used up communication with the programmer 35
some pretty cool models (textured by five to ten frames for recovery, and it on some issues would saved me some
the incomparable Kenneth Scott) with turned out much better. time and trouble. But it took trial and
some pretty cool animations...and I had And since there were two kinds of error — many, many iterations and
to fight for them the entire time. Of jumps, I decided to differentiate the more than a smidgen of perseverance —
course, Carmack’s minimalist philoso- backward one by making the character to make it work. That’s what integrating
phy towards things such as vertices, do a back flip as he jumped. Who cares new technology is about: sticking it out
faces, texture map size, and total frame that your view doesn’t change during and always trying to find a better solu-
counts was at direct odds with my the flip? This is a first-person game, tion to the problem at hand. That’s one
grandiose plans to create some high- remember? Everything about your char- of the things that makes this type of
flying, John Woo–style, highly kinetic acter is done for the enjoyment and work so challenging and rewarding. ■
by Omid Rahmat H A R D T A R G E T S

The Integrated PC: More Consumers


with Fewer Choices
t’s always nice to note the surge in demand that accompanies the latest 3D

I graphics or audio product release. It’s a sign of the health of high-end technolo-
gies, and consumers’ insatiable appetite for a better multimedia experience.
Fashionable technologies also make it difficult for game developers to predict
the amount of devotion they should
lavish on “the next great thing.” To
add to developers’ woes, there is the
(GMCH). It’s a long moniker, but in
short, the graphics portion of the 810
chipset has integrated hardware motion
Integration’s Impact on the Market
ntel isn’t the only game in town, but
37

current growth in low-cost PC systems,


in which graphics and audio functions
compensation for software DVD video,
as well as a digital video output port
I its roadmap and gentle guidance, if
you will, determine which way the PC
are integrated into chipsets in the enabling connections to a traditional industry goes. NeoMagic, a maker of
motherboard, and multimedia process- television or flat-panel display. There is graphics chips for laptops, has been
es are passed off to more powerful also an integrated Audio creating integrated parts
CPUs that are left idling until software Codec 97 (AC-97) con- for some time, but in the
catches up. The question is, are game troller that allows software desktop space there are
developers reducing their total avail- audio and modem func- Mainstream PC 1 companies such as Silicon
able market (TAM) by not targeting the tionality using the host $1,000–1,200 Integrated Systems (SiS),
base level of performance that these CPU. There’s a lot more Intel 810e chipset Via, and a host of graphics
systems offer? electronics than that, but 810e DC133 chip vendors who all have
suffice it to say that there the same idea for the low-
is a measure of 2D, 3D, cost PC market. There are
Putting It All Together and audio functionality no hard and fast rules
built into the chipset that Value PC 3 about what integration
ntel is the big cheese of integration. helps negate the need for $800–999 means though, and the
I This year, the company formally
announced that it was getting out of the
extra peripherals — or so
the thinking goes.
Intel 810e chipset
810e DC133
breadth of offerings will
probably end up being a
discrete graphics chip business. In other The 810e is aimed at the very confusing jumble of
words, it wasn’t going to make separate market for Pentium II and features. For instance, the
graphics components. Some attributed Pentium III chips, while Value PC 2 SiS 620 chipset doesn’t
the move to the lackluster performance the original 810 is aimed at $600–799 have all the features of the
and market share of the company’s 740 the Celeron and Pentium Intel 810e chipset 810 (such as AC-97 sup-
810e DC100
graphics chip. Intel has never been shy II markets. The basic differ- port) and it is primarily
to abandon or change tactics, products, ences between the various appearing in very low-cost
and initiatives when it sees its core busi- flavors of the 810 are the Value PC 1 corporate PCs. What may
ness of selling CPUs threatened. An amount of cache memory < $600 be interesting down the
integrated PC is one in which the graph- they allow, as well the way Intel 810L road is something such as
ics and audio components can be they interface to the PCI the Aladdin TNT2, a col-
thrown into the logic chips that control and IDE buses. As you go laborative effort between
F I G U R E 1 : Intel’s
the flow of data from the CPU to memo- higher up the food chain, overview of how its Acer Laboratories Inc.
ry and various controllers. The result is the graphics improve, the integrated products (ALi) and Nvidia. Intel
fewer components required, and more PCI slots are more numer- fit in to the PC mar- used the core graphics
money left on the table for the CPU. ous, and the bus perfor- ket, by price segment. technologies of its 740
The mainstay of integration for Intel mance gets faster. chipset, but Nvidia is look-
is the 810 Whitney chipset and its latest
update, the 810e. At the heart of the Omid Rahmat is the proprietor of Doodah Marketing, a digital media consulting
810 chipset is a memory controller with firm. He also publishes research and market analysis notes on his web site at
built-in graphics technology, called the http://www.smokezine.com. He can be reached via e-mail at omid@compuserve.com.
82810 graphics memory controller hub

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


HARD TARGETS

F I G U R E 2 . Shipments of integrated parts in desktop PCs in millions of units F I G U R E 3 . Breakdown of integrated


(source: Mercury Research). systems deployed by market seg-
ment (source: Mercury Research).
80
70 73.6

60
60.7 Notebook
unit shipment in millions

50 15%

40 43.5
Business
30 50%
Consumer
20 35%
18.5
10
6.8
0
1998 1999 2000 2001 2002

38 ing to bring an altogether different So Where Does That Leave the Game CPU cycles and are sometimes the only
level of performance to the low-cost PC Developer? justification for a powerful new system.
market. And they aren’t the only ones. The low-end users in the PC market, on
Intel’s Whitney chipset holds about ntegrated PCs are not going away. the other hand, are more likely to be
80 percent of the market, according to
Dean McCarron, principal analyst at
I They are an expanding market and a
very hot growth area for the PC indus-
attracted by a bundle’s value because of
their price sensitivity. PC makers are
Mercury Research, and provides graph- try. By ignoring this market, developers beginning to realize that they need to
ics performance on par with a Matrox are reducing their TAM, which may be a sell their systems on more than just
G200, or a little better than an ATI Rage conscious creative choice. After all, MIPS and hardware configurations. In
Pro. The market for these products is some may not be happy compromising short, there is a growing opportunity
still too young to judge the impact of the quality of their game graphics and offered by integrated systems, but it
integrated technologies, but Figures 1 audio. In time, it will certainly be a sup- comes at the price of a step back, cer-
and 2 may put things in perspective. port issue for game developers because tainly in graphics technology, and to
Obviously, the data suggest that inte- games are getting more sophisticated in some extent in audio technology, too.
grated systems are going to take a sig- their technology, not less so. There is an opportunity for the game
nificant slice of the PC market. In the However, there is a new demographic industry to increase its TAM, develop
consumer space, the primary market is entering the market as a result of these new OEM relationships, and bring new
for Internet-ready, low-cost PCs. The lower-cost integrated machine sales, the consumers into its fold. What remains
good news is that these types of PCs are kind of user that can be lumped under to be done is to acquire a clear under-
attracting first-time PC buyers, very the heading of mass market. The game standing of this demographic. That
similar to the way the iMac has also industry doesn’t quite understand the may not come for some time.
drawn in a new crowd of computer mass market yet, a fact quite evident by I am reminded of early days of the
users. These newcomers are going to the seemingly endless parade of DEER multimedia PC business, when hard-
want to do everything else their com- HUNTER knockoffs. It will be a while ware and software vendors misunder-
puters offer, including play games. before the game industry figures out stood the needs of a market in which
There is another dynamic of the inte- how to target a user base that is highly consumers were grabbing CD-ROM
grated PC market that game developers motivated by the Internet, and less san- upgrade kits at $500 a pop, and bring-
might find interesting. According to guine about traditional gaming. Further- ing home $2,000 PCs by the cartload.
McCarron, more audio add-ons are more, this is a demographic that is The result was a mountain of useless
going into the consumer market than being weaned on low-cost hardware and multimedia CDs, and a crash in the
PCs sold. These add-ons are primarily budget software. price of some multimedia peripherals.
high-end audio upgrades and 3D posi- There is also a unique bundling The hardware and software industries
tional audio products such as Creative opportunity for the game industry. The need to do a better job with this new
Labs’ SoundBlaster Live! card. How- low-cost PC is going out with fewer batch of consumers, and it all starts
ever, this is not yet happening on the new software titles in some cases, but online. AOL is using Compuserve
graphics side, though it may still be too often with a greater number of older memberships and $400 rebates on con-
early to tell. On 810 motherboards you titles. As such, it may be an ideal mar- sumer PCs to attract new users, and it
can’t even get a graphics upgrade, and ket for resurrecting the overall OEM seems to be working. The game indus-
there is every indication that PC mak- market for games. In the past, I have try needs to come up with new busi-
ers are finding it easier to upgrade their addressed the OEM opportunities asso- ness models to deal with the mass mar-
integrated-systems buyer to better ciated with the high end of the PC ket, or it may just end up being a
quality audio than graphics. market, where games eat up the most passing fancy as well. ■

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


hile HALF-LIFE has seen Yes, we had some cool monsters, but if you didn’t fight

resounding critical and financial them exactly the way we had planned they did really stupid

success (winning over 50 Game of things. We had some cool levels, but they didn’t fit together

the Year awards and selling more than a million copies world- well. We had some cool technology, but for the most part it

wide), few people realize that it didn’t start out a winner — in only showed up in one or two spots. So you couldn’t play the

fact, Valve’s first attempt at the game had to be scrapped. It game all the way through, none of the levels tied together

was mediocre at best, well, and there were

and suffered from the serious technical prob-

typical problems that lems with most of the

plague far too many game. There were some


41
games. This article is

about the teamwork –

or “Cabal process” —
THE CABAL really wonderful indi-

vidual pieces, but as a

whole the game just

that turned our initial, Valve’s Design Process wasn’t working.

less than impressive For Creating HALF-LIFE The obvious answer

version of HALF-LIFE was to work a few more

into a groundbreaking
B y K e n B i r d w e l l months, gloss over the

success. worst of the problems

and ship what we had.

Paving the Way with Good Intentions For companies who live and die at the whim of their pub-

ur initial target release date was November 1997 — a lishers, this is usually the route taken — with predictable

O year before the game actually shipped. This date results. Since Valve is fairly independent, and since none of

would have given Valve a year to develop what was in essence us believed that we were getting any closer to making a

a fancy QUAKE TC (Total Conversion — all new artwork, all game we could all like, we couldn’t see how a month or two

new levels). By late September 1997, nearing the end of our would make any significant difference. At this point we had

original schedule, a whole lot of work had been done, but to make a very painful decision — we decided to start over

there was one major problem — the game wasn’t any fun. and rework every stage of the game.

Ken is senior developer at Valve and has contributed to a wide range of projects in the last 15 years, most recently on animation and AI for
HALF-LIFE. Previous projects include satellite networking, cryptography, 3D prosthetic design tools, 3D surface reconstruction, and in-circuit
emulators. Oddly enough, Ken dropped out of studying EE to pursue a fine arts degree at The Evergreen State College, which he considers far
more relevant to creative thinking than any silly differential equations class. You can reach him at kenb@valvesoftware.com.

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


HALF-LIFE LESSONS

Fortunately, the game had some side the player’s control. If the players their name. Our basic theory was that if
things in it we liked. We set up a small are in the mood for more action, all the world ignores the player, the player
group of people to take every silly idea, they need to do is move forward and won’t care about the world.
every cool trick, everything interesting within a few seconds something will A final theory was that the players
that existed in any kind of working happen. should always blame themselves for
state somewhere in the game and put The second theory we came up failure. If the
them into a single prototype level. with is the theory of player game kills
When the level started to get fun, they acknowledgment. This means them off with
added more variations of the fun that the game world must no warning,
things. If an idea wasn’t fun, they cut acknowledge players every time then players
blame the
game and
cabal \ka-’bal\ :to unite in a small party; to promote start to dislike
private views and interests by intrigue; to intrigue; to plot. it. But if the
game hints
it. When they needed a software fea- they perform an action. For exam- that danger is
ture, they simplified it until it was ple, if they shoot their gun, the imminent,
something that could be written in a world needs to acknowledge it show players a
few days. They all worked together on with something more permanent way out and
42 this one small level for a month while than just a sound — there should Conceptual artwork for a they die any-
the rest of us basically did nothing. be some visual evidence that ceiling-mounted monster way, then
When they were done, we all played it. they’ve just fired their gun. We that was dangerous to both they’ll consid-
It was great. It was Die Hard meets Evil would have liked to put a hole the player and the player’s er it a failure
Dead. It was the vision. It was going to through the wall, but for techni- enemies. on their part;
be our game. It was huge and scary and cal and game flow reasons we they’ve let the
going to take a lot of work, but after really couldn’t do it. Instead we game down
seeing it we weren’t and they need to try a little harder.
going to be satisfied When they succeed, and the game
with anything less. rewards them with a little treat —
All that we needed to scripted sequence, special effect, and so
do was to create on — they’ll feel good about them-
about 100 more lev- selves and about the game.
els that
were just as fun. No
problem. Secret Societies
hroughout the first 11 months of
So, Tell Me About T the project we searched for an offi-
Your Childhood cial “game designer,” — someone who
could show up and make it all come
he second step in together. We looked at hundreds of
T the pre-cabal
process was to ana-
resumes and interviewed a lot of
promising applicants, but no one we
lyze what was fun Many of our scripted sequences were designed to give the looked at had enough of the qualities
about our prototype player game-play clues as well as provide moments of we wanted for us to seriously consider
level. The first theory sheer terror. them the overall godlike “game design-
we came up with was er” that we were told we needed. In the
the theory of “experi- end, we came to the conclusion that
ential density” — the amount of decided on “decals” — bullet nicks and this ideal person didn’t actually exist.
“things” that happen to and are done explosion marks on all the surfaces, Instead, we would create our own ideal
by the player per unit of time and area which serve as permanent records of by combining the strengths of a cross
of a map. Our goal was that, once the action. This also means that if the section of the company, putting them
active, the player never had to wait too player pushes on something that together in a group we called the
long before the next stimulus, be it should be pushable, the object “Cabal.”
monster, special effect, plot point, shouldn’t ignore them, it should move. The goal of this group was to create
action sequence, and so on. Since we If they whack on something with their a complete document that detailed all
couldn’t really bring all these experi- crowbar that looks like it should break, the levels and described major mon-
ences to the player (a relentless series it had better break. If they walk into a ster interactions, special effects, plot
of them would just get tedious), all room with other characters, those char- devices, and design standards. The
content is distance based, not time acters should acknowledge them by at Cabal was to work out when and how
based, and no activities are started out- least looking at them, if not calling out every monster, weapon, and NPC was

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


HALF-LIFE LESSONS

group would find themselves sitting

Tips For a Successful Cabal through two or three meetings with no


ideas at all, then suddenly see a direc-
tion that no one else saw and be the
• Include an expert from every func- Maybe they’ll like it next month. main contributor for the remainder of
tional area (programming, art, and so on). • Only plan for technical things that the week. Why this happened was
Arguing over an issue that no one at the either already work, or that you’re sure unclear, but it became important to
meeting actually understands is a sure will work within a reasonable time before have at least five or six people in each
way to waste everyone’s time. play testing. Don’t count on anything that meeting so that the meetings wouldn’t
• Write down everything. won’t be ready until just before you ship. stall out from lack of input.
Brainstorming is fine during the meet- Yes, it’s fun to dream about cool technol- The Cabal met four days a week, six
ings, but unless it’s all written down, your ogy, but there’s no point in designing the hours a day for five months straight,
best ideas will be forgotten within days. game around elements that may never be and then on and off until the end of
The goal is to end up with a document finished, or not polished enough to ship. the project. The meetings were only six
that captures as much as is reasonable If it’s not going to happen, get rid of it, hours a day, because after six hours
about your game, and more importantly the earlier the better. everyone was emotionally and physi-
answers questions about what people • Avoid all one-shot technical ele- cally drained. The people involved
need to work on. ments. Anything that requires engineer- weren’t really able to do any other
• Not all ideas are good. These include ing work must be used in more than one work during that time, other than read
44 yours. If you have a “great idea” that spot in the game. Engineers are really e-mail and write up their daily notes.
everyone thinks is stupid, don’t push it. slow. It takes them months to get any- The initial Cabal group consisted of
The others will also have stupid ideas. If thing done. If what they do is only used three engineers, a level designer, a
you’re pushy about yours, they’ll be pushy once, it’s a waste of a limited resource. writer, and an animator. This repre-
about theirs and you’re just going to get Their main goal should always be to cre- sented all the major groups at Valve
into an impasse. If the idea is really good, ate tools and features that can be used and all aspects of the project and was
maybe it’s just in the wrong place. Bring it everywhere. If they can spend a month initially weighted towards people with
up later. You’re going to be designing and make everyone more productive, the most product experience (though
about 30 hours of game play; if you really then it’s a win. If they spend a week for not necessarily game experience). The
want it in it’ll probably fit somewhere else. ten seconds of game play, it’s a waste. Cabal consisted only of people that
had actual shipping components in the
to be introduced, what skills we ster” for quite some time. Other areas game; there were no dedicated design-
expected the player to have, and how were created without a specific spot in ers. Every member of the Cabal was
we were going to teach them those the game. These designs would sit in someone with the responsibility of
skills. As daunting as that sounds, this limbo for a few weeks until either it actually doing the work that their
is exactly what we did. We consider became clear that they weren’t going to design specified, or at least had the
the Cabal process to have been wildly fit, or that perhaps they would make a ability to do it if need be.
successful, and one of the key reasons good segue between two other areas. The first few months of the Cabal
for HALF-LIFE’s success. Other portions were created to high- process were somewhat nerve wracking
Cabal meetings were semi-structured light a specific technology feature, or for those outside the process. It wasn’t
brainstorming sessions usually dedicat- simply to give the game a reason to clear that egos could be suppressed
ed to a specific area of the game. During include a cool piece of geometry that enough to get anything done, or that a
each session, one person was assigned had been created during a pre-cabal vision of the game filtered through a
the job of recording and writing up the experiment. Oddly enough, when try- large number of people would be any-
design, and another was assigned to ing to match these artificial constants, thing other than bland. As it turned
draw pictures explaining the layout and we would often create our best work. out, the opposite was true; the people
other details. A Cabal session would typ- We eventually got into the habit of involved were tired of working in isola-
ically consist of a few days coming up placing a number of unrelated require- tion and were energized by the collabo-
with a mix of high level concepts for the ments into each area then doing our rative process, and the resulting
given area, as well as specific events that best to come up with a rational way to designs had a consistent level of polish
sounded fun. fit them together. Often, by the end of and depth that hadn’t been seen
Once enough ideas were generated, the session we would find that the ini- before.
they would be reorganized into a rough tial idea wasn’t nearly as interesting as Internally, once the success of the
storyline and chronology. Once this all the pieces we built around it, and Cabal process was obvious, mini-Cabals
was all worked out, a description and the structure we had designed to were formed to come up with answers
rough sketch of the geometry would be explain it actually worked better with- to a variety of design problems. These
created and labeled with all the key out that initial idea. mini-Cabals would typically include
events and where they should take During Cabal sessions, everyone con- people most effected by the decision,
place. We knew what we wanted for tributed but we found that not every- as well as try to include people com-
some areas of the game from the very one contributed everyday. The meet- pletely outside the problem being
start, but other areas stayed as “out- ings were grueling, and we came to addressed in order to keep a fresh per-
doors” or “something with a big mon- almost expect that about half of the spective on things. We also kept mem-

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


The team explored a variety of visual
metaphors that resulted in some very
unique and effective opponents.

bership in the initial Cabal somewhat


flexible and we quickly started to rotate
people through the process every
month or so, always including a few
people from the last time, and always 45
making sure we had a cross section of
the company. This helped to prevent
burn out, and ensured that everyone
involved in the process had experience
using the results of Cabal decisions. It’s important to include information on the intended path through the level, as
The final result was a document of well as rough geometry and character placement.
more than 200 pages detailing every-
thing in the game from how high but-
tons should be to what time of the day
it was in any given level. It included
rough drawings of all the levels, as well Play-Testing Tips
as work items listing any new technol-
ogy, sounds, or animations that those • Watch your play-testers and let them of the players who aren’t as good as you.
levels would require. do what they want. If they keep trying to Some of those players will be really, real-
We also ended up assigning one per- do something silly, don’t get upset — fig- ly bad. Tough — they’ve paid their $50
son to follow the entire story line and ure out why they want to do it and how to and they deserve to be entertained. Make
to maintain the entire document. With accommodate them. We originally added the difficult level something you can play
a design as large as a 30-hour movie, breakable crates to the game simply as a without too much trouble. Make the easy
we ended up creating more detail than technological feature that we wanted to level so easy that you can’t imagine any-
could be dealt with on a casual or part- show off. There was nothing in them, the one not being able to win on it. Then,
time basis. We found that having a crates just broke. We thought games with make it a bit easier. If you get lucky, half
professional writer on staff was key to secrets hidden in crates were lame. After your players will be able to finish.
this process. Besides being able to add the tenth play-tester in a row went through
personality to all our characters, his and painstakingly broke every single crate
ability to keep track of thematic struc- in the entire game and never got any
tures, plot twists, pacing, and consis- reward but just kept doing it (because they
tency was invaluable. just knew if they just tried long enough
they’d get the hidden reward) we caved.
We went back and redesigned levels to
Pearls Before Swine have crates with goodies in them, and a
reason to need those goodies. It was a lot
y the second month of the Cabal, of work, but the remaining play-testers
B we (the “swine”) had enough of
the game design to begin development
were a lot happier.
• Your game is too hard. It just is.
on several areas. By the third month, You’re most likely an expert player at the
we had enough put together to begin game you’re developing and it’s doubtful This creature was initially designed
play testing. that there are more than a handful of as a friendly character, but play-test-
A play-test session consists of one out- players in the world who are better than ing revealed players’ tendencies to
side volunteer (Sierra, our publisher, you. You don’t need to care about them, shoot first and ask questions later.
pulled play-testers from local people you need to care about the 99.9 percent
who had sent in product registration

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


HALF-LIFE LESSONS

cards for other games) play- we automatically saved the


ing the game for two hours. game at regular intervals, if
Sitting immediately behind the play-testers crashed the
them would be one person game we would usually
from the Cabal session that have something not too far
worked on that area of the from where they encoun-
game, as well as the level tered the bug. Since these
designer who was currently files would even work if the
the “primary” on the level code base they were testing
being tested. Occasion- was several versions old, it
ally, this would also include made normally rare and
an engineer if new AI need- hard to duplicate bugs rela-
ed to be tested. tively easy to find and fix.
Other than starting the Our save game format
game for them and reset- allowed us to add data,
ting it if it crashed, the delete data, add and delete
observers from Valve were code (we even supported
not allowed to say any- function pointers) at will,
thing. They had to sit there Letting players see other characters make mistakes that they’ll without breaking anything.
46 quietly taking notes, and need to avoid is an effective way to explain your puzzles and This also allowed us to
were not allowed to give add tension and entertainment value. make some fairly major
any hints or suggestions. changes after we shipped
Nothing is quite so hum- the game without interfer-
bling as being forced to watch in and the game could be played most of ing with any of our players’ hard-won
silence as some poor play-tester stum- the way through, it became mostly a saved games.
bles around your level for 20 minutes, matter of fine-tuning. To do this, we
unable to figure out the “obvious” added basic instrumentation to the
answer that you now realize is com- game, automatically recording the No Good Deed Goes Unpunished
pletely arbitrary and impossible to fig- player’s position, health, weapons,
ure out. time, and any major activities such as ntil the Cabal process got under-
This was also a sure way to settle any
design arguments. It became obvious
saving the game, dying, being hurt,
solving a puzzle, fighting a monster,
U way, technology was added to
HALF-LIFE freely. It was assumed that “if
that any personal opinion you had and so on. We then took the results we build it, they will come,” meaning
given really didn’t mean anything, at from a number of sessions and graphed that any new technology would just
least not until the next play-test ses- them together to find any areas where naturally find a creative use by the con-
sion. Just because you were sure some- there were problems. These included tent creation folks. A prime example of
thing was going to be fun didn’t make areas where the player spent this fallacy was our “beam” effect, basi-
it so; the play- cally a technique for doing highly tun-
testers could able squiggly glowing lines between two
still show up points; stuff like lightning, lasers, and
and demon- mysterious glowing beams of ener-
strate just how wrong you really were. gy. It was added to the
A typical two-hour play-test session engine, the parameters
would result in 100 or so “action too were exposed, and an
items” — things that needed to be long e-mail was sent out
fixed, changed, added, or deleted from without explaining it. The result
the game. The first 20 or 30 play-test any encoun- was … nothing. After two
sessions were absolutely critical for ters (boring), months only one level
teaching us as a company what ele- too long with designer had put it in a
ments were fun and what elements too much map. Engineering was
were not. Over the course of the pro- health (too easy), baffled.
ject we ended up doing more than 200 too long with too During the Cabal process, we real-
play-test sessions, about half of them little health (too ized that although the level designers
with repeat players. The feedback from hard), all of which knew of the feature, they really had no
the sessions was worked back into the gave us a good idea as to where they clear idea of what it was for. The para-
Cabal process, allowing us to preemp- were likely to die and which positions meters were all very cryptic, and the
tively remove designs that didn’t work would be best for adding goodies. wrong combinations would cause the
well, as well as elaborate on designs Another thing that helped with beams to have very ugly-looking
that did. debugging was making the “save effects. There were no decent textures
Toward the middle of the project, game” format compatible between the to apply to them, and setting them up
once the major elements were in place different versions of the engine. Since was a bit of a mystery. It became very

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


HALF-LIFE LESSONS

seemed to add a bit of overhead to

Second-Order Effects everything, but it had the important


characteristic of getting everyone
involved in the creation process who
arly in the development of fact trivial. About an hour later, the char- were personally invested in the design.

E HALF-LIFE, skeletal animation


was added solely for compres-
sion reasons; we needed to be
able to store a lot more frames of anima-
tion in fewer bytes than were required by
acters in the game could talk.
Of course, that wasn’t the end of it.
Since the Cabal had just started, and
since we now had a solution to the prob-
lem of how to explain to the player what
Once everyone becomes invested in
the design as a whole, it stops being
separate pieces owned by a single per-
son and instead the entire game design
becomes “ours.”
vertex animation. The DSP effects and the was going on — now other characters This “ours” idea extended to all lev-
reworking of the sound system, were could tell them — it was time to rework els. Almost every level in the game
added solely for the ability to add echo our existing designs. With the ability to ended up being edited by at least three
and other single-processing effects. talk to the player, we now needed some different level designers at some point
Adding a mouth to the various humanoid character in the game that the player in its development and some levels
models was solely for the humor value of would actually want to talk to instead of were touched by everyone. Though all
having the scientists scream while play- just killing right away. We decided that the level designers were good at
ing specific scripted sequences. Each by the trigger-happy security guard mon- almost everything, each found they
itself was considered complete. ster — originally designed as an easy enjoyed some aspect of level design
48 Then the animator who added the version of the soldiers — should instead more than other aspects. One would
mouths asked the programmer who wrote be a supporting character. The scientists do the geometry, one would do
the DSP code if there was any way to also went from being fairly ambiguous monster and AI placement, our tex-
make the mouth move when the character — good or evil, we had them both ways ture artist would step in and do a tex-
talked. He was told it would be easy to — to being definitely on the player’s turing pass, and then one would fin-
know when the character was talking but side. It also meant that instead of claim- ish up with a lighting pass, often
that there wasn’t any way to automatical- ing we had a story because we included switching roles when needed due to
ly move the jaw. He then asked the pro- a bunch of prose in a README.TXT file scheduling conflicts. This became crit-
grammer who wrote the skeletal anima- somewhere, we could have a real author ical toward the end of the project
tion code if there was any way to make do real dialog with real (within technical when people finished at different
the mouth move when the character limits) characters and use real story- times. If a play-test session revealed
talked. He was told it would be easy to telling techniques. something that needed to be changed,
move the jaw, but that there wasn’t really We’ve come to the conclusion that any available level designer could
any way to tell when they were talking. major ideas can come from anyone, and make the changes without the game
Independently, both programmers told that most technologies have hidden fea- getting bottlenecked by needing any
him that it was impossible to do and to tures in them that will be discovered only specific individual.
quit bugging them about it. It wasn’t until after the initial technology is in place. For This idea also extended to all code,
several weeks later when the program- this reason, it’s critical to include every- textures, models, animations, sounds,
mers were sitting around commenting on one in the design process and create a and so on. All were under source control
what new impossible feature the artists mechanism to feed these second-order and any individual was able to synch up
wanted that they realized that the part effects back into the development to the sources and make whatever
neither one of them understood was in process. changes were necessary. With a little bit
of self–control, this isn’t as random as it
clear the technology itself was only a groups heavily toward people with a sounds. It had the added benefit in that
small part of the work and integration, lot of group design experience, well it was fairly easy to get a daily record of
training, and follow-through were ahead of game design experience. Even exactly what was changed and by
absolutely necessary to make the tech- so, in the end almost everyone was in a whom. We would then feed this infor-
nology useful to the game. Writing the Cabal of one sort or another, and as we mation back into the play-test cycles,
code was typically less than half the got more comfortable with this process only testing what had changed, as well
problem. and started getting really good results it as helping project scheduling by being
was easier to integrate the more reluc- able to monitor the changes and get a
tant members. For current projects, pretty good estimate of the stability and
Square Pegs such as TEAM FORTRESS 2, the Cabal completeness of any one component.
groups are made up of 12 or more peo- This also allowed us to systematically
ractically speaking, not everyone ple, and rarely fewer than eight. The add features throughout the process
P is suited for the kind of group
design activity we performed in the
meetings ended up being shorter, and
they also ended up spreading ideas
with minimal impact. Once the techni-
cal portion was completed, the engineer
Cabal, at least not initially. People with around a lot quicker, but I’m not sure assigned to the feature was able to
strong personalities, people with poor I’d recommend that size of group synch to all the source artwork and
verbal skills, or people who just don’t initially. rebuild any and all files (models, tex-
like creating in a group setting should- Just about everything in HALF-LIFE tures, levels, and so on) affected by the
n’t be forced into it. We weighted our was designed by a Cabal. This at first change.

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


The skeletal system allowed the team to change its monster By placing traditional combat action in more challenging
appearance throughout the development process with mini- environments we were able to intensify the feeling of ten-
mal impact on existing animations and AI. sion and suspense.
49

The Workers Control the Means of the game, they would need to start a meet the quality standards we wanted,
Production Cabal and try to convince the other regardless of the level of emotional
key people involved that their idea was attachment the specific creator may
ven with all emphasis on group worth the effort. At the start of the pro- have had to the work. This was one of
E activity, most of the major features
of HALF-LIFE still only happened
ject, this was pretty easy as most every-
one wildly underestimated the total
the more initially contentious aspects
of the Cabal process, but perhaps one
through individual initiative. Everyone amount of work that needed to be of the more important. By its very
had different ideas as to what exactly done, but toward the middle and end nature, the Cabal process avoided
the game should look like, or at least of the project the more disruptive deci- most of the personal conflicts inher-
what features we just had to do. The sions tended to get harder and harder ent in other more hierarchical organi-
Cabal process gave these ideas a place to push through. It also helped filter zations. Since problems were identi-
to be heard, and since it was accepted out all design changes except for the fied in a relatively objective manner
that design ideas can come from any- ones with the most player impact for of play-testing, and since their solu-
one, it gave people as much authority the least development work. tions were arrived at by consensus or
as they wanted to take. If the idea Through constant cycle of play-test- at least by an individual peer, then an
required someone other than the ing, feedback, review, and editing, the authority that everyone could rebel
inventor to actually do the work, or if Cabal process was also key in remov- against just didn’t exist.
the idea had impact on other areas of ing portions of the game that didn’t On a day-to-day basis, the level of
detail supplied in even a 200-page
design document is vague at best. It

Technology Integration Tips doesn’t answer the 1,001 specific


details that each area requires, or the
countless creative details that are part
• Work directly with the artists — new technology, but if the player never of everyday development. Any design
level designers, animators, and so on— sees it, then all your work will be wasted. document is really nothing more than
for however long it takes to get the tech- Make sure it gets into the game design a framework to work from and some-
nology into a sample portion of the document. Maybe it should be used thing to improve the likelihood that
game. Sit in their office. Hang out. instead of other effects. Maybe it can be work from multiple people will fit
Watch what they do. Watch what they used to enhance an existing portion. together in a seamless fashion. It’s the
try. At this point, you will probably need Make sure it gets into as much of the Cabal process that helped spread
to simplify, enhance, and/or document game as possible. around all the big picture ideas that
the interface better. • Keep track of how the technology is didn’t make it into any document —
• Have the artist demo the technology used. After a few months you will proba- things that are critical to the feel of
to the rest of their group. When it comes bly notice that the technology is being the game, but too nebulous to put
from outside, it’ll be viewed with a certain used to do things you never considered. into words. It also helps maximize
amount of skepticism. When it comes Analyze how it’s being used and look for individual strengths and minimize
from within, it’ll be viewed as a new tool. improvements or new tools that can make individual weaknesses and sets up a
• Reintegrate the technology into the it even better. You’ll need to keep this up framework that allows individuals to
world. You’ve spent the time adding the for the entire project. influence as much of the game as pos-
sible. In HALF-LIFE, it was the rare area

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


HALF-LIFE LESSONS

of the game that did-


n’t include the direct
work of more than ten
different people, usu-
ally all within the
same frame.
In order for highly
hierarchical organiza-
tions to be effective,
they require one per-
son who understands
everyone else’s work
at least as well as the
individuals doing the
work, and other peo-
ple who are willing to The first incarnation of the game’s main character, now
be subordinates yet known affectionately as “Ivan the Space Biker.”
are still good enough
to actually implement
50 the design. Given the complexity of At Valve, we’re very happy with the
most top game titles, this just isn’t results of our Cabal process. Of course, Placing the player in a soldier-vs.-
practical — if you were good enough we still suffer from being overly ambi- alien conflict helped reinforce the
to do the job, why would you want to tious and having, at times, wildly illusion of an active environment, and
be a flunky? On the other hand, com- unrealistic expectations, but these let Valve show off its combat AI with
pletely unstructured organizations eventually get straightened out and minimal risk to the player.
suffer from lack of information and the Cabal process is very good about
control — if everyone just does their coming up with the optimal compro-
own thing, the odds that it’ll all fit mise. Given how badly we failed ini- even our most initially reluctant per-
together in the end are somewhere tially, and how much the final game son is now a staunch supporter of the
around zero. exceeded our individual expectations, process. ■
C O D E D E S I G N

Making a Break from


Fragile Code Design
by James Boer

I
s maintaining your game libraries becoming more and more

56 of a challenge? Is your game’s code base becoming increasingly

fragile? This isn’t an uncommon phenomenon. We’ve all

heard about projects that were cancelled due to unmaintain-

able code and runaway bug counts. Perhaps you’ve even

been part of such a project. The key to avoiding this kind of

catastrophe lies in good code design and a willingness to set

a certain level of discipline in your more difficult in the process. The sophisticated as mainstream commer-
team’s coding style. ability to design upgradability into cial applications, and many compa-
Game development offers a unique your software libraries without sacri- nies feel the pressures that inspired
challenge to programmers because of ficing stability is a rare art today, but more efficient design methodologies
its combination of cutting-edge tech- it doesn’t have to be so. To combat such as object-oriented programming
nology and traditional software devel- fragile code, this article examines and the concepts of design patterns.
opment challenges. Often, traditional some traditional approaches and dis- As programs get larger and more
solutions to program design tend to cusses the benefits and limitations of complex, the number of interdepen-
fall short because of the rapid evolu- these methods. dencies between code modules tends
tion of game development technolo- to increase at an exponential rate,
gies. For instance, Microsoft’s DirectX making code reuse or redesign more
libraries constantly evolve, and each Ever-Increasing Complexity difficult. Companies that do not
new version has new features and feel compelled to design their
takes advantage of new hardware and he day of the free-coding, seat-of- software effectively will eventually
technologies. But trying to ensure that
your programs will be able to use the
T your-pants, I-don’t-believe-in-
designing-code-before-I-write-it pro-
be surpassed in the marketplace by
those who do, producing more bug-
newest versions of DirectX without grammer is fast drawing to an end. free code with a shorter turnaround
having to rewrite lots of code is made Today’s top games have become as time.

James Boer is the designer and one of the programmers who brought you DEER HUNTER and DEER HUNTER II (and he still has never
gone hunting). Other game credits include ROCKY MOUNTAIN TROPHY HUNTER, PRO BASS FISHING, MICROSOFT BASEBALL 2000, and
MICROSOFT INTERNET HEARTS. He currently is working at WizBang! Software in Seattle, Wash., on a yet unannounced product, and
can be reached for comments, questions, or general advice about virtual deer hunting at jbsys@compuserve.com.

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


refactor your software. This is an unre-
F I G U R E 1 . Cohesion between code and data. alistic goal, as no developer can antici-
pate changing future requirements to
the degree that it will never need to be
redesigned at a fundamental level.
However, you can strive to maximize
Data Code the effective lifespan of code. This goal,
achieved through the use of reusable
components which encapsulate both
code and data, was what object-orient-
ed programming (OOP) promised to
deliver. Unfortunately, OOP can’t pro-
Data Code vide all the answers on its own. (See
sidebar, “Code Cohesion,” p. 58)

Shortcomings of OOP
Data OP encapsulates code and data
Code
O into a single module, which in
essence, gives the data a code interface.
57

This means that the underlying data


can be changed without modifying the
interface to access that data, which
Data Code provides an additional level of protec-
tion when requirements change. How-
ever, just as dependencies between
code and data modules can escalate to
an unmanageable level, dependencies
The Pitfalls of Procedural numerous modules of code might be among different code modules can also
Programming looking at a single chunk of data. As create an unmanageable level of cohe-
the number of code and data modules sion (Figure 2).
n procedural programming, data is a increases, you tend to see data and Using OOP techniques has simply
I distinctly separate entity from the
code that operates on that data (Figure
code modules become more dependent
on each other. This web of dependen-
delayed the progression of the cohe-
sion by combining code and data mod-
1). This creates a situation in which cies, often called “code cohesion,” ules. As programs grow in complexity,
makes it increas- however, the code dependencies still
F I G U R E 2 . In OOP, different code modules can become too ingly difficult increase to an undesirable level. To
dependent upon each other. to alter any one move away from the abstract a bit, let’s
component with- take a look at a real problem and see
out adversely how a real solution was implemented.
affecting the
Class others.
When game Real-Life Problem: A DirectX Upgrade
code becomes too
cohesive, the he issue of using DirectX libraries

Class Class
entire system
must either be
T effectively is something most PC
game developers have had to face.
redesigned or dis- Although these libraries attempt to
carded due to its remain backward-compatible with the
inherent lack of interfaces of previous versions, there are
flexibility. This times when compatibility must be bro-
process is known ken in order to introduce new features.
Class Class
as refactoring, It is at this point that your existing code
and it is an becomes incompatible with the new
inevitable part of libraries. The typical OOP solution to an
any software evolving interface is the creation of a
development thin wrapper class for the library, which
Class cycle. The prob- uses inline functions to shield the game
lem is not how to programmer from the more mundane
avoid the need to tasks involved in using the library.

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


CODE DESIGN

unfortunately it has no concept of


Code Cohesion default parameters and function over-
loading. So you might consider writing
hat is code cohesion, 3. ALLOWING MANY SMALL OBJECTS IN DIF- wrapper Blt() functions which are easi-

W what causes it, and


exactly why is it such
a bad thing? Cohesion
is the result of too many parts of a pro-
gram becoming dependent on each other.
FERENT SUBSECTIONS OF THE CODE TO COMMU-
NICATE DIRECTLY WITH EACH OTHER. Although
this is sometimes unavoidable, you
should always try to make use of a high-
level interface to communicate between
er to use. You also might have several
overloaded Blt() functions for different
situations. Class wrapping like this
makes an API easier to work with and
also helps shield the application from
Of course, some cohesion happens by subsections of code. Inline function can changes in (for this case) the
necessity in any program written, but the alleviate most concerns about addition DirectDraw interface. If function para-
degree of cohesion is what’s important. If overhead imposed by the additional meters within Blt() change, a program-
the amount of cohesion remains low, it is interface layer. If direct communication mer must only make changes inside
easier to replace any particular subsys- between smaller objects absolutely must the wrapper functions instead of
tem of code because the impact on other occur, try to utilize some communication throughout the game.
portions of the code will be minimal. If, abstraction if possible as a go-between, Unfortunately, this doesn’t provide
on the other hand, the code is highly such as a message object. protection from major changes in an
dependent upon specific interfaces and Alternatively, here’s three techniques API’s functionality. For instance, in
data structures from many other parts of you can use to ensure you’re code doesn’t DirectX 6.0, Microsoft introduced
58 the program, it becomes impossible to become too highly cohesive. Direct3D vertex buffers as an alterna-
change without affecting a vast number 1. MAKE GOOD USE OF LIBRARIES. If you tive to execute buffers. This type of
of other systems. can separate your code from the applica- change typically has more far-reaching
Cohesion is caused by a number of tion and place it into a library, you’ve effects in an application than a simple
things, but there are some more obvious established a natural separation that can- change in a function’s parameters. So
coding practices to watch out for. Here not easily be breached. Objects in the some solution must be found to pro-
are some programming practices which, library have to remain relatively indepen- tect code subsystems from major
unless used cautiously, can lead to highly dent of the code in the application. changes in one or more basic compo-
cohesive code: 2. FOCUS ON THE “BLACK BOX” INTERFACE OF nents of another system.
1. USING GLOBAL VARIABLES AND DATA YOUR OBJECTS. Your objects should be per-
STRUCTURES. There are some instances forming tasks under the hood, without
where globals might be necessary, but other programmers having to worry about The Facade Pattern: Half a Solution
think long and hard before using them. exactly how the tasks are being imple-
More often than not, these types of items mented. This means that you should keep he facade pattern provides a solu-
can be encapsulated in a class with little
ill effect. Structs, unless used exclusively
the public function available for use, make
sure that it’s easily implemented, and doc-
T tion to the seemingly inevitable
cohesion between different modules of
inside a particular class, should be used ument it well (including good comments code in a program. The basic premise
with caution. Wrapping data and func- within the code). Keep your helper func- of the facade pattern is this: all code
tionality into a single class is usually a tions private or protected. If you find the must be logically divided into discreet
safer approach. The biggest problem with number of functions growing extremely modules, and these modules should,
using a struct to store common data is large, perhaps it’s time for a higher-level whenever possible, communicate to
that it’s difficult to manage and track who object to take over the task, or to consoli- each other through the use of an inter-
is actually accessing the data and when date a number of the smaller functions face known as a facade. The facade is a
they are doing it. into larger, simpler-to-use function. high-level interface to the functionality
2. INCORRECT SCALING OF CLASSES AT 3. HAVE A SOLID DESIGN STRATEGY BEFORE of a complete subsystem of objects
DESIGN TIME. It’s a common mistake for CODING STARTS. This sounds a bit too sim- which work together to perform some
programmers to design their classes too plistic to be a practical rule, but it’s an related task. There will be times when
small and specific, resulting in many important one nonetheless. Don’t resign lower-level functionality of a system
smaller interdependent objects, or too yourself to the illusion that you’ll go back must be accessed directly, but often the
large, resulting in complex, monolithic later and “do it right.” In my experience, facade can take care of higher-level
objects that attempt to do far too much. there’s rarely the time or inclination to do functions more easily than another
It’s important to design and use classes that. Once code is written and “working,” solution.
at both ends of the size scale, both to it’s hard to convince someone that you These are not radical or even new
keep code modules small and readable, need to go back and spend more time to concepts. Most programmers have
yet also to keep the overall design rela- rewrite code that essentially does exactly seen the benefits of some sort of man-
tively understandable. the same thing. ager class that is used as the interface
to the rest of the program. Using a
For example, blitting from surface to tion rectangles, a source surface, flags, system such as this helps to insulate
surface in DirectDraw requires the pro- and a blit structure. The Component the remainder of a program when the
grammer to fill out a number of para- Object Model (COM) structure, on implementation of a subsystem
meters in the IDirectDrawSurface4::Blt() which DirectX is based, provides much radically changes under the hood
method, including source and destina- in the way of standardization, but (Figure 3).

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


F I G U R E 3 . Visual representation of communication between subsystems using flexibility. Here's what the code looks
facades. like:
// sample code showing a generic manager
// class
class ManagerBase
Class Class {
public:
ManagerBase();
virtual ~ManagerBase();

Class Facade Facade Class ManagerBase* GetBase()


{ return m_pBaseObj; }

void SetBase(ManagerBase* pObj)


{ m_pBaseObj = pObj; }
Class Class
protected:
static ManagerBase* m_pBaseObj;
};
The Virtual Manager Alternative class to store as a static member, we We see a simple mechanism for stor- 59
give every piece of code, whether at ing a single object in its own static
lthough the facade works well, it the library or application level, the member. Access to the object is
A does present some serious limita-
tions. Let’s assume we wish to build a
ability to access the object that the
application has created. This object
achieved through the GetBase() func-
tion. However, in order to avoid hav-
facade over every one of our major may be an instance of the class which ing to type in:
subsystems, which we’ve split into resides in the library, or it may actual- ManagerBase::GetBase()->DoSomeFunction();
separate libraries. This means that ly be an instance of a class derived every time we want to call a function,
each major library has a facade to from it. From the other library mod- we can simplify the call through the
handle communication to and man- ule's point of view, it makes no differ- strategic use of an inline function.
agement of the subsystem, creating a ence. The solution is simple and ele- inline ManagerBase* Manager()
cleaner interface between each subsys- gant, and provides a good deal of { return ManagerBase::GetBase(); }
tem and with the application. How-
ever, most applications require some
customization of their libraries to one
degree or another as the requirements
of the application evolve over time
and new features are added. If more
than one application uses the same set
of libraries, then the customizations
must occur at the application level,
instead of the library level. The prob-
lem then boils down to: How can we
customize the libraries at the applica-
tion level and still allow other
libraries to use those customizations?
A while back, we discovered a prob-
lem when working on specific library
modules that needed to access code in
other libraries we had written. The UI
library, for example, required the use of
our Graphics and Input libraries. How
can we ensure that the UI library can
access those other libraries’ functionali-
ty, even though an application may
wish to extend the Graphics or Input
libraries by deriving new classes from
them at the application level?
The answer lies in the clever use of a
static pointer. By instantiating a class
at the application level and passing
the pointer of that object back to the
CODE DESIGN

At the application level, however,


Design Patterns the benefits of overriding the manager
class become quickly apparent. For
here’s been a lot of talk about a reputation of being a difficult language instance, you may wish to add the

T design patterns in the world


of object-oriented program-
ming (OOP). In a nutshell, a
design pattern is a simply way of
describing the general object-oriented
to master due in part to the complex art
of designing classes that are clean, effi-
cient, and expandable. Patterns can help
shorten this learning curve by describing
common programming problems, then
capabilities of associating some other
types of data with some sounds. For a
technology demo of an upcoming
product we were showing to publish-
ers, we associated a lip-synch data file
form of a solution to a specific type of showing how a class or hierarchy of with voice-over recordings. After the
programming problem. If this sounds a classes can be used to solve the problem voice-over sounds were loaded, we
little vague or abstract to you, it should. with proven, time-honored class could retrieve the associated data file as
Patterns only give you a blueprint of designs. well.
object interaction to model your own In addition to allowing programmers to A class, which we’ll call
classes on. After that, it’s up to you to see practical object-oriented solutions to AppSoundManagerObj, is derived from
build the specific classes that solve programming tasks that they may SoundManagerBase. In addition to deriving
whatever problem you’re facing. What encounter, patterns also give program- the class from the base class, we’ll also
the pattern gives you is a strategy when mers a common frame of reference when create a new accessor function, like
deciding which objects to use, and how talking about programming solutions by this:
60 they should work together. naming the patterns. If I describe a class inline AppSoundManagerObj * AppSoundManager()
Effective object-oriented design is one utilizing a Factory pattern (a Factory is { return ((AppSoundManagerObj
of the more elusive skills a programmer responsible for creating objects and *)SoundManager()); }
can master. C++ is really not all that returning interfaces to them), anyone This new accessor gives us a pointer
hard to learn at the basic language level. who understands what a Factory pattern to the new AppSoundManagerObj interface,
After all, one doesn’t necessarily have to is automatically can relate to the general which of course also includes the inter-
use templates, exceptions, and other nature and purpose of the class that I’m face to the original base manager class.
fancy language features. However, it has attempting to describe. In addition to adding new members
to the derived class, the ability to
This function is placed just below the Because the application is responsible derive means that we also gain the abil-
class definition in the header file, and for creating and setting the object, it’s ity to change default behavior of the
should be used to access the object. possible to try to access the manager manager classes by overriding virtual
Code calling the manager then looks without having initialized it. This will functions. This effectively lets us
like this: result in an access violation, so it is change the behavior of the manager
Manager()->DoSomeFunction(); important to guard against this. Ideal- even when it is called from other
This looks quite a bit more friendly, ly, the object should be created at the libraries.
and because the function is inline, beginning of the application and
requires no additional overhead. destroyed at the end, which will guard
You’ll notice that the class was named against this type of error. If for any rea- Migrating Library Code
ManagerBase instead of Manager. This was son parts of your code might try to
done with the foresight of knowing that access a manager before it has been cre- n advantage of the virtual manag-
the inline accessor function, not the
object, should have the name most
ated, it is your responsibility to wrap
that code in an if statement which
A er system is that most new code
can first be introduced at the applica-
closely associated with the actual func- checks to see that a valid object exists tion level without modifying the exist-
tionality of the object. For instance, before accessing it. This is the biggest ing libraries. If you want to use those
with a sound manager, you should drawback to this system, but with care- features later in other applications
name the object SoundManagerBase, which ful planning it doesn’t have to be a sharing the same libraries, then it’s
leaves you free to name the accessor problem. simple to migrate the code from the
function SoundManager(). application level to the library level
The application is responsible for cre- (Figure 4). It’s important to note that
ating the manager object and passing A Real-Life Solution when NewFunc(), as shown in the dia-
back to the class for storage, like this: gram, moved from App 1 to the
// application initialization code or an example of a practical solu- Library, no changes to the interface

ManagerBase* pBase = new ManagerBase;


F tion, let’s look at a sound manager,
as it’s a relatively simple subsystem.
were apparent to the rest of the pro-
gram. The beauty of this system is that
if(!pBase) Most sound managers consist of code migrating code in a virtual manager
return Error; that manages a list of sounds, and can class doesn’t affect the interface as seen
ManagerBase::SetBase(pBase) load, unload, play, stop, or set proper- by the rest of the program.
ties of any of these sounds on demand. In addition to the ease with which
// now we’re ready to call the manager Most applications should be able to use you can migrate code from application
// functions this set of functions without much to library, the virtual manager also cre-
Manager()->DoSomeFunction(); alteration. ates, to a limited extent, a primitive

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


versioning scheme. You can see how, F I G U R E 4 . Migration of code from application-level facade to library-level
by creating several layers of derived facade.
classes, you could easily choose at the
application level which version of a
library you wished to use. NewFunc()
While there certainly is no magic for-
mula to eliminate bugs from a software
product, a well-planned and solidly-
App 1 App 2 App 3
developed library can certainly go a
long way in stabilizing your code. By
utilizing well-established object-orient-
ed programming principles and solid
code management techniques, you’ll

find that perhaps you’ll be able to Library
focus more energy and spend more
time writing new code instead of track-
ing down bugs and rewriting old
libraries. ■
App 1 App 2 App 3
FOR FURTHER INFO 61

Gamma, Erich; Helm, Richard; Johnson,


Ralph; and Vlissides, John
Design Patterns: Elements of Reusable Library
Object-Oriented Software
(Addison-Wesley, 1995)
NewFunc()
POSTMORTEM

ActivisionÕs
HEAVY GEAR II by Clancy Imislund

fter a long series of successful titles such as MECHWARRIOR

A
62 2: GHOST BEAR’S LEGACY and MECHWARRIOR 2: MERCEN-

ARIES, Activision held a dominant position in the

giant-robot genre. Due to the commercial success

of this series, though, a tidal wave of similar

products developed by worthy competitors

began to flood the market. Fortunately, Activision found a new and

exciting universe in Dream Pod 9’s Heavy Gear pen-and-paper-based

game, and in the fall of 1997, Activision Studios began production on

the futuristic giant-robot simulator HEAVY GEAR II. HEAVY GEAR II allows

game players to suit up in a giant, high-octane, humanesque battle tank

called a “Gear.” The player is then required to outfit a wily band of AI

Gears (called “squadmates”) and arm them to the teeth. Their small but

Beyond the role of volcanic guitarist and avid jai alai analyst, Clancy enjoys all aspects of engine
design including 3D graphics, AI, tools, and multiplayer integration. For HEAVY GEAR II, he
was responsible for the AI, scripting system, and tools development. Contact him at
cimislund@activision.com.

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


heavily armed reconnaissance force must infiltrate and over-
come a rich variety of environments including swamps, icy
wastes, angry red planets, and the weightless reaches of
outer space. The action in HEAVY GEAR II is much faster than
in other giant robot simulators, as Gears are substantially
smaller than Mechs and much more fragile. This requires
squads to rely primarily on stealth and cunning rather than
brute force and wanton destruction. Players are forced to
pick their battles wisely or face annihilation from the superi-
or enemy legions that infest the various worlds they tra-
verse. When pilots are tired of playing against computer
opponents, they can pit themselves against human enemies
in multiplayer mode with a number of game types to choose
from including “steal the beacon,” “king of the hill,” and
good old-fashioned deathmatch.
To create such an experience, Activision assembled a new Artist’s concept for the “Asteroid Shipyards.”
team of its best and brightest in the areas of programming,
art, design, and management. A very aggressive schedule was
adopted targeting a fall 1998 release date (a 13-month devel- that point, or publishing a game that had a greater current
opment schedule). Our original staff consisted of a lead, market base and little or no novelty by the time it was 63
graphics, AI and tools, multiplayer and shell programmer. released. I suppose it is something all of us developers must
We had a lead artist, two 3D modelers, a 3D animator, and deal with in these days of rampant technological change.
two 2D artists creating texture maps for the models and ter- The AI system was another great challenge, as it would
rain. We also had a lead designer who managed a group of dictate much of the feel of the game. It would also be a key
three game designers, all of whom transformed the storyline tool for our design team as they implemented the complex
from paper into a computer game. Our management group storyline. We decided at the high level to go with a pure
consisted of a director, a producer, and an associate produc- “autopilot” approach, in which enemy and friendly AI alike
er, who controlled the schedule and the development and were able to function intelligently without any script at all
direction of the game and saw to the many needs of the for individual units. We wanted to be able to put a unit into
other production staff. the world and have it go do whatever it thought it needed to
We programmers were chartered to create a new game do. Internal to this was a high-level strategic system, a team-
engine and I took on the role of AI, scripting system, and based tactical system that employed a knowledge base, and a
tools programmer. At the heart of this engine was a rock- low-level, unit-specific order execution system. The goal was
solid memory management and leak-tracking class. Yes, to take much of the burden off of the design staff, and give
that’s right. Before anyone ever dreamed of fancy graphics or the game a consistent and distinctive feel across all missions.
stunning game play, we had to deal with this mundane task. Nonetheless, our scripting system was very effective and
Every C++ class and structure used by the Darkside engine had some nice features such as an in-game debugger com-
had roots within this base class. This architecture allowed to plete with break points, single-step execution, and variable
us to detect memory leaks and overwrites as soon as they watch windows. It was based on LEXX/YACC-based C gram-
appeared in a given day’s build, which allowed us to address mar, which hooked into a powerful and easily extensible vir-
problems immediately rather than during a grueling cycle at tual machine that resided in the Darkside engine. Our script-
the end of the project. I cannot stress the importance of this ing system was hooked in to our custom game API, which in
type of planning and execution enough for teams who want turn was coupled to prototypes defined in a file called
to craft a state-of-the-art game engine. Focusing on the relia- STDHG2.H, which ostensibly replaces STDIO.H (a file well
bility of the application will also greatly increase the immer- known to all of you C programmers out there). Amazingly
sion factor of any game that’s created with it. After all, what enough, STDHG2.H was used not only to compile the
destroys immersion more than a hard system crash? Hats off
to our lead who took us down this path. H EAVY G EAR II
The decision was made to target the game only for
Activision
machines outfitted with 3D-accelerated video cards. This
Santa Monica, Calif.
issue was hotly disputed within our team for a while, but
(310) 255-2000
when our management group realized that in order to pull
http://www.activision.com
off realistic 3D graphics, software emulation was a dead deal.
Release date: July 1999
This had profound effects on the schedule, as it freed our
Intended platform: Windows 95/98
artists and programmers from dealing with the time-
Project length: 19 months
consuming and tiresome work of generating alternate LODs
Team size: 20
for such a purpose. This decision also eliminated a huge
Critical development hardware: 3D-accelerated 200MHz PC
chunk of our QA test plan, which could have pushed back
Critical development software: Softimage 3.7, Photoshop,
the release date of the title significantly further. We had to
Visual C++ 5.0, Visual SourceSafe, and numerous in-house
choose between putting out the highest quality game we
tools
could and targeting a consumer market that barely existed at

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


POSTMORTEM

Mining installation on the wastes of Caprice. Early concept for the destruction at “Peace River.”

scripts, it was also used in the compila- as possible. The autopilot handled all of work that these people put into pro-
tion of the Darkside engine itself. This strategic, tactical, and low-level opera- ducing the first prototype. Even more
64 convenient relationship between the tions of unit behavior, yielding control amazing was the fact that most, if not
scripting language and the engine only at the request of a script. The all, of this work was of the “keeper”
source code, plus the fact that the C autopilot was the default AI handler in variety — nearly all the code used in
language is widely documented, easily the engine. Scripts could override this the green-light prototypes exists in the
justified our decision use a scripting system by posting event callback Darkside engine today. Our design
language based on C. Scripts were used requests as shown in Listing 1. tools were augmented in functionality,
mainly to monitor mission progress Our multiplayer system was crafted but the basic underlying technology
and objectives, special behaviors (con- using a proven proprietary networking driving these applications remained
voys and patrols, for instance), and SDK developed at Activision. This virtually unchanged through the
interactive control of the action. Our reliance on preexisting technology entire development cycle.
goal was to keep these scripts as simple allowed us to get multiplayer function-
ality in the engine and working very
early on in the development cycle.
2. THE DARKSIDE ENGINE. The
Darkside engine created specifi-
cally for HEAVY GEAR II was an engi-
L I S T I N G 1 . Event callback requests.
Designing and integrating multiplayer neering gem. Although game players
// A Script.C functionality is often left until the end get a solid dose of its extraordinary
void of a project, and that can create all graphics and animation capabilities, at
Initialized() manner of problems. Getting this level its core it is nothing but a simple mem-
{ of complexity into our development ory manager and leak tracker. This
// Tell AutoPilot that we want control schedule early probably saved the property of the engine allowed the pro-
// back when the unit is killed or HEAVY GEAR II team an additional six grammers to track down and remedy
// shot at months of work. most of the nastier bugs in the game
AutoBreak(HitPointsExhausted); long before it hit the QA floor. Beyond
AutoBreak(ShotAt); its concrete foundation, its modular
What Went Right design and expert use of C++ made it a
// Turn over control to the autopilot snap to add or delete the different sys-
// when this function returns
AutoPilot(); 1. EFFECTIVE PROTOTYPES. When I
began working with Activision’s
HEAVY GEAR II production team, it was
tems we wished to experiment with.
Most of the foundation code and
graphics subsystem was shared with
} composed of a lead programmer, a top- our 3D layout tool, saving us a ton of
of-the-line 3D graphics programmer, a extra work. This extensibility and prop-
void director, a producer, a lead designer, er use of the C++ language was invalu-
ShotAt() and a lead artist. At that point, the able as we faced a deluge of changing
{ team had just been given marching design requirements and additional
RegisterString("Ha ha, ya missed"); orders to produce a second prototype game features. Our 3D math library
// Resume auto mode of the game for approval by the corpo- was easily modified for Intel’s Katmai
AutoPilot(); rate brass. I was hired because this pro- Instruction Set, and this enabled our
} totype required functional AI to give a OEM group to strike up some valuable
void feel of the intended game play. At this partnerships with external vendors.
HitPointsExhausted() early stage, the game already looked Although some HEAVY GEAR II–specific
{ super and a user-friendly 3D layout code may still lurk in the recesses of
RegisterString("Damn! I died!"); tool for the level designers was up and the Darkside, the engine’s debug ability
} running. I couldn’t believe the amount and modularity make it a novel choice

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


for any 3D simulator Activision may game and are actually solicited
wish to develop in the future. for new ideas to improve the

3. THEY LET US DO OUR JOBS. Those of


you who have had the experi-
ence of a tough supervisor or manage-
design. When the develop-
ment team and production test
team feel that the title has
ment group breathing down your neck reached beta, Activision’s main
as you tiptoed down your critical path QA test group takes over for a
will appreciate this: our front-line gov- formalized certification
erning body of director and producer process. Concise reports are
did a superb job of trusting the profes- painstakingly generated to
sionals who worked under them. They ensure that only genuine,
made our team aware of upcoming replicable bugs ever make it
milestones and the expectations of back to the development
Activision’s corporate group without teams. It is this group that is
succumbing to the temptations of ultimately responsible for the
micro-management and general mega- release of the title, so they take
lomania. This held true even when the their work very seriously.
team hit roadblocks or missed mile- Beyond Activision’s in-house
stones. They maintained their trust in QA department, we were aided
us. This contributed to a fertile envi- by an eager external group 65
ronment for new ideas and creative called “Visioneers” who avidly
solutions from the team. played any build we furnished
Activision’s upper-level management for them. They reported all Early sketches of CEF Heavy Battle Frame.
also contributed to the game’s success manner of problems, from
by letting the team decide when the hardware compatibility issues
game was finished. Management could to boring game play. The size and diver- was kicking off its production cycle, a
have released the game early and sity of this group made them an ideal series of first-person action shooters hit
announced a patch shortly thereafter, a QA avenue, as they represented a more the streets. Most if not all of the team
practice that is becoming common accurate cross-section of the gaming members were avid deathmatch play-
with many publishers nowadays. community. Activision also invited ers, and fierce competitions were held
Instead, Activision gave game players a people from different age groups to to decide which of us was the top dog.
break and released a quality, bug-scarce come into our office and play HEAVY Subconsciously, much of the game-
title with a lot of replayability and GEAR II in an observational setting. play feel we experienced while partak-
immersion. This is an admirable goal Testers’ responses were noted and given ing of these frag-fests found its way
in this era of market-driven develop- to the development team via written into our title. A fun enemy AI unit was
ment and patch-laden gaming web surveys. All these channels of software one that somehow evoked the same
sites. evaluation greatly streamlined emotional response as the poor slob I

4. GREAT QA
WORK.
With Activision’s
the development process
and contributed
heavily to the
had just fragged at lunchtime.
This held true for the HEAVY GEAR II
multiplayer experience as well. We
business plan, its quality of the fin- tried to translate what we thought was
development ished product. fun and exciting in our lunchtime
teams enjoy the
luxury of a high-
ly organized QA
5. GOOD GAME PACING. If deathmatches into experience of fight-
you sit down and
play HEAVY GEAR II,
ing against hulking Gears. I’m not say-
ing that if you want to create a great
department. On you will notice a com- title with lots of excitement that you
the front lines we pletely different feel should play first-person shooters, but I
have a smaller group from other games in the do think that it is important for all
known as “produc- genre. The pace is faster game developers to be avid players as
tion testers.” These and the action is much well. It is the game player that has the
folks deal directly more compelling. This upper hand at identifying the abstract
with the develop- was a desired feature notion of “fun” and, isn’t it the job of
ment team on a documented in the the developer to create that?
daily basis and original specification
intercept a of the game, but writ-
high percentage ing down that require- What Went Wrong
of the bugs before ment in a document
they ever make it out to external test
groups and Activision’s QA team prop-
er. Production testers become very inti-
doesn’t necessarily
mean you will pull it
off. At about the same
1. TO DEMO OR NOT TO DEMO. I love to
play the demo version of any
game before I buy it. In fact, as a gamer
mate with the inner workings of the time that HEAVY GEAR II I purchase games based on how good

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R


POSTMORTEM

the demo is. As a developer, however, a bugs and limitations in these systems aggressive. Although we implemented
demo version of a game is a tricky cost the team even more time and all of the required features as defined in
thing to pull off. In our case, most of generated bushels of frustration. This the original design specification (and
the game’s critical systems were not aspect of the turnover phenomenon is many not included), we missed our
functioning on all cylinders and many the least respected by developers and final ship date of October 1998 by nine
game assets didn’t exist yet. We had to has the most profound and variable months.
dedicate most of our time and
resources to this Cimmerian task,
although all our schedule called for
effect on scheduling. A periodic and
thorough code review process is an
effective way to defeat this problem.
4. ELEVENTH-HOUR SOLUTIONS. During
the production of HEAVY GEAR
II, many of our game designers and
was a small tiger-team consisting of a SCHEDULE TOO AGGRESSIVE. HEAVY external testers began to notice a dis-
designer, programmer, and artist who
worked on it a small percentage of
3. GEAR II was built completely
from the battleground up, so every
tinct absence of thrilling game play,
which were attributed to several fac-
their day for about two weeks. aspect of the game required significant tors: the AI was too vicious, the AI-con-
When the smoke cleared and the development time. Unfortunately, the trolled squadmates were disobedient
demo was finally posted, the team gave development schedule was too opti- and difficult to deal with, and there
a sigh of relief and basked in the mistic about how long it would take to was no noticeable ramp-up in difficulty
warmth of a job well done. Unfortun- create the title. and emotion — some missions were
ately, this feeling quickly evaporated Here’s an idea of the scope of the frightfully easy and others absolutely
when we realized that we had taken game, as specified by our design docu- impossible to complete. (The average
66 almost a three-month departure from ment. HEAVY GEAR II required a brand life expectancy of the player in some of
our original development schedule and new game engine and an accompany- our combat scenarios was about four
totally exhausted ourselves in the ing suite of design, development, and seconds.)
process. I still believe a demo debugging Our design team felt that they didn’t
is important to the success of tools. have proper tools and enough control
a game, but such a task over the AI and the environ-
should be closely correlated ment to adequate-
to the production of ly tune
the main SKU. their mis-
Attempting to factor sions and make
the demo development the game fun.
time and resources into a Most of this
schedule significantly was due to the
different from the game fact that we
itself can profoundly arrogant
affect both the prod- program-
uct’s quality and The game had mers designed and implemented most
timeliness. more than 40 single- of the game logic without enough con-

2. UNDOCUMENTED
TURNOVER. This is a very com-
mon yet unpredictable aspect of game
player missions, as well as
numerous historical and instant-action
missions. Additionally, multiplayer
sultation and input from our able
game design staff. To address these
issues, our team had to depart totally
development. New and better jobs or functionality (including cooperative from the design document and do a
personal issues always seem to snatch play with multiplayer AI) was required whole bunch of wild and creative
away even the most loyal and dedicat- for deathmatch, king of the hill, steal thinking. Only after some ad hoc
ed teammates. As a result, someone the beacon, and historical settings. We brainstorming sessions and grueling
inherits the workload of the fallen were also required to construct three mission-by-mission playability tests
comrade, putting the team and the different modes for each and all of did the pieces come together. Much of
schedule in a precarious situation. these missions: terrestrial, space, and the kudos we received from the gam-
When turnover occurred on the “Gomorrah” (combat in an enclosed, ing community is directly related to
HEAVY GEAR II team, we and our multi-level, near-future megacity) gam- these solutions.
schedule encountered a nasty surprise. ing modes. However, a situation like this could
Many of the systems we inherited The schedule called for a polished have had far worse results. The next
were only partially implemented and demo version of the game to be posted time around we will put much more
virtually undocumented. To make on all of the top gaming web sites. I thought and detail into our game
things worse, much of the code was joined Activision on November 10, design documents and provide a much
written to implement advanced ani- 1997, after HEAVY GEAR II’s first proto- more efficient education for our game
mation and mathematical methods type, and the final product was initially design staff concerning game play
used all over the game engine, and we slated for release for Christmas of the manipulation and control via scripts.
didn’t have a technical design docu- following year. This period included a We will also give them a more promi-
ment that we could refer to in order to protracted QA run-through, effectively nent role in the initial design of these
determine the intended solution for yielding a nine-month development systems to enhance their understand-
these systems. Working around the cycle. Unfortunately, it was far too ing of the underlying technology.

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


5. MARKETING ISSUES.
After experienc-
ing the high quality of
Christmas season, so we
decided to shoot for a
more realistic March
our second prototype, release. Our marketing
people at Activision group did their best to
began to get very excited respond to the blow and
about the future of attempted to keep interest
HEAVY GEAR II. We were in HEAVY GEAR II alive.
given a highly favorable March came and went,
reception at E3 in 1998, and the release date
where we finally revealed became a dancing phan-
the game. We subse- tom beyond our reach. We
quently released a developers knew we were
playable demo that met close to completing the
with similar acceptance. Conceptual art for gateship “Celestrus” orbiting barren Caprice. game, but nobody could
Our marketing staff, give our marketing team a
which had been pushing definite date so that they
this title from the start, finally had the factor was the amount of time and could keep the buzz up. Marketing did
leverage it needed to differentiate effort we had allocated to creating the what it could to keep whetting the
HEAVY GEAR II from its competitors. demo. We had hit roadblocks in the public’s appetite as the weeks rolled by. 67
Magazine articles began to run, OEM past and always rebounded in sterling Missing the targeted ship date is a
deals were made, and shelf displays fashion, so nobody on our team serious risk to teams that rely on new
were created as everyone anticipated allowed themselves to believe that the and unproven technologies — and it’s
the forthcoming release. demo would cause us to miss our target especially perilous for teams working
Only the development team knew ship date. under compressed development sched-
how alarmingly behind schedule the Then we slipped. Suddenly we were ules. Even the most innocuous develop-
game actually was, however. This was plunged into a nearly interminable ment tasks, if underestimated or mis-
due in part because of some unfortu- crunch mode. Our slip meant that the handled, can send your schedule flitting
nate turnover in our staff, but the main game wouldn’t ship in time for the away beyond your control.
POSTMORTEM

since our development team had the heel. Shipping a quality title is impor-
We Almost Got It Right… luxury of starting this project from tant, but so is strict adherence to
e received great reviews from scratch, we had the opportunity to budget and schedule. The HEAVY GEAR
W top gaming publications and
web sites. Our marketing group
learn a wide range of new methods
and techniques that would otherwise
II team learned a great deal from this
experience; we’ll keep that with us for
piqued the interest of the gaming have remained beyond our reach. a long time. At least we left a solid
community and our development Alas, our aggressive schedule and and reusable game engine in our
team produced a superior title. And risk taking proved to be our Achilles’ wake. ■

A D V E R T I S E R I N D E X
NAME PAGE NAME PAGE
Alias|Wavefront C3 MathEngine 27
Apple Computer C2,1 Maxi Cassette CD Production 70
Atomic Games 71 Metrowerks Inc. 30
BDDP Corporate 35 Morfit 22
Biomorph 70 Multigen 25
68 Black Ops Entertainment Inc. 71 Musicandsfx.com 70
Busybox.com Inc. 6,7 NewTek Inc. 36
Cinram 69 Numerical Design 2
Conitec Datensysteme GmbH 68 NxN Digital Entertainment 11
The Coriolis Group 67 Okino Computer Graphics 67
Credo Interactive 70 Rad Game Tools Inc. C4
Criterion Software Ltd. 5 Rainbow Studios 59
Diamond Multimedia 39 Savannah College of Art and Design 69
Digimation 17 SN Systems 20,21
Evans & Sutherland 15 Spatial Technology 19
Global Majic Software 29 Template Graphics Software 61
Intel 13 Vancouver Film School 69
Lips Inc. 33 VR 1 50

U.S. Postal Service Statement Of Ownership, Management And Circulation (Required by 39 U.S.C. 3685) (1.) Publication Title: Game Developer (2.) Publication No.: 1073-922X (3.) Date of Filing 1-Oct-99
(4.) Issue Frequency: Monthly (5.) No. of Issues Published Annually: 12 (6.) Annual Subscription Price: $49.95 (7.) Complete Mailing Address of Known Office of Publication: Miller Freeman Inc., 600
Harrison Street, San Francisco, CA 94107 (8.) Complete Mailing Address of the Headquarters of General Business Office of the Publisher: Miller Freeman Inc., 600 Harrison Street, San Francisco, CA
94107 (9.) Full Names and Complete Mailing Addresses of Publisher, Editor, and Managing Editor. Publisher: Cynthia Blair, Miller Freeman Inc., 600 Harrison Street, San Francisco, CA 94107. Editor: Alex
Dunne, Miller Freeman Inc., 600 Harrison Street, San Francisco, CA 94107. Managing Editor: Kimberley Van Hooser, Miller Freeman Inc., 600 Harrison Street, San Francisco, CA 94107 (10.) Owner: Miller
Freeman Inc., 600 Harrison Street, San Francisco, CA 94107, a wholly owned subsidiary of United News & Media plc, Ludgate House, 245 Blackfriars Road, London SE1 9UY, England (11.) There are no
Known Bondholders, Mortgages, or Other Security Holders Owning or Holding 1 percent or More of Total Amount of Bonds, Mortgages, or Other Securities (12.) Does not apply (13.) Publication Name:
Game Developer. (14.) Issue Date for Circulation Data Below: October 1999. (15.) Extent and Nature of Circulation / Average No. Copies Each Issue During Preceding 12 Months: A. Total No. Copies (Net
Press Run): 44,947 B. Paid and/or Requested Circulation (1.) Sales Through Dealers and Carriers, Street Vendors, and Counter Sales: 2,732 (2.) Paid or Requested Mail Subscriptions: 31,553 C. Total
Paid and/or Requested Circulation (Sum of 15B1 and 15B2): 34,284 D. Free Distribution by Mail (Samples, Complimentary, and Other Free): 1,439 E. Free Distribution Outside the Mail (Carriers and Other
Means): 1,283 F. Total Free Distribution (Sum of 15C and 15F): 37,007 H. Copies Not Distributed (1.) Office Use, Leftovers, Spoiled: 1,555 (2.) Return from News Agents: 6,385 I. TOTAL (Sum of 15G, 15H(1)
and 15H(2): 44,948. Percent Paid and/or Requested Circulation: 92.64%. Actual No. Copies of Single Issue Published Nearest to Filing Date. A. Total No. Copies (Net Press Run): 43,366 B. Paid and/or
Requested Circulation (1.) Sales Through Dealers and Carriers, Street Vendors, and Counter Sales: 2,460. Paid or Requested Mail Subscriptions: 32,167 C. Total Paid and/or Requested Circulation (Sum
of 15B1 and 15B2: 34,627 D. Free Distribution by Mail (Samples, Complimentary, and Other Free): 1,569 E. Free Distribution Outside the Mail (Carriers and Other Means): 0 F. Total Free Distribution (Sum
of 15d and 15e): 1,569 G. Total Distribution (Sum of 15c and 15f): 36,196 H. Copies Not Distributed (1.) Office Use, Leftovers, Spoiled: 1,695 (2.) Return from News Agents: 5,475 I. TOTAL (Sum of 15g,
15h(1) and 15h(2): 43,366. Percent Paid and/or Requested Circulation: 95.67%. I certify that the statements made by me above are true and complete (signed) Kimberley Van Hooser, Managing Editor.
S O A P B O X by Warren Spector

Go, Team!
uman nature being what it is, I was hugely

H
credited with those titles — the good
and the bad — vaguely embarrassing.
flattered to be asked to participate in the It would certainly be the height of
arrogance for me to take sole or even
September 1999 PC Gamer article about majority credit for them.
UNDERWORLD and SYSTEM SHOCK
the 25 most talented people in gaming — would have amounted to nothing —
wouldn’t have happened at all — with-
the one they titled “Game Gods,” lead- much of what I dislike about the game out the initial impetus provided by
ing to no end of entirely justified rib- business as we approach the millenni- Blue Sky Productions’ founder Paul
72 bing around Ion Storm’s Austin um. But let me be more specific. Neurath. UW and SHOCK would never
offices.... I’ve been credited with the creation of have been as cool or memorable as
Ribbing aside, such an honor repre- UNDERWORLD and SYSTEM SHOCK, hon- they were without the inspirational
sents an almost unmatchable expres- ored as “The Man” behind ULTIMA VII, leadership of project director Doug
sion of respect from journalists, peers PART 2: SERPENT ISLE, cited as the creative Church (the Most Talented Individual
and gamers — the sort of thing one force behind the “underappreciated” I’ve worked with in this team-oriented
works a lifetime to achieve. It may sur- WINGS OF business, if you must know). And let’s
prise you, then, that I almost turned GLORY. not forget the contributions of pro-
the opportunity down. grammers like Marc LeBlanc, Rob
Why? Fermier, Art Min, Jon Maiara, Dan
Well, the crux of the biscuit is that it Schmidt, and James Fleming, or
seems unseemly and, more important, designers like Tim Stellmach and
inappropriate to single people out for Dorian Hart, or audio guys like Greg
“star treatment” in a business as LoPiccolo and Eric Brosius, or testers
intensely collaborative as game devel- like Harvey Smith. UNDERWORLD and
opment. Before getting into gaming, I SYSTEM SHOCK are their creations,
always figured I’d end up making not mine. More accurately, they are
movies and spent a lot of time studying our creations, all of us applying our
that business — you know, “film, the unique, individual talents to the
collaborative art....” Well, I’m here to accomplishment of mutually agreed-
tell you that there is no more collabora- upon goals.
tive medium than gaming. The movies Similarly, SERPENT ISLE is the product
got nothin’ on us, friends. There are so of more than 30 hearts, minds, and
few renaissance game creators it’s hard- souls. I came up with a tone and “feel” I
ly worth the effort of identifying and wanted to achieve and a story concept. I
listing them. set some parameters on the world and
illustration by Jackie Urbanovic
In fact, honoring individuals repre- characters. But the minute-to-minute
sents an almost criminal denial of the As anyone who knows me will tell you, details of the storyline were fleshed out
critical contributions of the dozens of I’m intensely proud of those titles and by some amazingly talented designers
team members who are, if anything, my contributions to them. All of them — Steve Powers, Dave Beyer, Bill
more responsible for the success of the appear on my résumé, points of pride Armintrout, and others. And I watched,
games you know and love than the and high-water marks in a career that usually with jaw on ground, as lead
individuals typically credited with the also includes some real clinkers. artist Denis Loubet and the rest of the
creation of those games. And the eleva- (Thankfully, no one much talks about art team brought to life the world and
tion of individuals to star status, while the bad ones anymore but buy me a characters of SERPENT ISLE. And without
understandable in this increasingly drink sometime, and I’ll tell you hor- testers like Marshall Andrews, the game
marketing-driven age, symbolizes ror stories....) Frankly, I find being wouldn’t have been half what it ended
up being. I built not one inch of the
Warren Spector runs Ion Storm’s Austin, Texas, office. He is currently working on a map, wrote not one line of dialogue,
new role-playing game, DEUS EX. In the past, he has produced games for Origin and implemented not one game function.
Looking Glass Technologies. You can reach him at wspector@ionstorm.com. So whose game is it?
Continued on page 71.

G A M E D E V E L O P E R DECEMBER 1999 http://www.gdmag.com


SOAPBOX
Continued from page 72.
WINGS OF GLORY was largely the same Molyneux, Sid Meier, and some others but put them all together and you’ve
thing. I came up with an idea, a feeling in the PC Gamer group. (And, man, did got a package I’ve come to see as pretty
I wanted to evoke during play. I worked I geek out and have a great time hang- rare over the years, one that allows me
with a design team ultimately led by ing with them!) Maybe I’m the anom- to play to the strengths and help over-
Dave Beyer to craft a story and basically aly. I doubt it, though. I’m willing to come the weaknesses of almost any
nodded my head a lot in stunned agree- bet we’re all team-oriented guys. team. I’m not being modest. But “Game
ment as lead artist Whitney Ayres craft- I suspect the impetus to single out God”? Hmm?
ed the perfect look for the game. I one person for credit (or blame) is Anyway, if you’re a producer, project
watched, often dumbstruck, as pro- some kind of human need for short- director, or Game God, reflect for a
grammers Bill Baldwin, Tony Bratton, hand, a way to separate wheat (good moment as you talk to the press, pub-
and John Talley brought to near perfect games) from chaff (bad games) with lishers, and PR people on all the unsung
life the vision I had in my head when some simple formula based on past heroes whose names are never men-
we started. Who deserves credit for successes. Or maybe the spotlight tioned. Think of their contributions to
WINGS OF GLORY? turned on individual game developers, “your” success and to the “individual”
When “Warren Spector’s DEUS EX” making some of us “brand names,” is successes of the other lucky folks lauded
comes out, will people acknowledge just an easy way for marketing guys to on gaming web sites and in the pages of
the incredible contributions of lead earn their salaries. I don’t know. game magazines. Give credit where
programmer Chris Norden, lead What I do know is that I’d be credit is due. I know it’s hard. I know
designer Harvey Smith, lead artist Jay nowhere without the teams that have the press doesn’t want to hear this. But
Lee, and the rest of the team? Odds backed me up and often dragged me, do it anyway because it’s the right thing 71
are, they won’t and I’ll end up writing kicking and screaming, toward success. to do.
more articles and posting more Usenet And before anyone starts assuming I’m And if you’re one of the unsung,
messages and talking to more journal- being falsely modest, let me assure you I well, all I can say is hang in there. We
ists to convince gamers that individu- have quite enough ego for several ordi- may live in a PR world nowadays, but
als don’t make great games — great nary mortals. I know I’m a good design- your contributions are appreciated by
teams do. er, a good process manager, a good peo- people who “get it.” And maybe —
Now, maybe there are a couple of ple manager, a good business guy, and just maybe — if we all start talking
guys in the list of “Game Gods” who I’m even O.K. at the PR end of things. about this, someone will start listen-
are one-man shows. I certainly find There are certainly others who are better ing and you’ll get your well-earned
myself in awe of John Carmack, Peter than I am at any one of those things, day in the sun. ■

http://www.gdmag.com DECEMBER 1999 G A M E D E V E L O P E R

You might also like