game developer - september 2004

60
THE LEADING GAME INDUSTRY MAGAZINE >> PRODUCT REVIEWS TORQUE GAME ENGINE * NUENDO 2.1 >> MANHUNT TO MORTAL KOMBAT WHY VIOLENCE PREVAILS AND HOW IT HOOKS PLAYERS >> IMPROVING AI CUSTOM DEBUGGERS TO THE RESCUE >> TOP NEWS EA BUYS CRITERION, DEVELOPER REACTIONS SEPTEMBER 2004 SPIDER-MAN 2 TREYARCH’S THE SWINGING SYSTEM OF POSTMORTEM: GAME

Upload: vukhanh

Post on 08-Dec-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Game Developer - September 2004

T H E L E A D I N G G A M E I N D U S T R Y M A G A Z I N E

>>PRODUCT REVIEWS TORQUE GAME ENGINE * NUENDO 2.1

>>MANHUNT TO MORTAL KOMBATWHY VIOLENCE PREVAILS ANDHOW IT HOOKS PLAYERS

>> IMPROVING AICUSTOM DEBUGGERSTO THE RESCUE

>>TOP NEWSEA BUYS CRITERION,DEVELOPER REACTIONS

S E P T E M B E R 2 0 0 4

SPIDER-MAN 2TREYARCH’S

THE SWINGING SYSTEM OFPOSTMORTEM:

GAME

Page 3: Game Developer - September 2004

1W W W . G D M A G . C O M

DEPARTMENTS2 GAME PLAN By Jamil Moledina

Going to Plan B

4 HEADS UP DISPLAYEA buys Criterion, Internet cafe curfews, and more

8 SKUNK WORKS By Justin Lloyd and Alexander Brandon

GarageGames’ Torque Game Engine andSteinberg’s Nuendo 2.1

56 A THOUSAND WORDSSammy Studios’ DARKWATCH

POSTMORTEM26 THE SWINGING SYSTEM OF

TREYARCH’S SPIDER-MAN 2Before Spidey can rescue distressed citizens or sweep Mary Jane off herfeet, he needs to learn to swing without colliding into walls or crashingthrough windows. Treyarch’s programming team had to experiment withthe superhero’s pendulum physics, anchor-point algorithms, and IKanimation to see what stuck and what didn’t.

By Jamie Fristrom

FEATURES12 MANHUNT TO MORTAL KOMBAT:

THE USE AND FUTURE USE OFVIOLENCE IN GAMES

From GRAND THEFT AUTO’s bullet-riddled Vice Cityto MEDAL OF HONOR’s heroic battlefields, varyingdegrees of violence have been used tosimulate an unavoidable part of humaninteraction—conflict. Steven Kent invitesgame makers, the ESRB, and the NationalInstitute on Media and the Family to addressthe issue (without resorting to violence).

By Steven L. Kent

18 GROOVY GRAVY: TRICKING OUT YOUR CUSTOM GAME DEBUGGER

If your characters don’t return fire in combat,veer off course despite clear objectives, orvoluntarily walk into danger zones, you mayneed to debug your AI. Red Storm uses itsdebugging tool Gravy to keep the AI of GHOST

RECON 2 from misbehaving.

By David Hamm

SEPTEMBER 2004VOLUME 11, NUMBER 8

COLUMNS36 THE INNER PRODUCT By Sean Barrett [PROGRAMMING]

Opening Doors

40 PIXEL PUSHER By Steve Theodore [ART]

Stitch, Cut, and Relax

44 NECESSARY EVIL By Paul Hyman [BUSINESS]

Advergame Aspirations

46 AURAL FIXATION By Alexander Brandon [SOUND]

What Buzzes the Masses

47 GAME SHUI By Noah Falstein [DESIGN]

Brainstorming

COVER ART: William Lykke, animator, Treyarch.

CONTENTS[ ]

26

12

18

Page 4: Game Developer - September 2004

2 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

GAME PLAN[ ]YOU CAN REACH JAMIL MOLEDINA AT [email protected]

W W W . C M P G A M E . C O M

CMP Media, 600 Harrison St., 6th Fl., San Francisco, CA 94107 t: 415.947.6000 f: 415.947.6090

Game Developeris BPA approved

www.gdmag.com

SO LET’S CUT TO THE CHASE: EA BOUGHT Criterion. According to both sides (the one side?),Criterion’s middleware products, including thefabulous RenderWare 4 suite they dazzleddevelopers with at their GDC castle-booth, willcontinue to be available to all. In mycommunications with David Lau-Kee, president andCEO of Criterion (the former?), he’s been passionateand dedicated to developers’ needs and concerns,so I’m inclined to believe that he sincerely intendsfor RenderWare to continue to be available. However,that hasn’t stopped the rest of the entire developerand publisher community from going to orangealert. While scant few are willing to go on recordabout it (naturally), developers are suddenly afraidthat the drawbridge to their darling middlewarepackage has suddenly been yanked up. After all,having your middleware owned by a cameracompany doesn’t quite have the same impact ashaving it owned by one of the biggest publishers inthe industry. While there isn’t a shred of proof (yet)to validate that concern, it’s not stopping competingtool vendors from hastily updating their PowerPointpresentations to include a suggestion thatdevelopers go to Plan B for their middleware.

PLAN BGabe Newell also wants you to go to Plan B, not justwith Source engine, the technology behind HALF-LIFE 2’s facial animation/real-worldphysics/shader-based rendering/AI goodness, butwith its online alternative to retail distribution:Steam. After all, as he said at Meltdown, “the nextbattle isn’t polygons, it’s services.” While Microsoft isdeveloping its next major version of Windows,codenamed Longhorn, to include the ability toautomatically download patches for games, Steamalready does that today and delivers game serverconnections, instant messaging, and the gamesthemselves. While many publishers are wary tocomment on online distribution for fear of upsettingtheir retail relationships, there comes a time wheninflating budgets and dropping MSRPs make itdifficult to stay in business, and you have toconsider alternatives.

And if you’re still not sure there’s a real businessmodel there, take a look at Jamdat’s Form S-1registration statement for an initial public offering,

filed with the SEC. This leading mobile gamepublisher distributes virtually all its games overthe Internet, and showed for the first time anoperating profit—of a respectable $738,000 in Q12004 (compared to a loss of $1.7 million for thesame quarter in 2002). As more deals are struckin which digital entertainment is legitimatelyexchanged over the Internet in this and otherindustries (witness the agreement between Appleand Motorola to link iTunes to mobile phones), itseems to be only a matter of time before that logictakes hold in the game industry—particularly inthe Internet-friendly PC game business.

NAVIGATION TIPSYet, if all that seems a bit too Plan C compared towhere you started, there’s a more conservativealternative available. As we continue to teeter on thebrink of the next generation of consoles, withvarying levels of disclosure reflecting the peckingorder of the nobility of elements in the great gamedeveloper table, another way for developers to stayin the game is to develop for the PSP and DS. Whilethe SDKs are still pretty pricey relative to previoushandheld platform SDKs, overall development costsare supposed to be lower than console title budgets,and it’s a great way for developers to retain strongties to the key platform providers without thegamble of starting a two-year current generationconsole title project.

When things aren’t going as planned, you haveto make course corrections. While that scenariomay be frequent enough on the creative side ofgame development, facing it on the businessside can be more than a bit disconcerting. Butthen many of the challenges ahead have acreative workaround to them; the puzzle can besolved. You just have to be willing to accept thatyour Plan A may not pan out, and then trysomething new. *

GOING TO PLAN B

Jamil MoledinaEditor-in-Chief

EDITORIALEDITOR-IN-CHIEF

Jamil Moledina [email protected] EDITOR

Kenneth Wong [email protected] EDITOR

Jill Duffy [email protected] DIRECTOR

Cliff Scorso [email protected] EDITORS

Sean Barrett [email protected] Brandon [email protected] Falstein [email protected] Theodore [email protected]

ADVISORY BOARDHal Barwood Designer-at-LargeEllen Guon Beeman MonolithAndy Gavin Naughty DogJoby Otero LuxofluxDave Pottinger Ensemble StudiosGeorge Sanger Big Fat Inc.Harvey Smith Ion StormPaul Steed Microsoft

ADVERTISING SALESGROUP ASSOCIATE PUBLISHER

Michele Sweeney e: [email protected] t: 415.947.6217SENIOR ACCOUNT MANAGER, EASTERN REGION & EUROPE

Afton Thatcher e: [email protected] t: 404.658-1415ACCOUNT MANAGER, NORTHERN CALIFORNIA & MIDWEST

Susan Kirby e: [email protected] t: 415.947.6226ACCOUNT MANAGER, WESTERN REGION & ASIA

TBA t: 415.947.6223ACCOUNT MANAGER, TARGET PAVILION, EDUCATION & RECRUITMENT

Aaron Murawski e: [email protected] t: 415.947.6227

ADVERTISING PRODUCTIONADVERTISING PRODUCTION COORDINATOR Kevin ChanelREPRINTS Julie Rapp e: [email protected] t: 510.985.1954

GAME GROUP MARKETINGDIRECTOR OF BUSINESS STRATEGY Michele MaguireDIRECTOR OF MARKETING Jennifer McLean MARKETING SPECIALIST Scott LyonMARKETING COORDINATOR Yukiko Grové

CMP GAME GROUPVP, GROUP PUBLISHER APPLIED TECHNOLOGIES Philip ChapnickEXECUTIVE PRODUCER, GAMASUTRA.COM Alex DunneASSOCIATE CONFERENCE DIRECTOR, GDC Susan Marshall

CIRCULATION

CIRCULATION DIRECTOR Kevin Regan e: [email protected] MANAGER Peter Birmingham e: [email protected]. CIRCULATION MANAGER Lisa Oddo e: [email protected] COORDINATOR Jessica Ward e: [email protected]

SUBSCRIPTION SERVICES

FOR INFORMATION, ORDER QUESTIONS, AND ADDRESS CHANGESt: 800.250.2429 or 847.763.59581 f: 847.763.9606e: [email protected]

INTERNATIONAL LICENSING INFORMATIONMario Salinas

e: [email protected] t: 650.513.4234 f: 650.513.4482

EDITORIAL [email protected]

CMP MEDIA MANAGEMENTPRESIDENT & CEO Gary Marshall

EXECUTIVE VICE PRESIDENT & CFO John Day

EXECUTIVE VICE PRESIDENT & COO Steve Weitzner

EXECUTIVE VICE PRESIDENT, CORPORATE SALES & MARKETING Jeff Patterson

CHIEF INFORMATION OFFICER Mike Mikos

SENIOR VICE PRESIDENT, OPERATIONS Bill Amstutz

SENIOR VICE PRESIDENT, HUMAN RESOURCES Leah Landro

VP/GROUP DIRECTOR INTERNET BUSINESS Mike Azzara

VP & GENERAL COUNSEL Sandra Grayson

VP, COMMUNICATIONS Alexandra Raine

PRESIDENT, CHANNEL GROUP Robert Faletra

PRESIDENT, CMP HEALTHCARE MEDIA Vicki Masseria

VP, GROUP PUBLISHER INFORMATIONWEEK MEDIA NETWORK Michael Friedenberg

VP, GROUP PUBLISHER ELECTRONICS Paul Miller

VP, GROUP PUBLISHER NETWORK COMPUTING ENTERPRISE ARCHITECTURE GROUP Fritz Nelson

VP, GROUP PUBLISHER SOFTWARE DEVELOPMENT MEDIA Peter Westerman

VP, DIRECTOR OF CUSTOM INTEGRATED MARKETING SOLUTIONS Joseph Braue

CORPORATE DIRECTOR, AUDIENCE DEVELOPMENT Shannon Aronson

CORPORATE DIRECTOR, AUDIENCE DEVELOPMENT Michael Zane

CORPORATE DIRECTOR, PUBLISHING SERVICES Marie Myers

Page 6: Game Developer - September 2004

4 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

]HEADS UP DISPLAY[GOT NEWS? SEND US THE BIG SCOOP AT [email protected]

A LOS ANGELES ORDINANCE WILLsoon restrict what hours minorscan patronize Internet cafes thathouse five computers or more. Anyone under 18 will not be permittedat the cafes on school daysbetween 8:30 a.m. and 1:30 p.m.,or after 10 p.m. Additionally, owners

of the cafes will be required toinstall security cameras and obtaina police permit to operate.

The L.A. City Council approved theordinance in early July. It will take affectas soon as the 30 or so cafes that willbe affected are properly informed ofhow to comply with the regulations.

The move follows repeatedoutbreaks of violence at thevenues—more than 300, includingone that left a teen dead—as well asa January 2003 police investigationof the matter, prompted by

WE HAVE HEARD QUITE A BITof skepticism about how theindustry’s largest publisherwill license its internaltechnology to itscompetitors. Whatmotivation do they have tohelp other publishers get tomarket faster with a bettergame? Which customers willdrive features? Who getsthe best support at “crunchtime?” Given this newdevelopment, we believethat developers andpublishers should givealternative solutions, such

as NDL’s Gamebryo graphicsengine, a second look.

John Austin, President and CEO of NDL

ZOMBIE IS A LONG TIMElicensee of RenderWare—going all the way back to ourfirst two titles in '94. We wereplanning to license it again forPSP development. I hope EAallows Criterion to continue tolicense and supportRenderWare. It’s a great API forcross-platform development.

Mark Long, CEO, Zombie Studios

IT IS PROBABLY TOO EARLY to know what will be theexact outcome of thisacquisition. Middle-size andsmall-size game developerswho are using RenderWareare probably very concernedabout this acquisition. But, inall prospects, it is a serioussign that the gamingindustry has reached a newlevel of maturity regardingmiddleware, which is veryexciting, as well as a verysmart move for EA. It is alsovery positive for Virtools.Besides validating theinterest of the market for

middleware, this latestdevelopment comforts ourcurrent developments forVirtools’s future platform fornext-gen consoles.

Bertrand DuplatPresident and CTO, Virtools

I THINK THE REASON EAacquired RenderWare was tosimply get full access to theirtechnology to speed up thedevelopment of their next-generation console titles. EAis all about quick and efficientturnaround these days, andhas proven time and againthat they'll happily spend

whatever money or acquirewhatever company thatallows them to get a producton the shelf more efficiently.I’ve heard some say that theythink EA is trying to screw thecompetition, and while I'msure they enjoy makingeverybody else nervous, Idoubt this is their primarygoal. Product on the shelf isthe best and most efficientway to beat the competition,after all. Still, I wouldn’t besurprised if RenderWare didnot remain a viable optionthree to four years down theroad. Developing middlewareis not EA’s business, so it’sunlikely that they’ll supportits future.

Jay Wilson, Lead Designer,Relic Entertainment

>> first person

EA Renders the Next-Gen Future

Cyber Curfew Counter-Strikes Turf Wars

C O N T I N U E D O N P G 5 5

WHEN ELECTRONIC ARTS ANNOUNCEDin late July that it would acquireCriterion Software Group, industryheads buzzed at the news andpossible outcomes. The purchase,for about $48 million, gave EAcontrol over Criterion’s Guildford,UK, studio; intellectual properties,including BURNOUT and a first-person shooter in developmentcalled BLACK; and the middlewarepanacea for 20 to 25 percent ofdevelopers: RenderWare.

“We did this acquisition because wewanted the studio talent, we wantedthe intellectual properties BURNOUT andBLACK, and we wanted the middlewarefor internal use to position [EA] for thenext-generation technology,” says JeffBrown, vice president of corporatecommunications.

“As quickly as possibly, in the nexttwo to three years, I think you’regoing to see all EA games using someelement of the middleware, but notnecessarily the same engine,” Brown

says. As for whether the newRenderWare owner will definitelycontinue to license the middleware,Brown says, “It’s our plan.”

The middleware’s importance liesin facilitating industrywide growth,says Bruce McMillan, EA’sexecutive vice president, which canonly occur if developers haveeffective tools for creating bettergames. However, anonymouscomments from developerssuggest an overall feeling of

skepticism. What will stop EA fromkeeping RenderWare all for itself?

Whether EA will succeed in creatinga more robust industry won’t affectthe company’s future position in themarket. With RenderWare in itsstudios, EA undoubtedly has secureda piece of the next-gen pie, possiblyprofiting from the licensing feeswhile definitely avoiding the highcost of R&D to create new titles fornew consoles.

—Jill Duffy

>>

Leland Yee Dennis P. Zine

Page 7: Game Developer - September 2004

5W W W . G D M A G . C O M

A FORMER APPLICATION PROGRAMMER FOR VIVENDI UNIVERSAL GAMES,Neil Aitken, is attempting to sue his ex-employer for unpaid time worked sinceJune 2000. Aitken’s complaint (Neil Aitken vs. Vivendi Universal Games) claimsmanagement at Vivendi instructed nonexempt programmers to falsify recordsindicating weekend hours worked and “to enter eight hours for each workdayregardless of the actual number of hours worked.” He alleges that Vivendiissued paychecks for 40-hour work weeks only.

Allen Graves, the plaintiff’s attorney, says a law protects full-timecomputer programmers from getting burned by having nonexemptstatus. Programmers earning less than $44.63 per hour by law must bepaid time-and-a-half for overtime. Developers whose employers refuseto pay them overtime should keep personal, secure logs of actual hoursworked and should contact their state’s Department of Labor to file acomplaint. Additional information and advice can be found in an IGDAwhite paper, “Quality of Life,” online at www.igda.org/qol.

—Jill Duffy

WHEN ACCLAIM’S FISCAL YEAR ENDED MARCH 31, THE COMPANY’S NETrevenue totaled $142.4 million, an upsetting number compared to theprevious year’s $210.1 million. Officials released the news in July incompliance with NASDAQ Marketplace rules.

The filing included a paragraph from Acclaim’s independent auditorsexplaining causes for the sore financial breakdown, a cascading problem forthe last four consecutive years of filings. “The Company’s working capital andstockholders’ deficits as of March 31, 2004 and recurring use of cash inoperating activities raise substantial doubt about its ability to continue as agoing concern,” a portion of the report in the Securities and ExchangeCommission states.

“This explanatory paragraph is not a new qualification, as [the auditor’s]reports have included a going concern qualification relating to [Acclaim’s]financial statements, for each of the Company’s past four fiscals years,”company officials stated in a press release.

Furthermore, at least three organizations (Major League Baseball PlayersAssociation, Battleborne Entertainment Inc., and Classic Media Inc.) have calledoff agreements they made with the Glen Cove, N.Y.-based company, sayingAcclaim did not meet all the terms of the agreement, such as making royaltypayments. Acclaim officials maintain that interpretations of the details aremerely in dispute and that the company will seek amicable resolutions.

—Jill Duffy ACCORDING TO GRAVITY INTERACTIVE REPRESENTATIVE DAVID KIM,RAGNAROK ONLINE, an anime-styled MMORPG, recently topped 25 millionregistered users worldwide with over 780,000 concurrent usersglobally at any given time. Of those 25 million, nearly a million hailfrom the U.S. RAGNAROK ONLINE’s rapid growth can be attributed to itsdistribution model where, in most cases, Gravity partners with anexisting company in the target country that then hosts the gameafter the initial setup by Gravity.

While most popular MMORPGs feature an immersive world based on3D realism, RO sports 2D sprite-based anime characters reminiscent

Anime MMORPG 25 Million Strong

BEN’S GAME, DOWNLOADABLE ATwww.makewish.org/ben, is thebrainchild of Ben Duskin, a 9-year-old Leukemia patient, and EricJohnston, a developer fromLucasArts. Following his physician’sadvice to visualize the body’shealing process during treatment,Duskin imagined his medicine asPac-Man mowing down cancer cells.His disease in remission, Duskintold Make A Wish Foundation hewanted to create a videogame tohelp other patients cope with thepain and stress of cancer treatment.Make A Wish first approached gamestudios for help, but to no avail. Sothe foundation’s executive directorPatricia Wilson decided to appealdirectly to the developer communityinstead, through game sites andforums. That’s where Johnston, thelead programmer behind ESCAPE FROM

MONKEY ISLAND and STAR WARS:STARFIGHTER, stepped in.

Johnston, who created his firstgame PIPE DREAM in 10 weeks, judgedthat it was possible to make BEN’SGAME without the kind of extensivefunding and large crews usuallyrequired by commercial titles. He gotpermission from his employerLucasArts to use its facilities. Overthe next six months, he and severaldeveloper friends used their spareevenings and weekends to createthe game the boy had envisioned.Along the way, Johnstonrediscovered the fun of makinggames without commercialconsiderations. “No designcommittee, no economic constraint,just building exactly the kind ofgame we want to build,” he says.

Johnston is planning to deliver apresentation on this project at theupcoming Serious Games Summitin Washington, D.C., October 18–19,2004.

—Kenneth Wong

More Hourly? More Salary!

C O N T I N U E D O N P G 5 5

Acclaim Encounters Fourth Financial Letdown

Splinter Cancer Cells

Ragnarok manwha creator Myung-Jin Lee

Page 8: Game Developer - September 2004

6 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

]HEADS UP DISPLAY[

IN LATE JULY, MICROSOFT HELD ITS ANNUALdeveloper-only game conference, showcasing thelatest developments in DirectX, XNA, and othergaming initiatives. Microsoft chose the venue toannounce that its DirectX 9.0 SDK Update(Summer 2004) is now available from MSDN,tangibly demonstrating the XNA vision of creatinga common game dev tool environment. It containsupdated versions of the D3DX library, graphics

samples, sample framework, and Managed DirectXdocumentation. Most notably, the update includesHLSL support for Pixel Shader and Vertex Shader3.0, the previously Xbox-only PIX tool fordebugging Direct3D apps, and a Preview PipelineLibrary that offers real-time viewing of shaders onobjects, among other goodies.

Amidst all the hoopla, the Windows group madean appeal to developers to apply for the “Gamesfor Windows” logo, as part of Windows’ strategy tolure back and expand the PC game market. Theprogram offers free marketing and PR support toPC-debuting titles and an extra boost of credibilityto developers pitching their games to publishers.Recognizing that PC users can spend up to an hourtrying to install a game only to find that theirsystem is too out-dated to run it, the Windowsgroup also offers a web site geared toward themass market, featuring a tool that tells if aparticular game will run on your PC(www.gameadvisor.com). Also, the latest build ofLonghorn showed a dedicated game managementstructure, which includes a Windows Update-styled automatic patch download system.

—Jamil Moledina

WORLD CYBER GAMES 2004Game ConferenceBill Graham Civic Auditorium

San Francisco, Calif.

October 7, 2004

Cost: $85–$180

www.worldcybergames.com/wcg2004

XTREME GAME DEVELOPER’S XPOComputer History MuseumMountain View, Calif.October 9–10, 2004Cost: $99–$249www.xgdx.com

THE SERIOUS GAMES SUMMIT D.C.Loews L’Enfant Plaza HotelWashington, D.C.October 18–19, 2004Cost: $495–$695www.seriousgamessummit.com

CGAIDE 2004 (INTERNATIONALCONFERENCE ON COMPUTER GAMES:ARTIFICIAL INTELLIGENCE, DESIGN,AND EDUCATION)Microsoft Campus, Thames Valley Park, UKReading, UKNovember 8–10, 2004Cost: EU100–EU450www.scit.wlv.ac.uk/ffcm1822/cgaide.htm

heads up display

Every developer is amiddleware provider, creatingtools for future games.

Valve’s Gabe Newell discussing the games business at Meltdown

The Glow of Meltdown

ARENA WARS, AN ACTION-BASED 3D RTS game set in the year 2137,was developed by exDreamEntertainment and distributedjointly by Ascaron Entertainmentand Tri Synergy. This, according toits creators, may well be one of theearliest commercial games writtenentirely in C#. Benjamin Nitschke,the lead developer from exDream, is

credited with single-handedlycoding the game. He says writing inC# allows him to harness all thepowerful classes in the .NETframework: “It’s way easier to writea new application in C#. Unlike inC++, where it takes a long time fromcoding the first line to executing theprogram for the first time, this canbe done in minutes in .NET.”

C# programming allows Nitschketo design a 3D engine that’s a mere3MB in size—compact but nimbleenough to support three differentgame types, 60 single-playermissions, and multiplayer mode forup to eight participants (voice- andweb cam-enabled). “The basicengine in ARENA WARS,” Nitschkeexplains, “is only 550KB. Another

part of the engine uses somenative-code from C++ andAssembler, because .NET is not fitfor certain tasks, like OpenGL, voicefeatures, and Webcam features. Soall parts came to about 2–3MB.”But designing this engine is not asmall process; the whole projecttakes several million lines of code.

—Kenneth Wong

The Future is Smaller in C#

Page 10: Game Developer - September 2004

8 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

SKUNK WORKS[ ]

WHEN DYNAMIX, DEVELOPER OF THETRIBES franchise, imploded a few yearsago, several employees carried on thevision of improving the technology thatthey had developed over the years. Unlikemost displaced developers, they did notsimply wander off to yet another gamecompany. Instead, they formed a newmiddleware company, GarageGames,licensing the source code to the TRIBES 2game engine from the now-defunctDynamix, marketing it under the nameTorque Game Engine (TGE): a viable—andincredibly affordable—alternative forsmall, independent development houses.

WHAT YOU GET. TGE is a true gameengine in the same market as the QUAKE

and UNREAL engines. TGE contains severalindividual components: graphics, audio,networking, input, scripting, and tools.There is minimal AI support and thesecond weakest area is physics. As a TGElicensee, you receive access to thesource code repository via the OpenSource concurrent version system (CVS).The latest release is always availablealong with previous versions, allowinglicensees to review recent changes thatmay affect their development schedule.

TGE graphics makes use of a fixedfunction pipeline that is capable ofexecuting on 32-bit Microsoft Windows,Mac OS X, and certain Linux distributions.TGE makes use of OpenGL with a user-selectable fallback to DirectX 7 for Win32platforms if a compliant Win32 OpenGLimplementation is unavailable for theparticular brand of graphics card.

The audio component is a vanillaimplementation, enabled through theOpenAL API, offering ordinary stereo and 3Dpositional audio capability. Both Microsoft’s.WAV files and the Ogg format are supportedfor audio files. Other than OpenGL andOpenAL, all other components of the engineare proprietary to GarageGames.

TGE was developed to handle first-person shooters, so there’s quite a bit ofthat FPS legacy still apparent (in thedefinition of default cameras and player

input, for instance). GarageGames hasbeen working hard to show that TGE cancreate more than just FPS games bycreating and co-publishing several newtitles: THINK TANKS, ORBZ, MARBLE BLAST, plusvarious puzzle games. In developmentare role-playing games, puzzlers, real-time strategy, and several MMORPGs.GarageGames is also keen to promoteTGE add-ons by third-party developers,some of which include an RTS moduleand Torque 2D Gamemaker for creating2D games.

SCRIPTING. TorqueScript, TGE’s scriptinglanguage, resembles a form of type-lessC++ with most of what you would expectfrom a modern object-oriented scriptinglanguage; local variables, functions,inheritance, and function overloading.TorqueScript is interpreted; as each file isloaded, a sort of compile-on-demandreads in a raw text file and tokenizes it,generating a new compiled version, whichthe game then executes.

The script language is fast enough formost game requirements, but bear inmind that most of what takes place inscript is manipulation and testing of afew variables before placing calls in to apowerful C++ game engine. The script isextensible via C++, so a project requiringextra features or a speed boost can makeuse of a C++ solution.

PHYSICS/AI/MODELING. TGE currentlyincludes little AI function. According to

TORQUE GAME ENGINE

STATSGarageGames392 East 3rd Ave., No. 200Eugene, OR 97401(541) 345-3040www.garagegames.com

PRICETGE Indie License (games with less than $250K annual revenue): $100; TGE Commercial License (simulations or over $250K): $495 per programmerseat; Torque Shader Engine: (must own TGE) $295 indie, $995 commercial;Torque Network Library: $295 indie, $995 commercial.

SYSTEM REQUIREMENTSFor PC. Windows 98/SE/ME/2000/XP, Pentium II 500, 128MB RAM, OpenGL orDirectX-compatible 3D graphics accelerator, DirectX-compatible soundcard,Microsoft VC++ 6.0 and above.For Mac. OS X, G3 +, 64MB RAM, OpenGL-compatible 3D graphics accelerator,Project Builder (OS X only).For Linux. Pentium 500, 128MB RAM, NVIDIA TNT2 or better 3D graphicsaccelerator, Linux-supported sound card, XFree86 4.0 or newer with NVIDIAOpenGL drivers, glibc 2.2 or newer (e.g.: Redhat 7.x+, Mandrake 8.x+, Debian3.0+), SDL version 1.2 or newer (1.2.3 or later is recommended), OpenALRuntime or SDK Installation Mesa3D version 3.4 or newer (3.4.2 or laterrecommended), GNU make and g++ (version 2 or 3).For TSE. Windows 2000/XP, Pentium 1GHz, 256MB RAM, DirectX 9-compatible3D graphics accelerator with latest drivers.

PROS1. Responsive on the community forum and deal with support directly.2. Battle-tested, fully cross-platform, AAA game engine with all the bells and

whistles.3. Full C++ source code to the engine.

CONS1. Lack of an easy starting point.2. Documentation somewhat limited.3. Size and scope of the engine can be overwhelming.

PRETTY SLICK

TORQUE GAME ENGINE

Though Torque Game Engine was initially a FPS engine, GarageGames is beginning to introduce

features for RTS and puzzle games, such as MARBLE BLAST, shown here.

J U S T I N L LO Y D

Page 11: Game Developer - September 2004

9W W W . G D M A G . C O M

OUR RATING SYSTEM :

GarageGames, a third-party AI package isin development. Another area ofweakness is physics. GarageGames hasput out a capable engine but the physicsare rudimentary, with vehicles being themost developed and everything elsetaken care of with basic collisions, gravity,and friction. Anything beyond that wouldrequire a dedicated physics engine suchas Havok or Open Dynamics Engine.

NETWORKING. TGE’s networkingcomponent is the biggest prize in thepackage, capable of working throughfirewalls. It’s a robust, proven technologydesigned for high-speed action games ina high-latency, low-bandwidthenvironment. The behind-the-scenetechnology handles the problems ofinterpolation and prediction to smoothout the gameplay and animation.

GRAPHICS. The graphics core, based onTRIBES 2 (2001), is a capable beast evenfor a four-year-old design. Featurehighlights that really make the graphicsengine a powerful deciding factor againstrolling your own are: multiple renderingpaths for different hardware platforms;cross-platform capability without alteringyour game assets; a capable, native OS-looking windowing GUI; and automatedlevel-of-detail on almost all 3D gameobjects, including the terrain and water.Add to all that the built-in terrain, world,and mission-editor tools, and you’ve gota comprehensive set.

TGE offers large, open environments and acompetent portal system for transitioningto building interiors and underground areas.A single area can be several miles across,the terrain repeating indefinitely so there isno edge to the world, and dozens of large,complex buildings and structures can beplaced across this area.

One of the issues I encountered withthe repeating terrain is that permanentobjects, such as buildings placed on themap, cast shadows across the landscape.Travel far enough in any direction and themap will repeat and you can detect therepetition by locating the shadows thatare baked in to the terrain’s shadow map,

sans objects that are casting theshadows. According to GarageGames, theTorque Shader Engine (TSE) will soonhave a completely rewritten terrainengine for improved performance.

For 3D model assets TGE supportsmost of the major industry-standardpackages (3DS Max and Maya, forstarters) with limited support for others(such as Softimage). Models are createdand then exported via a plug-in to theappropriate game engine format, and therendering system is capable of handlingQUAKE and HALF-LIFE BSP level-data forbuildings and interiors.

WHERE IT NEEDS IMPROVEMENT. With aproduct of this size and complexity, thereis going to be a very steep learning curve,similar to learning Maya or Max. Throughinitial evaluation and development, I hada number of serious issues that left memuddling through with low productivityfor several weeks.

My biggest concern is the lack of cleardocumentation with no easy startingpoint where you can just jump right in.GarageGames’ web site, overflowing withvaluable information, often felt like alibrary after a hooligan had thrown all thebooks on the floor. The information youneed is there; you just have no ideawhere to look. The signal-to-noise ratio ofinformation is very good; it’s just thatthere’s too much signal.

In GarageGames’ defense, thedocumentation problem is beingaddressed and what’s available now is avast improvement over what was around12 months ago when I first looked at thisengine. The company has been workingfeverishly the past few months onbringing its documentation up to par withthe rest of its product. Proper organizationof the web site, the TGE documentationproject, and a separate, purchasableresource—Kevin Finney’s new book 3DGame Programming All In One—shouldprove helpful (see Resources).

FUTURE DIRECTIONS. GarageGameshas lined up as a technology partner withMicrosoft, porting TGE to the Xboxconsole ready for Xbox Live Arcade. The

price for licensing the Xbox version of TGEis still to be determined, but from what Igather, the final price wouldn’t cover thecost of a typical mid-range laptop.

GarageGames makes no bones about theage of its engine. Three years in gamedevelopment is a long time, and the enginewas designed to run on DX7-class hardwareeven when DX8 had been kicking around fora while. TSE is GarageGames’ answer tomany people who point at the latest UNREAL,QUAKE, and HALF-LIFE engines as the geekequivalent of technological muscle-flexing.TSE adds a lot of the features developershave been asking for, namely, a move awayfrom the fixed function pipeline to a moreflexible shader-driven format. Rather thanpatching an already long-in-the-toothgraphics engine or bolting on a simpleshading component, GarageGames decidedto do it properly. Currently, TSE is availableas an early-adopter product for developerskeen to exercise the new features and workout the kinks before general release.

I was pleasantly surprised to discoverthat GarageGames is working with someof the larger handheld devicemanufacturers to port TGE to platformsthat utilize the soon-to-be-released 3Dgraphic chipsets. Some of these deviceswere on show this year at GDC withprototypes utilizing chipsets from ATI,Intel, and NVIDIA, which approximate DX7-level device capabilities.

YOU GET WHAT YOU PAY FOR. The generalperception in the industry is that the moreyou pay, the better the product you get.The extra cost buys you, among otherthings, higher quality, responsive technicalsupport, and proper documentation. It’sdifficult to decide whether this holds truefor TGE. I’ve worked with other middlewarecompanies—Havok, Renderware, and id, toname but a few—and found them all to beimmensely helpful when you are a licenseepaying the big bucks. TGE, available for aslow as $100 per programmer, is in adifferent price bracket, offering a limitedlevel of support. So, if you can live withoutthe mothering the other middlewareproviders offer, TGE really does measure upin almost every area.

Justin Lloyd has more than 18 years of commercial game programmingexperience on almost every releasedplatform.

DA BOMB PRETTY SLICK SLICK SO-SO LAME

GarageGames has been wise enough to see beyond TGE, spinning off individual components from its

main product to interested developers. At GDC 2004, GarageGames announced the Torque Network

Library to be available to developers looking for a robust, proven, award-winning networking

middleware component at a reasonable price. I’m unsure what else can be broken out from TGE as

separate products, but it will be interesting to see what they try next.

Beyond TGE

Finney, Kenneth. 3DGame ProgrammingAll In One. PremierPress, 2004.

GarageGames forumsand resourceswww.garagegames.com

Torque Game EngineSDK documentationwww.garagegames.com/docs/torque/

RESOURCES

Page 12: Game Developer - September 2004

10 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

]SKUNK WORKS[

NUENDO 2.1A l e x a n d e r B r a n d o n

THERE ARE MANY AUDIO TOOLS available for general-purpose audioproduction. When the game industry wasrelatively young, such tools were out of thefinancial and practical reach of averagedevelopers. Now, game developers areusing the same tools used in the record,film, and TV industries. But before we startthumbing our noses at those who oncesneered at game audio, let’s remember thatour audio budgets are still low compared towhat other media spend. However, manytools on the market are now comparablewith the higher-priced options. One suchtool is Steinberg’s Nuendo.

Nuendo is a multi-track recording,editing, and postproduction system thatcovers nearly every audio need. Itrecords multiple audio tracks; has fullmixing capabilities compatible with justabout any control surface available;features a complete suite of MIDIrecording, playback, and notation tools;and offers compatibility with the largestlibrary of plug-ins available: Virtual StudioTechnology (VST). A standard developedby Steinberg, VST makes the product notonly a recording/editing/postenvironment, but also a platform fornumerous synthesizers and samplers.

Nuendo is a good choice for gamedevelopers for two major reasons. First, it isPC- as well as Mac-based and is designed tobe the first audio tool to provide theprocessing-power equivalent to Pro Tools,with native PC processing power. ITdepartments for internationally dispersedgame studios prefer one platform to dealwith for troubleshooting and repair, and thatplatform is PC. (Bear in mind that Pro Toolscomes on a fixed hardware platform,whereas Nuendo is hosted by the user’sown hardware. Therefore, Nuendo’sperformance may be affected by yoursystem’s horsepower. I used a Pentium 42.0GHz machine with 512MB RAM. Formaximum performance, Steinbergrecommends Intel Duel Xeon processorswith hyperthreading, AMD Duel Opteron 64-bit processors, or Appel Duel G5 processors,with 1–2GB RAM, 7,200–10,000RPM HD,and a 800MHz system bus.)

Second, it is a viable alternative to Sony’sSound Forge for sound effects productionand editing. Sound Forge has been a staplefor game developers worldwide as an audio-editing tool, but the multi-track editing

power that Nuendo offers alsogives great control andfreedom. Having said that, I useboth of these tools regularly.Many of my colleagues still useSound Forge exclusively forsound effects creation, but let’stake a look at how Nuendohandles it.

I had experimented withmulti-track sound editingaround four years ago, butonly saw it put to usemasterfully by Todd Simmons,the sound engineer at Ion Storm, on DEUS

EX: INVISIBLE WAR. When working in SoundForge, one has a lot of plug-ins available,but currently the only plug-ins nativelysupported are DirectX-based, whichoperate with less speed than VST plug-insfor processing needs (applying a reverb toa file will take a few more seconds on asystem with the same hardware). Inaddition, Sound Forge only supports editingtwo-channel at a time; when working withmultiple files, you need to switch back andforth. In Nuendo, you can have as manysound effects as you like in a track-basedview. You can also apply effects throughchannels, rather than applying them to thefiles directly. Finally, in Nuendo there is ahistory of every action you make, so youdon’t need to repeat Control+Z to go back toa specific stage. How often have you editeda file numerous times and wished youcould change what you did five edits ago—without going back and making all fiveedits again? With Nuendo, just as inPhotoshop, this is possible. Specifically,suppose you want to create a car enginesound and wish to load six to seven enginerecordings simultaneously, then mute anyone of them or groups of them at a time. InSound Forge, this would be a big hasslewith copying and pasting, but in Nuendothe process can happen in a fraction of thetime using a multi-track editing method.

There are only a few issues with Nuendo.It doesn’t have batch processing capability;its video importing codecs vary in quality

and speed; and its MIDI functionality isn’tquite as honed as the MIDI found in suchtools as Cakewalk’s SONAR. In the case ofbatch processing, this is an area whereSound Forge takes up the slack with itsBatch Converter 5.0. As for MIDI, Nuendofalls short in the quantization department,putting notes where they don’t belong insome cases. An example can easily bedemonstrated if you select a section ofMIDI notes and set your quantizingparameters, then hit “quantize.” You’llnotice that if you want your notes to lineup perfectly on the beats, it doesn’thappen. This works easily on a Korg Tritonthat I own, so this odd behavior in a majorsoftware app is disappointing. For videoneeds, Nuendo is good but requires smallAVIs to work well. It has displays that useDirectX, Quicktime, or ActiveX. SinceActiveX is not only out of use inmainstream development circles, but slowas hell, I recommend using DirectX. Buteven with this, make sure your video is nolarger than 200–300MB, or Nuendo willchoke. Aside from these shortcomings,Nuendo is the best tool for the money forall your audio needs and is poised tobecome a serious competitor for Pro Tools.

Alexander Brandon is the audio managerat Midway in San Diego and the AuralFixation columnist for Game Developer.

Nuendo’s multitrack layout with video display.

NUENDO 2.1

STATSSteinberg280 N. Bernardo Ave.Mountain View, CA94043(818) 973-2724www.steinberg.net

PRICE(Nuendo mediaProduction Systems)$1,499.99

SYSTEMREQUIREMENTSFor PC. Pentium/Athlon800MHz, 384MB RAM,Windows 2000 or XP,ASIO-compatible soundcard, USB port.For Mac. PowerMac G4867MHz, 384MB RAM,OS X 10.2.5, ASI)- andOS X-compatible soundcard, USB port.

PROS1. Excellent interface.2. Stable, affordable

price for mostdevelopers.

3. Most plug-insavailable.

CONS1. No batch processing

capabilities.2. Finicky MIDI

functionality.3. Specific video codec

requirements.

It should be noted that many similarities exist between Nuendo and Cubase SX, another Steinberg

product. In fact, the two are nearly identical. (Weird, huh?) Nuendo was introduced originally as a

postproduction tool and had no MIDI capability, but it did have surround-sound mixing, which Cubase

didn’t. It was also based on an entirely different engine and was much more robust than the aging

Cubase VST. Cubase switched to the Nuendo engine in Cubase SX 2.0. Now, the two are like multi-track

powerhouse brothers. Cubase can mix up to 6.1 surround channels. Nuendo can handle up to 8.0 and

10.2! So why not abandon Cubase? Well, Cubase has a large following that remains loyal.

Cubase

Page 13: Game Developer - September 2004

Save your spot at the Xtreme Game Developer’s Xpo.

Sign up today at www.xgdx.com!

But first, play by ours and win! Join Thomson Course Technology,the leading publisher in game programming, and enter the Play byYour Own Rules* sweepstakes at any participating Borders storeSeptember 1 – October 31, 2004.

One Grand Prize winner will receive a $1,000 online tuition package from The Game Institute, a premium membership toGameDev.net, and a one-year subscription to Game Developermagazine.

Three Second Prize winners will receive a $100 online tuition gift certificate from The Game Institute, a premium membership to GameDev.net, and a one-year subscription to Game Developermagazine.

Ten Third Prize winners will receive a premium membership toGameDev.net and a $20 Borders Gift Card.

Game ProgrammingAll in One,2nd EditionISBN:1-59200-383-4

$49.99

3D Game EngineProgramming

ISBN:1-59200-351-6$59.99

Game Art for TeensISBN:1-59200-307-9

$29.99

3D Game Programming All in One

ISBN:1-59200-136-X$49.99

Play By Your Own Rules!

Additional Sponsors

*No purchase necessary. Open to US residents ages 18 or older by 11/30/04. Void in Alaska,Hawaii, Puerto Rico, and otherwise where prohibited by law. Please read the official rules beforeentering the Play by Your Own Rules Sweepstakes.The complete rules are available atwww.courseptr.com/sweepstakes.

Page 14: Game Developer - September 2004

12 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

>> s t e v e n l . k e n t

MANHUNT TOMORTAL

KOMBAT

BEYOND THE PSYCHOLOGICAL STUDIES, THEmoralizing, and the sales charts, there is a basictruth about storytelling: There is no story withoutconflict. In interactive games, that conflict ispredominantly played out in violence. Just howprevalent is violence in games? Look at the fivegames nominated for best original game at E32004: DESTROY ALL HUMANS!, DONKEY KONG JUNGLE BEAT, GOD

OF WAR, JADE EMPIRE, and ODAMA. Not only does this listdemonstrate how prosaic violent games havebecome, it also shows how the degree of violencecan vary from one game to the next.

GOD OF WAR and DESTROY ALL HUMANS! have violence inmass quantities, no question about that. ButODAMA, a game that combines pinball controls andreal-time strategy, recreates the wars of feudalJapan, letting players crush enemies with a giantcannonball. Violent? And what about DONKEY KONG

JUNGLE BEAT? Here’s a game that the EntertainmentSoftware Rating Board (ESRB) will likely rate E forEveryone, in which the main character punchesenemies to clear them out of the way. According tothe Webster’s Dictionary definition of violence,“exertion of physical force so as to injure orabuse,” DONKEY KONG JUNGLE BEAT is indeed violent.What about JOHN MADDEN NFL? If football isdescribed as a violent sport, wouldn’t an accuratesimulation of that sport be violent?

Perhaps past versions of MADDEN may not havebeen violent enough. The latest iteration includes a

hit-stick feature that lets players add moreauthority to tackles. There are limits: The NFL willnot allow on-field decapitations; but watching thein-game replays of these hard-hitting tackles, youwould be hard pressed to say they are not violent.

“For people to get into the games, they need tobe aroused,” says Dr. David Walsh, president of theNational Institute on Media and the Family. “Peoplemight not get aroused watching a boringbasketball game; but if the game is back-and-forth, seesawing into the last minute, then there isall kinds of interest in that game. I think thatarousal and engagement go together.”

Walsh, whose organization creates an annualvideogame report card monitoring the progressand enforcement of the ESRB rating system, seesviolence as one of the most potent ways toimmerse players in games. “I believe that is whythere is so much of it. I think that the thing that islacking is the creativity that is needed to engagethe player without resorting to the tried-and-truerecipe of violence.”

BY DEGREESMario and Sonic jump on enemies to make themdisappear—a nebulous fate that may or may notinvolve death. Even though this is done with guns,knives, and explosives in the MEDAL OF HONOR games,it’s no bloodier than death in Mario’s MushroomKingdom. Then there are games like MANHUNT andKINGPIN, where the shooting and stabbing produceblood. According to the ESRB, the combination ofviolence and gore is more offensive than straightviolence.

“There are a number of factors that kept bothS T E V E N L . K E N T is the author of The Ultimate History of Video Games. He

writes about games for USA Today, MSNBC, Delta Sky, and the Japan Times.

His latest book, The Making of Doom 3, is scheduled for release in September.

The use and future use

of violence in games

>>

Page 15: Game Developer - September 2004

13W W W . G D M A G . C O M

Page 16: Game Developer - September 2004

MEDAL OF HONOr and CALL OF DUTY in the Teencategory,” says Pat Vance, head of the ESRB.They are straight, historical simulations forone thing. They are non-gratuitous in termsof the types of injuries they depict. Theamount of blood in these games is minimal.There’s no friendly fire. “These are straightWorld War II simulations, and the developersmade a concerted decision not to includethe more gratuitous injuries and otherthings that you might find depicted in an M-rated game.”

According to David Jaffe, director of Sony’sTWISTED METAL franchise and the upcoming GOD

OF WAR, stripping the gore out of games candiminish their impact. “I think you might beable to [separate the gore from the violence],but it’s not as simple as shooting someoneand simply not having any blood. The MEDAL OF

HONOR games do this. I love those games, butwithout the blood, they just don't havevisceral impact. They feel watered down.

“I think the idea of creating impactful

violence without gore is very interesting. I have not really thoughtabout it because up until now, my games have been arcade-like,fast-paced titles. I think it would be really hard to create violencewithout gore in that genre.”

If there is a genre in which violence and gore have beensuccessfully extricated, it’s fighting games. The first one-on-onecombat games, such as the Vectorbeam game WARRIOR, werebloodless because of the limitations of the hardware. Even whenSTREET FIGHTER II suddenly made fighting games arcade headliners,fighters remained unblemished for the most part. Then cameMORTAL KOMBAT.

“When Midway released NARC, it was the first digitizedvideogame—I think it was a little bit before PIT FIGHTER,” saysMORTAL KOMBAT co-creator Ed Boon. “All of a sudden, that openedthe door for all kinds of stuff, and we thought, ‘Let’s put blood onthe screen to shock people.’ It was not something that we setout from the beginning to do. It was more something we coulddo suddenly with the technology that became available.”

Capcom, and later Namco and Sega, did not follow Midway’slead. “TEKKEN is the equivalent of a PG-13 movie,” says Boon.“MORTAL KOMBAT is the equivalent of an R-rated movie: an M-ratedgame. It just presents it in a more hyper-realistic way. Theintended audience is different. We never make our games withthe intention [of attracting] younger players.

“It’s kind of like saying, ‘Why was Goodfellas an R-ratedmovie? And why would The Sopranos not be R-rated intheaters?’ Well, maybe it would. Okay, but another kind of movieof that type. It’s just a different way of presenting a game. Sincewe did it first in our games, it has become one of the things that

people like about MORTAL KOMBAT. [They like] the extremepresentation, so we keep it; but we don’t think, ‘Oh, this is anecessary ingredient in order for the game to be fun.’”

Boon admits that MORTAL KOMBAT did benefit from a certain amountof shock value back in the early 1990s, but states that despite thehead start they got from the shock value, good play mechanicswere even more important. “I don’t think that the violence was themain contributing factor. I think what the violence did was that itgot people’s attention. People who might not have played the gameplayed the game, and then they got hooked on the secret movesand all the hidden features and all the fun of playing the game.Today, we don’t think that the violence is going to carry us justbecause so many other games have it.”

In fact, when asked if MORTAL KOMBAT has kept up with the violencein games over the years, Boon’s answer is vehement. “Oh, no. No.When it first came out it was around the top of the heap in violence,but there are games that have long since surpassed it. I thinkviolence has been less and less of an ingredient in every MORTAL

KOMBAT game. I’m not saying that the violence has decreased in thegames. It’s just that violence is so common in games today that it’snot going to make you stand out.”

As of last Christmas, the poster child for over-the-top wasRock Star Games’ MANHUNT. According to the ESRB’s Pat Vance,MANHUNT isn’t alone. “I think that MANHUNT is very, very high-end. Ithink that there are other games that are as high. I think thatPOSTAL 2 was equally high. I think THE SUFFERING in some scenes isequally high. I think that there are other titles [in that categoryas well].”

V I O L E N C E I N G A M E S

“Just like when we saw a glut

of cute, furry mascot games

when Sonic was ruling the

roost, now we've got a bunch

of GTA/MORTAL KOMBAT/DOOM

wannabes. Everyone wants

a hit, so they mix their talent

for making great games with

the flavor-of-the-month vibe

(which, for the console

these days, can be

extreme violence).”

David Jaffe

“I think games are an

exciting medium that has

tremendous possibilities

for the future both for

education and for

entertainment. My hope

for the gaming industry is

that it continues to

advance and reaches the

maturity where it can rely

less on violence as a way

to engage players.”

Dr. David Walsh, PhD.

14 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

C O N T I N U E D O N P G 1 6

Page 17: Game Developer - September 2004

“We continued to work with Softimage onOnimusha 3 because we knew the project

would require reliable support as well as leading edge technology. With its flexible

character creation workflow, profound toolintegration and unique Animation Mixer,

SOFTIMAGE | XSI has significantly improved our workflow. And, of course, Softimage’s

support and responsiveness continue to be assets as we push the boundaries of

game design and development.”

Jun Takeuchi, ProducerOnimusha 3

Be a part of the 3-Democracy – order SOFTIMAGE | XSI now for only $495USMSRP

and receive the 5 DVD Softimage Production Series training set for free (a $200 value)!

Go to store.softimage.com for your copy now.

Download a free, fully-functional 30-day trial version of SOFTIMAGE | XSI version 4.0

from softimage.com/XSI

softimage.com/games

Character Samanosuke by ijFu Long Production, ©CAPCOM CO., LTD. 2004, ©CAPCOM U.S.A., INC. 2004 All rights reserved.

©2004 Avid Technology, Inc. All rights reserved. All prices are USMSRP for the U.S. and Canada only and are subject to change without notice.Contact your local Avid office or reseller for prices outside the U.S. and

Canada. SOFTIMAGE, Avid, XSI, and make manage move | media areeither registered trademarks or trademarks of Avid Technology Inc.

in the United States and/or other countries. All other trademarks contained herein are the property of their respective owners.

i am 4. the future of animation.

Jun Takeuchi on XSI

Page 18: Game Developer - September 2004

VIOLENCE AND STORYIf there was a watershed moment in whichvideogame violence went from shock toawe, it was the launch of GRAND THEFT AUTO III.Before GTA3, people talked about DEATH

RACE, CUSTER’S REVENGE, CHILLER, MORTAL KOMBAT,and DOOM. DEATH RACE, CUSTER’S REVENGE, andCHILLER are historical footnotes—gamesthat defined the boundaries of their timeand little else.

MORTAL KOMBAT is another story. MORTAL

KOMBAT was a major best seller, but it soldinto a decidedly non-mainstream marketof pre- and young-teen boys. DOOM, on theother hand, may be said to have brokeninto the mainstream. But DOOM launched nearly concurrentlywith MYST, the uniquely mainstream title that helped launchmultimedia as a technology for the masses.

More than any other company, Sony Computer Entertainmenthas succeeded in making games a mainstream form ofentertainment. And with the mainstreaming of videogames, thestage was set for GTA3 to become a truly mainstream game.

“I clearly remember when the first two GRAND THEFT AUTOs came out,”

says Boon. “There was a very small uproar: ‘I can’t believe they areletting people carjack as part of the gameplay. Oh my god!’ But thatwas just a PC game. It was not really mass market at the time andyou weren’t right there for the action. Suddenly, they presented it onPlayStation 2 and they had made great advancements in thegameplay. That’s when everybody started playing it. And wheneverybody started playing it, that was when it got the attention.”

Unlike the fighting, shooting, and FPS games that preceded it,GTA3 had a sophisticated storyline. It had its own dynamic world.“With certain games, violence is one of the tools that allows me todirect the feel/vibe of the game,” says Jaffe. “In the case of GOD OF

WAR, I wanted there to be this vibe of letting your inner beast out torun free; letting the player just cut loose and run wild. That was mybarometer. It was like: ‘Is this element making the player feel strongand brutal?’ If so, in it goes. And more often than not, violence wasone of the tools that allowed us to give the player this feeling.”

If the E3 demo was any indication, GOD OF WAR is an excellentexample of how violence can be integrated into a highly maturegame. In some ways, GOD OF WAR feels like a bad acid trip versionof Nintendo’s LEGEND OF ZELDA games. It has the same responsivecontrols and similar combat mechanics; only, instead of happyelves and a sparkling TriForce, GOD OF WAR has a suicidal Spartanand the hordes of Hades.

“For GOD OF WAR, we use violence to complement the storylineand make the player feel strong, brutal, and unhindered by

anything other than a sense of vicious fun that plays into thegameplay well,” says Jaffe. “It serves as one of the coreelements in TWISTED METAL, now GOD OF WAR. I like violence in gamesif it’s done in a creative, interesting way.”

According to the Motion Picture Association of America, 81percent of the movies submitted for ratings last year receivedan R rating. Twelve percent received PG-13, 6 percent received aPG rating, and only 1 percent received a G. (Only one movie

received an NC-17, making up less than one percent.) “Last year10 percent of the games were M-rated, and that was up from 8percent in 2002,” says Vance. “It’s gradually increased over theyears from 6 or 7 percent to 10 percent. There has probablybeen more fluctuation in other categories such as T than there isin M in terms of growth.”

Not surprisingly, Dr. Walsh is concerned about a rise inviolence across several media. “I would say that [violence] ismore prevalent in games. I mean, there are a lot of violentmovies, but there is a wider palette of themes in the movieindustry than in the game industry. That could have a lot to dowith the maturity of the industry. The movie industry is nearlyone century old, whereas the game industry is relatively new.”

When discussing violence in games, terms like “comic” and“cartoon” come up often. According to Vance, the violence inmany of the T-rated games is cartoon-like. “I think of it as beinglike punctuation, like an exclamation point,” says Boon. “It’s notnecessary for getting your point across, but it heightens things.”

“For me personally, I don't like it when violence gets tooreal from a subject matter standpoint,” says Jaffe. “All of mystuff is fantasy, comic book-style stuff. Even GTA3, set in thereal world, has a comic book/action movie vibe applied to it.Same with a game like MAX PAYNE.

“That’s where I am comfortable with violence. That’s where Ithink most players are comfortable: when the violence ispresented in a way that it clearly is done for fun and visceralimpact. It’s when you start getting to the real dark stuff, and theripped-from-the-headline scenarios, that people start eithertuning out or getting upset.” *

V I O L E N C E I N G A M E S

“When people think about

videogame violence they

tend to think about the

extreme forms which are

found in the M-rated

category. The Teen games

have violence in them,

but it comes in all forms,

some of it is relatively

cartoon-like.”

Pat Vance

“I do not think violence is

a way of immersing

players as much as a way

of getting their attention.

It’s almost like slapping

somebody in the face;

and now that you have

their attention, you need

to keep their attention.”

Ed Boon

16 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

C O N T I N U E D F R O M P G 1 4

Page 20: Game Developer - September 2004

18 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

T R I C K I N G O U T Y O U R C U S T O M G A M E D E B U G G E R

>>DEBUGGING

>> JUDGING THE EFFECTIVENESS OF GAME AI IS OFTEN DIFFICULT.Even when problems are identified, debugging the problems canbe very time consuming and tedious. A runtime tool for trackinggame state can be a great help in improving AI and reducingfrustration in many areas of development. AI coding on GHOST

RECON 2 benefited greatly from the creation of a remotedebugging tool affectionately known as Gravy. The term looselytranslates to GHOST RECON Analysis and Verification utilitY, but thename actually predates the acronym.

While developing an organized assault behavior for enemy AI,many groups of enemies were unexpectedly gathering in thesame area of the test map before proceeding to the target.Pathfinder results displayed in Gravy quickly revealed that anincorrectly specified danger zone was being factored into thepathing costs. A small AI coding change was made and theintended result was verified in Gravy.

In another debugging session, a group of characters seemedunable to return fire on the player. Gravy clearly indicated thatthe troops had a combat behavior, valid line of sight, sufficientaim time, and a number of other prerequisites for firing. A look atthe code revealed that only the desired rate of fire wasunverified in the tool. The rate of fire request had indeed beenignored. This was remedied in the simulation code and the rateof fire tracking was added to Gravy.

A GHOST RECON 2 designer observed two teams of enemiesclosely following their desired paths when suddenly, theyveered off course to take up defensive positions elsewhere.The behavior stacks in Gravy showed that platoon-levelorders had overridden the team-level plans, a problem easilyfixed with scripting adjustments once it was understood.

This evolving tool has been in daily use for nearly a year,initially assisting engineers with AI and simulationdevelopment. Mission scripters have also embraced thetool as a means of accelerating their design iterations. Theadvantages of a custom game debugger, for AI and beyond,can greatly outweigh the perhaps surprisingly leandevelopment investment in building such a tool.

BUILDING BLOCKSThe core components of a custom game debugger are verybasic—a method for messaging between the game and tool isthe main prerequisite. Data structures are needed to store andprovide access to the debug information, and UI elementsshould display the data in a useful format.

Gravy uses the Xbox debug channel for communication withthe GHOST RECON 2 Xbox engine and a basic Winsock system forthe PC version. Most networking sample apps do more workthan is needed to get debugger messaging running. Care shouldbe taken not to interfere with net traffic for any multiplayercomponent or other development tool. Also, an automaticreconnection scheme between game runs will save the hassleof manually reconnecting the debugger.

Messages can be sent to the debugger as specific eventsoccur, such as an AI spotting a player for the first time. Otherdata is more appropriately tracked each frame and sent to thedebugger when changes are detected. An overview of game datatracked in Gravy is listed in Table 1.

In the case of rapidly changing information, such as objectposition, it may be necessary to only register the change when athreshold delta has been exceeded. For example, Gravy updates

D A V I D H A M M is a seven-year veteran of Red Storm Entertainment,

where he works on all the game features that can’ t be easily seen,

heard, or explained to his parents. He can be contacted at

[email protected].

• Static 2D world bounds and obstacles

• Object creation, damage, and death events

• Object movement and facing

• Object awareness lists and active threats

• AI behaviors and target locations

• Human state, including stance, alertness, and suppressionlevels

• Team state, including rules of engagement and threat levels

• Vehicle state, including steering parameters

• Detailed gunshot and explosive data

• Pathfinder queries and results

• Standard debug text statements

• Object-filtered debug text statements

TABLE 1 Gravy tracking data for GHOST RECON 2

GROOVY GRAVY

Page 21: Game Developer - September 2004

19W W W . G D M A G . C O M

Page 22: Game Developer - September 2004

20 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

human positions with two meters of precision and facing within 60degrees. It’s important to find a balance that provides an accurateview of the game state without flooding the messaging system.

Listing 1 provides an overview of the message constructionscheme used with Gravy. A base class common to all debugmessages holds a timestamp for the data and two properties to helpwith information filtering. A data type identifies the class of messageand an object ID associates the message with a game entity such asa human, vehicle, or team. Derived message classes hold the actualgame debug data. This system allows for relatively efficientmessage handling without the overhead of a fully generalizedmessaging system.

The rest of the debugger coding effort falls into data managementand display. A standard UI library, MFC in the case of Gravy, canfacilitate this work. The needs here are game-specific, but a general logdialog of all messages received will help not only with game debugging;it can also be invaluable in verifying the debugger itself. This log shouldbe easily searchable and preferably filterable. Gravy also includesdialogs with information about the selected object, including AIbehavior stacks, and playback controls. The main pane uses basic GDIcalls to draw the overall state of the game.

WINDOW ON THE WORLDThe original motivation for Gravy was to evaluate the existing AI codeof the GHOST RECON series. This was a big task as the primary author of

the code had moved on, leaving a great deal of quality work butlimited documentation. Gravy proved ideally suited to thistask, providing information more reliably and efficiently thancode inspection. When additional programmers joined theproject well into development they too could turn to Gravy asa way to get up to speed on the state of the AI.

Although many games are played in a 3D world, it’s hard tobeat the efficiency of a 2D, top-down view in relaying basicsituational data. Figure 1 demonstrates a typical worldrendering seen in Gravy. The in-game maps in the GHOST RECON

series are heavily dependent on assets that cannot begenerated until the levels are nearly complete. By sendingGravy a representation of the static world at the start ofeach game, the debugger can render a simple but veryhelpful view of the play space.

Since this representation is based on messages straightfrom the game, there is no problem finding the right datafiles to match the map in use. In fact, Gravy reads no gamefiles at any point. This single, direct line of debugger inputadds credibility, as any displayed results must be purelyreflective of the actual game data in use.

Using a custom game debugger is a great way to improvethe visibility of the otherwise hidden inner workings of agame engine. AI decision-making, from strategic choices toweapon aiming, is a large class of behavior that’s oftendifficult to debug with only the player’s viewpoint in thegame. Figure 2 (page 22) illustrates some of the AI stateinformation that can be displayed for a character in Gravy.

Instrumenting code by pushing state changes and events to thedebugger as a feature is being written can turn up bugs quickly andhelp verify the desired behavior. When a feature is finished or put onhold, the debugger can continue monitoring its execution as otherparts of the engine are developed. This can give another layer ofprotection against future breakage beyond that of sprinkledassertions and regression testing.

Most games benefit from a simple text output of debug spew. Inbig projects, however, key debug statements regarding specificobjects can quickly get lost in a long list of irrelevant spam. This canlead to a lot of careful searching or removing worthwhile messagesthat aren’t related to features in active development. Using a debugoutput filtering scheme can improve the efficiency of this traditionaldebugging aid.

Figure 3 (page 22) illustrates the Gravy message log withfiltering options. Once the debugger has a display of all the

>>DEBUGGING

FIGURE 1 Gravy receives the navigation mesh edges from the game

and displays a basic top-down world view. Gridlines are used to

convey a sense of scale.

LISTING 1

/* Gravy data message types */

enum GravyDataType

{

gdtDebugOut, // Standard debug text

gdtAIScriptChange, // Addition and removal of behaviors

gdtSimEvent, // Spawning, shooting, and wounding

gdtObjectMovement, // Position updates

...

kNumGravyDataTypes

};

/* Base class for Gravy data messages */

struct GravyData

{

float mTimeStamp; // Game time in seconds

GravyDataType mDataType; // Class of data for filtering

UInt32 mObject; // ID of human, team, etc for filtering

GravyData(GravyDataType type);

...

};

/* Human and vehicle positional update message */

struct GravyObjectMovement : public GravyData

{

float mXPos; // World X in meters

float mYPos; // World Y in meters

float mFacing; // Angle in radians

GravyObjectMovement() : GravyData(gdtObjectMovement)

...

};

Overview of Gravy message construction for game debugger data.

C O N T I N U E D O N P G 2 2

G R O O V Y G R AV Y

Page 24: Game Developer - September 2004

22 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

G R O O V Y G R AV Y

>>DEBUGGING

important game objects, a selection can be tracked. If debugstatements are tagged with an associated object identifier, and thedebugger is already receiving the debug output as messages, afiltered debug trace is just one more small step with a big payoff.

A common buzzword in software development today is test-firstmethodology. There’s a lot of truth to the philosophy that a feature is

not complete unless it’s fullyverifiable. Unfortunately, gamesfrequently include complex systemsthat challenge traditional testingprocesses. Although raw data outputto a debugger can’t fully prove thecorrectness of game systems, it is arelatively effective alternative towriting endless test-case code. If theimpact of a feature still cannot bejudged clearly with a customdebugger, it’s a dangerous featurethat could break silently later.

INSTANT REPLAYPerhaps the easiest way todramatically increase the utility of agame debugger is adding playbackfunctionality. With the tool alreadyreceiving and logging messages,piping the messages back through

the system on command is a natural extension. Playback controls forGravy are shown in Figure 4.

A visual replay of events can be very helpful in identifying thecontext in which an error or strange behavior occurred. Full rewindfunctionality may be more effort than necessary, but simply clearingthe world state and replaying the message log at variable speedsprovides the key benefit.

Gravy provides a run-to option that will process messages up to theselected log entry, wrapping around to the start of the game session ifnecessary. A message-by-message step-through command is alsoavailable. Finally, additions and deletions from AI behavior stacks ofthe selected object can be stepped through to show a clear trace of thedecisions controlling its actions. Note that it should be possible tocontinue to receive real-time game data while reviewing an earlierportion of a game log.

With a continuous stream of game data available for later review, acustom game debugger becomes a suitable test bed for stress testingwith long-running, standalone game sessions. Gravy can track a battle ofeternally respawning forces that fight one another throughout thenight. In the morning, if the steady-state behavior has broken, the logcan be replayed and quickly advanced until the problem is isolated.

If playback is available for the current game session, the message logcan also be saved to disk for future review. Like crash dumps andstandard text logs, a game debugger log can be passed to relevantprogrammers and attached to bug reports to aid debugging. In the caseof AI behavioral bugs, sometimes a Gravy log is a great help in justdescribing the problem, let aloneactually fixing it. As with saved gamesand other file formats subject to changeduring development, a versioningscheme should be considered to avoidlog file-read failures.

Replay-capable debug logs havebenefits beyond debugging individual

problems. Logs ofextended gamesessions can serve asa snapshot of the stateof the game flow for aparticular build. Savingsuch logs can beparticularly usefulbefore diving intomajor system rewrites,if they are available forcomparison later. Avisual debugger canalso provide a highlycrash-resistant demoenvironment forshowcasingtechnology that can be appreciated in such a tool, such as coordinatedmovement of forces.

A debugger with playback functionality merits some comparison totraditional replay systems. In practice, Gravy has been much morereliable throughout development than an in-game replay system. A fullreplay system can be easily broken with a missedmessage that throws game events out of synch. With adedicated debugging tool, developers can pick andchoose which data to track and record during execution.Although Gravy tracks some delta-based data, therehave been no instances of logs missing data requiredfor accurate playback.

FEATURE CREEPA custom game debugger supplements traditional code-based tools and analysis, opening up new approachesto investigating and solving development problems. Asimple debugger framework can begin to produce theseadvantages, allowing new data-tracking features to beadded incrementally as a project grows.

A standalone debugger avoids some of the pitfallsassociated with piggybacking tools on the actual gameengine code. It is common to have a game editor shareas much code with the game as possible to allowaccurate visualization of levels using the game renderer.Although this may be a big win for an editor, sharingcode in this way can result in the tool breaking the gameor the game breaking the tool. If the debugger hooks in thegame engine are solely responsible for collecting and sendingdata, these dependencies carry minimal risk.

GHOST RECON 2 mission scripters have found Gravy helpful infinding behavioral bugs, which can often be quickly isolatedas scripting problems or game engine problems. An alternativeapproach might involve building a simplified simulation engineinto the scripting editor to provide feedback to the scripters.Any such tool may be better than nothing, but the game

debugger is again more credibleas the scripts are executed on theactual game build.

Once a game debugger isreceiving a rich stream of gamestate information, additionalanalysis can be performed. ForGHOST RECON 2, Gravy receives

FIGURE 2 Basic AI state

information can be viewed in

the main pane. The selected

object dialog provides

detailed behavior stacks.

FIGURE 3 The Gravy message log can be filtered by

information type and the selected object. The log

can be dumped to a text file for search operations.

FIGURE 4 Playback controls allow for offline

analysis of Gravy logs.

C O N T I N U E D F R O M P G 2 0

Page 25: Game Developer - September 2004

23W W W . G D M A G . C O M

details about each gunshot or explosive fired. The creation and completionof all AI behavior objects are also noted. In addition to representing thesechanges and events as they occur, Gravy is a natural place to tallystatistical tables of weapon usage and AI behaviors.

In this way, Gravy has been useful in tuning the combat model and infinding appropriate sizes for the AI behavior memory pools. Sample Gravystatistical output is shown in Figure 5. Monitoring statistical results is alsoa way to track overall changes during development and can turn upunexpected side effects and problem areas.

Although the process of adding new tracking data to a custom debugger canbe streamlined, pushing all state information in a complex game is impractical.However, an object selection mechanism in the tool can be leveragedto specify targeted execution breaks at runtime. For example, whenattached to a game running under the code debugger, Gravy can forcea break in the selected human, vehicle, or AI behavior source code.This provides quick access to the current state of any class membersin these objects that are not already explicitly exposed in Gravy.

As with other debuggers, a custom game debugger can benefitfrom two-way communication with the game. Such a tool is a naturalplace to include a console interface for sending debug commands tothe game. In addition to standard text entry, Gravy providesshortcuts for commonly used cheat codes, in-game debug displaytoggles, and other utility commands.

The 2D map display can also be used to specify a destination fora “teleport player” command, triggered by a double-click on anyvalid ground. This command interface could be further extended tosimulate events such as destruction of the selected object or anexplosion at a specified location.

CHOOSE YOUR OWN ADVENTUREThe idea of a custom game debugger is not new, but using suchtools isn’t currently a standard practice in the industry. The long list ofbenefits is perhaps held in check by the budgetary concern of allocatingdevelopment resources to a tool that is not explicitly required in the

FIGURE 5 Gravy tabulates some recorded game events into statistical reports,

useful for gameplay tuning.

Page 26: Game Developer - September 2004

24 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

production chain. Focus on toolsdevelopment seems to have steadilyincreased in many studios, but much ofthis effort has been needed to meetincreasing demands on integrating art,sound, and other assets. Less attentionhas been given to tools that help solvethe growing problems of code complexityin modern game engines.

The resource demands of deployingsuch tools aside, they do have limits. Agame debugger will likely be best suitedto debug builds. The messaging hooks in the engine and the extranetwork traffic can throw off profiling data and could potentially skewthe performance too much for a release build. Gravy is configured toconnect with debug builds only, but support can be quickly enabled inrelease builds for special-case debugging needs.

Any standalone tool development may face issues of access toexisting game code, such as enumerated types and helper routines.The same architecture of separation that avoids conflicts and upkeepbetween games and debuggers can also be a drawback whenattempting to access structures that are readily available in the maingame code. Gravy links with some core utility libraries shared with the

game that changeinfrequently to provide somebasic common functionality.

Another useful practice toreduce frustration involvespassing enumerationsthrough the debug messagingsystem at runtime, rather thanstatically redefining them in the tool.For instance, when new AI behaviorsare added to GHOST RECON 2, Gravy codeonce had to be updated to recognizethe new type. Now, less maintenance

is required because AI messages to Gravy define the behaviortypes dynamically.

Gravy continues to grow, improving our ability to add new featuressafely to a massive game. The nature of AI development on GHOST RECON

2 made it evident that Gravy would be a clear win after just a few daysof design and experimentation. Other projects may require a largerleap of faith to invest in a custom debugger. However, even with therise of licensed engines and middleware, games are only gettingbigger. When adding that final hour must-have feature, a clear viewinside the many layers of game logic is invaluable. *

GROOVY GRAVY

Take control with Araxis Merge. Compare and merge your fi les and

folders

Araxis Merge v6.5 for Windows is designed to help you work quickly and accurately with multiple revisions of text fi les. Use it for team soft ware/web development, code review, code audit and release management. Download a free 30-day trial from www.araxis.com.

Standard Ed $129 ■ Professional $219

■ See diff erences at a glance■ Two and three-way compare■ Create html reports■ Point-and-click merging■ In-place editing with undo

■ Automatic merging■ Integrated folder hierarchy

comparison and merging■ Unicode/mbcs support■ Integrates with other apps

Quarter Page GameDev and DDJ.indd 1 27/01/2004 17:15:58

Page 27: Game Developer - September 2004

Getting your game to market, you have two choices:

1. Use Perforce2. Be a runner-up

Perforce’s Software Configuration Management

System is the choice of winners, because no

other tool can match the speed, control and

reliability that it brings to the management of

digital assets (binary and text files).

Maintain your top speed no matter how many

users or files. At the core of Perforce lies a

relational database with well-keyed tables,

so simple operations can be accomplished in

near-zero time. Larger operations (like labeling

a release and branching) are translated into

keyed data access, giving Perforce the

scalability that big projects require.

Install it fast, learn it fast, execute operations

fast. With other SCM systems, developers

face an unpleasant choice: do it the right

way or do it the fast way. Perforce’s speed

and reliability mean the fast way is always

the right way.

Work anywhere. Perforce is efficient over

high-latency networks such as WANs, the

Internet and even low-speed dial-up

connections. Requiring only TCP/IP, Perforce

makes use of a well-tuned streaming message

protocol for synchronising client workspace

with server repository contents.

Develop and maintain multiple codelines.

Perforce Inter-File BranchingTM lets you merge

new features and apply fixes between codelines.

Smart metadata keeps track of your evolving

projects even while they develop in parallel.

Supports all development platforms.

Perforce runs on more than 50 operating

systems, including all flavours of Windows,

UNIX , Linux, Mac OS X and more.

Integrate with leading IDEs and defect trackers:

Visual Studio.NET®, Visual C++®, Visual Basic®,

JBuilder®, CodeWarrior®, TeamTrack®, BugzillaTM,

ControlCenter®, DevTrack® packages, and more.

Fast Software Configuration Management www.perforce.com

Download your free 2-user, non-expiring, full-featured copy now from www.perforce.com

Free (and friendly) technical support is on hand to answer any and all evaluation questions.All trademarks used herein are either the trademarks or registered trademarks of their respective owners.

Whoever said Games were all about winning and losing... was right -

so get Perforce’s Fast Software Configuration Management on your team.

Page 28: Game Developer - September 2004

26 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

AS KIDS, WE ALL WATCHED THE 1970S SPIDER-MAN TV SHOW AND COLLECTIVELY

wondered “what exactly does Spidey’s web attach to?” While nobody batted an eye when

Spider-Man seemed to cast his web into thin air and swing through the sky, we couldn’t

help thinking that there had to be a better way to represent swinging. When the movie

came out, the issue was put to rest: Spider-Man doesn’t have to swing from the sky; it’s

much more dramatic to swing from buildings. And the rest, as they say, is history.

THESWINGING SYSTEM OF

TREYARCH’SSPIDER-MAN 2

GAME

C O N T I N U E D O N P G 2 8

W R I T T E N B Y :

J A M I E F R I S T R O M is a programmer, manager, and designer who has worked in the game

industry since 1991. Titles he’s worked on include the MAGIC CANDLE series, DIE BY THE SWORD,

TONY HAWK, and SPIDER-MAN and SPIDER-MAN 2. He’s contributed to Gamasutra.com as well as

Game Developer, and maintains a blog on game development at www.gamedevblog.com. He

can be reached at [email protected].

Page 29: Game Developer - September 2004

27W W W . G D M A G . C O M

PUBLISHER:Activision

NUMBER OF DEVELOPERS:Six at inception swelling to approximately 60 at peak

LENGTH OF DEVELOPMENT:2 years

RELEASE DATE:July 2004

PLATFORMS:Xbox, PS2, GameCube

DEVELOPMENT SOFTWARE USED:Perforce, 3DS Max, Photoshop, Visual Studio.NET, ProDG

GAME DATA

Page 30: Game Developer - September 2004

28 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

Neversoft, the developers of the first SPIDER-MAN game had already done some workfiguring out how to make the web swingingmore realistic by testing out a system thatworked something like the old grappling-hook mod from QUAKE; you picked a point toattach your web to and then you would swingfrom there, using pendulum physics.Neversoft programmers discovered that itwas difficult to pick the right point and thatSpider-Man almost never went where theplayer wanted him to go. Knowing about thatdead-end gave us the idea to utilizependulum physics to create the sensation ofswinging, but we wanted the game to pick

your anchor points for you.It may seem obvious that this is the direction we should have

taken the franchise. After all, Treyarch had tried to capturephysical simulation in previous games such as DIE BY THE SWORD,a game that featured simulated sword fighting—VSIM, we calledit. While the game had a nice cult following, it appealed to a verysmall number of people because learning the system was toodifficult. Furthermore, we had experimented with physicalsimulation with our surfing and snowboarding games and had toscuttle the experiments. We used to joke that this was VSIMSpidey and felt very optimistic about the direction we weremoving in. While we did have some concerns, we werecommitted to ensuring that history would not repeat itself.

WHAT WENT RIGHT

1WAITING FOR THE RIGHT MOMENT. We actually experimentedwith our first proof-of-concept for a new swinging system

midway through the development of the first SPIDER-MAN game afew years back. It sucked because you kept sticking to wallsyou didn’t want to stick to, and controlling it was difficult. Youcould learn to become somewhat proficient with it eventually,but the learning curve was incredibly steep. When we showed itto the project lead, he took the controls from us cold and startedtrying to use them, but he couldn’t figure them out, so he red-lighted the idea right there. While this was frustrating for us, hewas right to red-light it. We had already developed a handful oflevels at this point, and introducing a whole new way ofmovement would mean redoing many of them, which wassomething we did not have time for.

But after our first SPIDER-MAN game shipped, we were in aperfect position to try dynamic swinging again. It would betwo years before the next movie came out, and we didn’t havea screenplay yet, so it was an ideal time to prototype newgameplay ideas. It was time to try salvaging the swingingexperiment.

2PROTOTYPING.The Cerny method espouses an iterativesuccession of prototypes, the last of which is a “shippable

prototype” and the model for which the rest of your game ismade. This is exactly what we did in the early days of our SPIDER-MAN 2 game as we tried to make a game with a dynamicswinging system where the webs didn’t anchor to the sky.

We had a fallback position; if we couldn’t make the systemwork in a few months, we’d go back to our old tried-and-truesystem from our first SPIDER-MAN game.

C O N T I N U E D F R O M P G 2 6

Page 32: Game Developer - September 2004

30 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

At first, it was simple: We manually placed a bunch of what wethought were desirable anchor points in our level on buildingcorners and edges, and depending on where you were pressingthe joystick, when you shot out a web line, it would choose theanchor point it thought was the best. That first prototype had noanimation—a stiff-armed Spider-Man would swing unconvincinglyfrom the web. We made it so he no longer automatically stuck towalls, and that was a big help. And while he bumped into walls alot, it felt a little more like being Spider-Man.

I’d like to define a couple of terms more rigorously. (Whoknows? Maybe they’ll stick and become part of game developervocabulary.) A proof-of-concept (POC) is a videogame demo that

exists only to prove a concept; it can haveplaceholder art, it can be missing animationsand sounds, but as long as it shows enoughpromise to justify making a better POC, it’s asuccess. A prototype, on the other hand, is avideogame demo, most of which will probablygo into the final game with only minor changes.

Our POCs were promising and thedevelopment team really enjoyed playing withthem. In fact, we could sit there for hours,sometimes, just swinging around our smallprototype level, getting a feel for the swinging.But how would others react, if they wereintroduced to the new system cold?

3ROTATING TALENT ONTO THE SYSTEM. The swinging systemwas very much a collaborative effort. Although sometimes one

programmer would work on it alone, fairly often a group of peoplewould be in the office trying it and making suggestions. Differentaspects of the system were worked on by different people. Almost

everyone who worked on the game in those early months was acritical part of the feedback that directed the coders to implementfeatures and tools to make the swinging fun and controllable.

Programmers took turns owning it as we advanced through asuccession of prototypes. One coder got it up and running,different coders tried different experiments with controls,another got it to blend between animation poses, another got it

working indoors, another added the IK animation on the arms,and so on. The anchor-point searching algorithms for which itfound anchor points went through many hands and stages ofrevision, and the coders provided interfaces so the designerscould tweak and tune the system for maximum effect.

And the system didn’t exist in a vacuum either. The motion ofthe camera is key to making it feel dramatic, and the city itselfwas built to make the swinging fun, as we discovered certainwidths of streets and heights of buildings that worked andothers that didn’t. The end result was much better than it wouldhave been if a single person had owned the system.

4THE ADVANTAGES OF CONSENSUS. There was one decision inparticular I’d like to highlight—the choice to be able to swing

from two webs. Some people on the team wanted to be able toweb-swing with just one button, holding down the button wouldshoot out a web line and swing; and releasing the button wouldlet go. Others on the team wanted to be able to swing from twowebs, shooting out the second web before you had let go of thefirst, and to hang from the two webs. But we faced a challenge in

Page 34: Game Developer - September 2004

32 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

implementing that effect without usingup one of our precious buttons for thesecond web. So the final idea we wentwith was to press the button once forone web and twice for the second web.Thus, you could swing with just onebutton, and you could still swing fromtwo webs.

This gave us the two webs we wantedand the one-button control. The twowebs turned out to be a nice point tomake in PR and marketing—showingscreenshots of Spidey hanging from twowebs helps show that the web-swingingis something dramatically new this timearound. But it had disadvantages, whichI’ll hit in the What Went Wrong section.

5HALLWAY GAMEPLAY TESTING. Youdon’t always need to put ads in the

paper to get focus testers. If your company is big enough, youcan find people “down the hallway” working on other teams, or inIT, or as administrative assistants, who will test the gameplay foryou. We would poach other teams for testers, but our preferencewas always to find testing virgins, or “Kleenex testers,” as Maxiscalls them—people who had never seen the game before, whowould test it just once.

Because this was a whole new kind of gameplay, we werepretty sure people would have to go through a tutorial and alearning curve before they got it. We were consciously violatingthe rule of keeping our core gameplay brain-dead simplebecause we thought the result was dramatic enough to justify it.Still, just in case a tutorial wasn’t necessary, we tested on acouple of people without one in a simple POC where Spidey had

to chase a floating disc through nondescript city streets andsimple block buildings. As we should have expected, they didn’tget it. They tried playing the game like the previous SPIDER-MAN

game, climbing up to the top of a building, jumping off, trying toswing, and ending up back on the ground again.

So our next POC had two parts—a tutorial level and the chase-the-disc level. The tutorial level gradually took you throughswinging step by step: first swing from this pole, then from twoin a row, then jump and swing, then swing down this street. Laterwe realized this was overkill, but when we started gameplaytesting, we saw some good results. People were now swinginglike Spider-Man. They were clumsy at first, but they got better. Wegot to the point where after about 10 minutes of play peoplewere competent swingers. Ten minutes sounds good on paper—but if we were making any other game it would have probablybeen nine minutes too long. People don’t have much patiencewith their videogames. We were counting on the draw of SPIDER-MAN to make people give it a chance. In other words, kids, don’ttry this at home. Still, we were getting to the point where we werestarting to feel ready to show it to upper management.

WHAT WENT WRONG

1EXECUTIVES TOO LENIENT? The day we decided we wereready to show our POCs to upper management, I was nearly

sick with stress. All the stories I’d heard about game publishersfearing change and innovation were going around in my head,those rumors about how THE SIMS was nearly canceled fivetimes and so on and so forth. Would we have to flush months ofwork down the drain?

It actually went incredibly well—like expecting to have topunch through a rock and encountering tissue paper. Ourproducer loved it and brought in his boss. And he brought in hisboss. And he brought in his boss. Everyone loved it.

I can’t believe I’m saying this, but maybe they were too

Page 36: Game Developer - September 2004

34 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

lenient. The problem was that it was just us demoing the systemto executives—they didn’t actually get hands-on experiencewith it—and one thing about that early swinging system wasthat in the hands of an expert, it looked really cool, but in thehands of a newbie it looked like a failure.

2NOT ENOUGH RIGOROUS FOCUS TESTING IN EARLY PHASES.Hallway gameplay testing is great, but it isn’t enough. Most of

the people who work at a developer are fairly hardcore gamers,and you’re not going to get enough of a feel for how casualgamers are going to receive the game by only testing on peopleat your company. Once we started focus testing with externalpeople, we learned a lot. Their reactions were very mixed—someof them got it, but some of them were clearly struggling, fightingthe controls, bumping into walls. Some of them were souncomfortable with the swinging they’d start running throughthe streets instead of propelling themselves through the city.

After all our hard work, this was hard to take, so we went into

denial. The conclusion we drew was that the tutorial wasn’t goodenough. (In fact, our first focus test had no tutorial at all. Thatwas a big mistake. We postponed testing for a month so wecould get a tutorial in before the next focus testing session.) Wewould have to work on it and keep testing and repeat until wecaptured as many people as we could.

3IT’S NOT THE TUTORIAL, IT’S THE SYSTEM. So that’s what wedid—continued working on the tutorial and continued to bring

in more focus testers and people started to get it and have fun.But still, even with all that, there was at least one person in eachtest session that seemed to be struggling. One focus tester evensaid, “I liked it better the old way; you could just cruise alongwithout really paying attention.” Even though the other focustesters disagreed vehemently with him, it was still worrisome.

Some of us thought we should just write off those dissatisfiedcustomers—you can’t please everybody all the time—butcommon sense prevailed and we eventually agreed we had to dosomething. The problem was not that the tutorial wasn’t goodenough. The problem was that the system was too hard. This wasthe birth of our Easy Swinging mode, which worked just like theone button swinging described in the Advantages of Consensussection. We were getting close to our submission date and therewas no time to rewrite the tutorial to handle the easy swinging

mode, but the press-to-hold the web, release-to-let-go mechanismwas self-explanatory enough that the next round of testers webrought in seemed to get it. It felt very risky to be changing ourcore gameplay at that late hour, but it worked, and it probably willmake a lot of our players happier.

4THE DISADVANTAGES OF CONSENSUS. On the other hand, abig, ugly dialog box comes up when you start the game,

asking if you want Normal or Easy swinging. The team is split onthis issue. Maybe we should never have gone for the two-webswinging, and it should have been Easy Swinging for everybodyfrom day one. After all, you don’t actually need the two-webswinging to play the game. However, it does make for a nicescreenshot and it gives hardcore players something to talkabout, but how useful is it?

THE LESSONS OF PROTOTYPINGIt may be hard to apply the lessons we learned here to yourgame. If your game represents an evolution on a previous titlerather than a revolution, you probably don’t need to spend thekind of time and effort on prototyping that we did. If your gamedoesn’t have the power of a strong license behind it, you maynot have as much leeway to invent something with a steeplearning curve. And if you don’t have the kind of resources that ablockbuster title like a SPIDER-MAN game has, you may not be ableto pursue this type of extensive prototyping.

Our SPIDER-MAN 2 game is just one more example in a series ofgames that had a prototyping phase and were successful. I’mreferring to games like JAK AND DAXTER, RATCHET & CLANK, DEUS EX,PRINCE OF PERSIA, THIEF, and HALF-LIFE. (Although those last twoexamples didn’t know they were prototyping when they were.)Also, to use corporate speak, the opportunity justifies the risk. Ifyou can create a new kind of core gameplay you can create anew franchise that will have life beyond the current game. And ifyour game has unique gameplay, you will have nocompetitors—at least for a while. *

Page 37: Game Developer - September 2004

The number of non-entertainment games under development is rapidly increasingand demand for the ideas, skills and techniques used in commercial entertainmentgames is at an all time high. As a result, an entirely new market has emerged.

Serious Games are applications of interactive technology that extend far beyondthe traditional videogame market, including: training, policy exploration,analytics, visualization, simulation, education and health and therapy.

The Serious Games Summit D.C. gives game developers the opportunity to tap into this new revenue stream, learn from successful serious gamesapplications, and forge links between the traditional videogame industry and program managers for homeland security, state and local governments,military agencies, and educational institutions.

REGISTER BY SEPTEMBER 15, 2004 AT WWW.SERIOUSGAMESSUMMIT.COM AND SAVE $200 ON YOUR PASS

SERIOUSGAMESSUMMIT

D.C.WWW.SERIOUSGAMESSUMMIT.COM

WASHINGTON D.C.OCTOBER 18-19, 2004

Page 38: Game Developer - September 2004

THE MONTY HALL SO-CALLED PARADOX in 50 words: Pick one of three doors.One door opens on a valuable prize; theother two hide ravenous hordes oftrilobites. After you choose, one door—not yours—is opened, revealing half ofthe trilobites. Now you have a new choice:keep your door, or switch to the otherunopened one.

Most people feel like it comes down toa 50/50 chance for the final question;since they went with their gut instinctthe first time, why change their minds?But switching doors actually has a two-in-three chance of gaining the prize,since there was only a one-in-threechance the initial guess was right. Thismay be surprising, but it's not really aparadox. The real paradox is how hard itis to find a convincing explanation ofthis fact.

I didn’t introduce the Monty Hallparadox to explore the psychology ofprobability, but rather because weprogrammers tend to stick to the old,familiar doors, even if standing by themis actually more likely to introduce bugsinto our code than switching to a "better"door. And given all the bugs we've seenbehind those doors at other times, nowonder we're scared.

Bugs in software generally arise fromcomplexity in control flow and complexityof state. A design that requires more “if”statements is likely to have more bugsfrom incorrect conditionals; designs withmore variables offer more opportunitiesto fail to maintain invariants betweenthem. Programs with little flow control orstate, e.g. scripts, offer few chances forbugs. Not much can go wrong if yourgame script says playsound blorp;

create 3 UltraWraiths in inner_sanctum; destroy central_forcefield,except maybe an extreme typo that thecompiler can't catch, leading to threeunintended UltraWaifs.

ENEMY OF THE STATEThere are ways to avoid bugs caused bycomplexity of state. Functionalprogramming tries to do away with bugsinvolving state by doing away with side-effects. Object-oriented programminguses encapsulation to ease maintenanceof invariants.

Or, state can be embraced. One project Iworked on made as much state as possibleexplicit in the form of state machines.Everything from GUI sliders to animatingsprites to major game modes inheritedfrom a common state machine abstraction.A Turing machine is essentially a statemachine, so clearly state machines cando anything. But they're not always theright tool for the job. When state machineshave many states, it can be difficult tounderstand what they do unless you drawa flow diagram. This might be appropriateif a problem is really that complex, butsometimes a state machine unnecessarilycomplicates straightforward control flow.

Recently, I designed a state machine totry to get an AI through a closed door.Opening and closing the door was easy: Asimulation swung it open once the AI

triggered the door's opening/closinginterface. The complexity arose fromgetting the AI to be near enough to thedoor to trigger it, to be out of its waywhile it opened, to go through thedoorway, to close it afterward, and tohandle failures. On the surface, this isstill easy; the overall state machinediagram is shown in Figure 1. However,there's a lot of complexity hidden insidethe edges and the nodes—enough sothat I was having a lot of troubleunderstanding and maintaining the statemachine code. Frustrated with the bugs, Idecided there had to be a better way.After some experimentation, I decided totry cooperative multithreading.

COOPERATIVEMULTITHREADINGTraditional multithreading is pre-emptive: one thread runs for a while,then the OS stops it and switches toanother thread. This can happen atalmost any time. Two threads from aprocess can interleave their control flowin arbitrary ways—a dangerous scenarioto start with—and if the two threadsaccess the same state, things can govery, very wrong. Traditional multi-threaded programming requires a lot ofattention to synchronization techniquesto make sure threads and state interactproperly, and doing this efficiently can behard: The double-checked locking patternwas determined not to be thread-safe inJava (see For More Information, page38). Except in limited cases, such asaccess to hardware resources or multipleprocessors, pre-emptive multithreadingis more complexity than it's worth.

But just because the traditionalmultithreading door is dangerous toopen doesn't mean we shouldn’t

S E A N B A R R E T T is a text-adventure enthusiast and

co-organizer of the Indie Game Jam. He lives in Oakland,

Calif. Reach him at [email protected].

OPENING DOORS

THE INNER PRODUCT

SEAN BARRETT

>>

36 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

Go to start

Wait for open

Go through

Wait for closeFIGURE 1 (door_states.png): State machine for

opening a door. Red lines indicate failure

conditions which retry earlier steps.

Page 39: Game Developer - September 2004

consider a third door: cooperativemultithreading. Cooperative threads explicitlyyield control to other threads, rather thanbecome spontaneously pre-empted by the OS.The concerns about pre-emptive multithreadingmostly don't apply, as there's no unexpectedcontrol flow. Threads must be at some (usuallysmall) number of explicit synchronization pointswhen there's a thread switch.

To demonstrate cooperative threading, Listing1 shows the threaded code into which I re-codedmy door-opening state machine. It's a fair bit ofcode because this conversion is only valuablewhen the state machine implementation is large.

To begin, in line 3 the AI records whether thedoor was open or not at start. If it was closed,the AI will close it once it's through. In line 6, theAI picks a location clear of the door as its target.Then the AI calls a routine, which makes it headstraight toward its current target. This routineruns for multiple frames, returning when thetarget is reached. Note that this routine's nameends with _YIELDS, which makes it easy to checkthat all loops contain a yield statementsomewhere.

Once the target is reached, the AI startsopening the door (line 11) and waits for thelength of time it expects the door to take to open.The implementation of waiting starts at line 48. Ifneither of two failure cases (lines 15 and 17)occurs, then the AI is ready to move on. If thingsgo wrong, the failure system is updated. Thefailure system is a self-monitoring system in theAI that allows it to detect if it's not makingprogress toward goals, allowing it to abandonthem. The thread code simply updates failurestate. The main game thread, which isresponsible for driving the main AI process, willkill the thread and start a new task if too manyfailures occur. In this case, if the door is closing(presumably because someone else startedclosing it, most likely the player trying to messup the AI), then the AI clears any failures thatmay have occurred so far. The fact that the AI isfailing to make progress toward this goal doesn'tmean it should give up. In either case, the AImakes sure the door is opening, and tries again.

With that incomplete description, let'scompare the state machine approach. Each callto the function yield corresponds to a place inthe state machine where the code would returnfrom the state machine and come back to it later.In this case, the main function has no explicitcalls to yield; they're all buried in functions,

which we couldn't easily do in a statemachine. Instead, the Goto Start statewould look something like this:

case STATE_goto_start:if (m_ai->driveToTarget(m_target)) {

// arrived at target!m_ai->openDoor(door);m_state = STATE_wait_for_open;m_end_time = getCurTime()+ door->openTimeEstimate();

}break;

The code assumes there's a unique classimplementing the opening-door statemachine. All the local variables in theoriginal implementation, like started_openand end_time, have become membervariables.

This code is less clearly structured thanthe cooperatively-threaded version.STATE_goto_start begins with a call todriveToTarget, but it's not obvious whatthat target was. The call todoorRelativeTarget was moved onto theedge leading to the state, whereas in thecooperatively threaded version, the twolines (6 and 7) are adjacent. (Where doesthat incoming edge originate? There areactually two: one from Go Through and onefrom an implicit start "state" that would runwhen the state machine was constructed.)

Another drawback of the state machinecode shown above is that instead oflimited, clearly scoped variables, the use ofinstance variables (such as m_end_time)removes the obviousness of when andwhere the values are meaningful. The codehas a potential bug: You could set thefuture state to STATE_wait_for_openwithout setting m_end_time. That's a bug Iactually had for the case corresponding toline 23 but didn't discover until I convertedthe code to use threads. You could getaround this risk by making pseudo-constructors for each of the states, so youwould call switchToWaitForOpen(time) or

Listing 1

01 void AI::goThroughDoor(Door *door)

02 {

03 bool started_open = door->isOpen();

04 restart:

05 // Goto Start

06 doorRelativeTarget(door->length+m_obj->radius);

07 driveToTarget_YIELDS();

08

09 reopen:

10 // Wait For Open

11 openDoor(door); // start door opening

12 waitFor_YIELDS(door->openTimeEstimate()));

13

14 for(;;) {

15 if (door->isClosing())

16 resetFailureCount();

17 else if (door->open_amount < INWARD_OPEN_MIN)

18 incrementFailureCount();

19 else

20 break; // success

21

22 openDoor(door);

23 waitFor_YIELDS(0.5);

24 }

25

26 // Go Through

27 doorRelativeTarget(-(m_obj->radius + 0.05));

28 driveToTarget_YIELDS();

29

30 while (distanceFromTarget() > 0.1) {

31 if (door->open_amount < INWARD_OPEN_MIN)

32 if (door->blockedBy(m_obj))

33 goto restart;

34 else

32 goto reopen;

33

34 if (door->isClosing()) {

35 resetFailureCount();

36 openDoor(door);

37 }

38 driveToTarget_YIELDS();

39 }

40

41 if (!started_open) {

42 closeDoor(door);

43 // Wait For Close

44 waitFor_YIELDS(DOOR_CLOSE_TIME);

45 }

46 }

47

48 void AI::waitFor_YIELDS(float wait_time)

49 { // "Sleep(time)"

50 float end_time = getCurrentTime() + wait_time;

51 while (getCurrentTime() < end_time)

52 yield();

53 }

37W W W . G D M A G . C O M

Page 40: Game Developer - September 2004

38 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

THE INNER PRODUCT

introduce a new subclass for eachpossible state with appropriately limitedinstance variables. This requiresconstructing a lot of scaffolding,especially wasted on states with only oneincoming edge. It wouldn't allow code-sharing either. Many different statemachines might want to have timed waitsin different states, so even though you canmodularize switchToWaitForOpen for thisstate machine, it's hard to abstract out thewaiting math and logic in a reusable way,unless you start nesting state machines(with one state machine invoking anotherwhich does the waiting). While this ispossible, it becomes even harder to followwhat's going on, especially compared tothe straightforward code in thecooperatively-threaded version.

As bad as that is, the above exampleonly describes a simple state, not acomplex one. The more complicated stateswill be messier in the state machineversion, although perhaps notproportionally; a certain amount of this isfixed overhead per state and per outgoingedge. Complex computation within a statewouldn't become more complicated in thestate machine implementation. The in-state logic, however, would be abstractedfrom loop control flow, which would bereturning and re-entering instead ofyielding. As a result, the consequencesand interactions would be harder to track.

State machines also exhibit plain oldcode bloat. The code for goThroughDoor islong, but will fit on a single screen,whereas a state machine version probablywouldn’t. I expect state machines willoften be two or three times larger thanequivalent cooperatively threaded code.

IMPLEMENTATION ISSUESThere are two ways to use cooperativemultithreading: in native code or in ascripting language. The latter is probablythe only likely way of shipping an AAA titleusing cooperative multithreading, so let'sconsider the problems and see why nativecode is more difficult.

I described how, after repeated failures,

my AI system will reject the current task,freeing the thread representing it.Typically, this means freeing the stackused by that thread. However, if the threadhas allocated any memory or otherresources, those need to be freed, andunfortunately it's clumsy to do that withnative code. For example, MicrosoftWindows provides cooperative threadswith the Fibers API, but deleting a fiberdoes not call destructors on outstandingobjects on the stack. To free the threadcleanly, you'd need to set a global flag andrun the fiber. You would wrap yield tocheck that flag and throw an exception tounwind the stack cleanly.

More difficult is saving the game. A statemachine has completely explicit state,which can be serialized easily. A thread'sstate is embedded on its stack, and, again,might include arbitrary pointers to objectsor allocated memory. This state wouldneed to be saved and restored, andexecution continued with that stack wouldneed to be restored and active. Serializingthe stack is unlikely. Even if nativelycompiled code is disciplined and useshandles to objects to facilitate it, thecompiler can still move raw pointers intothe registers saved on the stack. Restoringa thread with a live stack is possible if youroll your own cooperative threads, butunlikely to be supported by existing APIs.

The only plausible native-code approachis not saving threads at all; instead,systems that use threads must restartafter a game restore. For example, my(native code) door-opening system usessome additional omitted startup code toskip unneeded steps, allowing AIs tocontinue from the middle after a restore.However, an AI navigating a door during asave will end up forgetting to close thatdoor after a restore because thestarted_open flag isn't saved.

An interpreted scripting language makesthis task much simpler. The interpreter andrun-time environment can be designed sothat threads are easily freed and are fullyserializable. On the other hand, aninterpreted language may be harder to

debug than native code. It also meansyour programmers are using yourscripting language for low-level path-following, which may put unfortunatepressures on a system primarily intendedfor high-level designer scripting. Still, it'smore viable than native code.

Once you've opened the cooperativemultithreading door, you may discovernew possibilities. For a game design thatfeatured individual, distinctive charactersdriving vehicles, I broke down the vehicleAI task into four separate roles—captain,pilot, navigator, and gunner—each handledwith its own cooperative thread. This mayhave been overkill—some of them couldhave been reactive instead of threaded—but it gave me a lot of freedom toexperiment and include degenerate(stateful) strategies for individual roles.

Game software development is unlikemost software development in manyways. We have real-time-like demands(but not like embedded software). Wehave severe serialization requirements(save games), but we don't expect tomaintain our games two years after theyship, unless they're online. These factorstend to cause a certain level of mismatchbetween our needs and the tools availablecommercially, from inappropriate profilingtools to the inability to serialize threads.However, that also means there areprobably techniques out there, likecooperative multithreading, that arelargely abandoned but would be useful tous if only we knew about them. The onlyway we're going to find them is to openmore doors. *

Pugh, Bill, et al. The "Double-CheckedLocking Is Broken" Declaration.http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

Knuth, Donald E. The Art of ComputerProgramming, Volume 1. Section 1.4.2:“Coroutines.” Addison WesleyLongman, 1997.

FOR MORE INFORMATION

Page 41: Game Developer - September 2004

Available now at newsstands and bookstores or by download at www.gamasutra.com

Page 42: Game Developer - September 2004

GOOD UV MAPPING ISN’T PRIMARILY about technology or technique—at leastif you buy the argument I laid out beforein “Maps and Legends” (June/July 2004).Instead, UV mapping strategy is aboutmaking good technical tradeoffs. For thelast few product cycles, the texturingfeatures that get all the bullet points innew releases of Max and Maya have allbeen centered on increasing authalism—trying to make sure the texel density ona model is the same everywhere, whichpretty much eliminates streaks andsmears. However, as we saw in theJune/July column, highly authalic mapshave some real drawbacks as well:

They’re often impossible to read; they canhave awkward seams; and perhaps worstof all for real-time games, they’reinherently inefficient. So this month,we’re going to look at some tricks forusing automatically-generated, stretch-free maps in real time applications.

First a quick recap. “Authalism” meansevery part of a model gets the sameamount of texture space—in essence,every texel on the finished model is thesame size in world space as every other.If all you care about is a high qualityrender, authalism is the most importantvalue in mapping. Typically, though,authalic maps don’t make efficient use oftexture memory. Moreover, in gameproduction, every texel on a modelcomes with a cost both in memory useand texture upload time. Wasting texturememory on unimportant parts of a model

is a bad idea. For example, a character’sface is more important than the soles ofhis shoes; or the mechanical doodads onthe back of a tank matter more than theblank plates on its underside. If we’regoing to get good use out of highlyauthalic maps in real time, we’re going toneed techniques for maximizing efficientpacking and for allocating texels wherethey’re needed while preserving theoverall quality of the mapping.

AUTOMATIC FOR THE PEOPLEThe easiest way to start is with anautomatic mapping system like Maya’sAutomatic Mapping or Max’s Flattenmapping. “Automatic” implies that youjust push a button and—voila! A finishedUV map appears like magic. In reality, theS T E V E T H E O D O R E started animating on a text-only

mainframe renderer and then moved on to work on games

such as HALF-LIFE and COUNTER-STRIKE. He can be reached at

[email protected].

PIXEL PUSHER

STEVE THEODORE

>>

STITCH, CUT, AND RELAXGETTING THE MOST OUT OF AUTOMATIC TEXTURE MAPS

FIGURE 1 Automatic

mapping systems

generally produce very

fragmented UVs (left). To

turn them into usable

UVs, you need to clean

them up by hand (right).

40 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

Page 43: Game Developer - September 2004

41W W W . G D M A G . C O M

automatic mapping process isjust the beginning. Automappingalways produces a lot of oddlyshaped UV shells, andfrequently, a lot of stray UVtriangles as well. Since you needto leave a border around everyUV shell to account for MIP-mapbleeding, individual triangles area bad use of texture space. It’sworth cleaning them up even if itintroduces a few stretch marksinto your texture. Therefore, thefirst task is to clear up as manyof the strays by using the UV“stitch” or “sew” in your package(see Figure 1).

Once you’ve gotten rid of the random triangles, you’ll need toadjust the seams created by the automap so they go intounobtrusive locations. Cutting the UV edge within a shell willintroduce new seams. But for reasons that will become clear in amoment, they’re fairly unobtrusive. You can cut up the shellsgenerated by your automapper and reassemble them into morelogical ones, both for better packing (think nice square chunksinstead of crazy Los Angeles-shaped sprawls) and to keep theseams in innocuous places.

At this point, the textures are still the same density across thewhole model, the product of the original automapping. To getmore texels into the important parts of the image, we’ll need toscale up the UV shells in the high-resolution areas. This meansthat you’ll need to cut seams that define the boundary betweenyour high- and low-resolution areas—for example, the line ofedges at the top of the neck might mark the border between thehigh-density texture of a face and the lower resolution of thebody. The scaling itself is simple. Grab the UV shells that make upthe high-resolution areas and scale them up in your UV editor. Thereally difficult part is not the execution; it’s deciding how much toscale up the high-resolution UV areas. It’s often a good idea totweak this relationship iteratively, by repeatedly scaling the UVshells up appropriately and then using your package’s automatic

UV layout function. This will be somewhat misleading becauseautomatic UV layouts are never very good, but you can use themas a quick aid to finding the right balance between your high- andlow-resolution UV shells.

Once you’ve got a relative distribution that seems to makesense, go back and hand-pack all the UV shells as tightly as youcan (remembering, of course, to leave enough room betweenpieces to avoid bleed-through at lower mip levels). Typically, handpacking can save as much as 12–15 percentover automatic packing, so it’s veryworthwhile, even though it’s alsopretty tedious. As you can see inFigure 2, this method results ina reasonably smear-free mapthat still puts texels wherethey’re needed the most. Themap is ready to be painted ina 3D paint app or a projection-paint method. It is unlikely thatyou’d be able to paint it using a

FIGURE 2 The original

automap has been

cleaned up for better

seam placement, and the

UVs on the face have been

scaled up to add more

resolution there.

FIGURE 3 Seams are less noticeable when the

underlying pixel grain is aligned. The seam

between the gray and orange areas is aligned in

UV space, the rest are not.

Page 44: Game Developer - September 2004

PIXEL PUSHER

traditional texture-sheet method, sinceautomatic mappings rarely produce mapsthat can be hand-painted in 2D. There aresome tricks for getting around thatwithout a 3D paint package, but we’ll haveto save them for another column.

ON THE SEAMY SIDEIn the bad old days, the transition from thehigh- to low-density areas wasn’tparticularly glaring amid all the otherartifacts that we used to live with. Whenentire characters had to be squeezed into128KB of texture memory, ruthlessnesswas usually pretty easy. Alas for the poorartist of today, higher texture resolutionsoverall mean that artifacts we used to beable to get away with are now much morenoticeable. Moreover, the latest advancesin texturing techniques seem to punishminor imperfections very severely—theobvious seam running across yourbeautifully normal-mapped, procedurally-textured, 3-pass shaded surface just feelsa lot worse than a similar seam in an old

fashioned 256 pixel color map. If we want to minimize the downside of

seams, it’s worth asking what actuallymakes a seam visible in the finishedmodel. Three factors contribute to thevisibility of a seam. The most importantfactor is texture density, which we’ll returnto in a moment. However, a secondnoticeable factor is orientation, which isless critical but worth a quick digression.As you can see in Figure 3 (page 41), it’snot hard to spot the seam when adjacenttriangles have grains that run in differentdirections. The final factor is one we can’tdo much about: the fact that you can’t“snap” every UV edge to the pixels of thetexture, so partial texels will peep throughalong seams. Luckily, this artifact scalesdown directly as texture resolution getsbetter, so the best way to fix it is to makesure your textures are efficiently packed.

Both Max and Maya offer tools thatallow you to stitch UV edges together,

automatically moving, rotating, and evendistorting the original UV shells to makethe connection. These tools are anexcellent aid for fixing the grain anddensity mismatches, which lead to visibleseams. If you have UV shells that can’t beconnected in the final map (say, becauseof an overlap that would turn the outputmap into gibberish), you can use the UV-stitching tools to connect your shells andthen immediately cut the seam you justmade. You can then move the two shellsapart and the edges will remain aligned inUV space, unless you distort or rotate oneof the shells. If you do need to rotate oneor both of the shells in the course ofpacking, try to avoid juxtaposing shells at15-, 30-, or 45-degree angles (rememberthat the human eye is peculiarly sensitiveto multiples of 15 degrees).

Since stitch-and-cut is so handy atdealing with seam artifacts, can we use itto mask the transition from high- to low-resolution areas, like going from the headto the neck? Unfortunately, this isn’t likely

FIGURE 4 (1) A harsh

transition between a high-

resolution area: the face.

(2) A low-resolution area:

the seam is stitched, but

the join is distorted by the

resolution change (note

the shape of the “6” under

the ear). (3) The

distortion is spread

throughout both areas

with a relax operation,

hiding the transition.

42 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

Page 45: Game Developer - September 2004

43W W W . G D M A G . C O M

to work because of the way most graphicscards work. Older cards and mid-rangehardware today use tri-linear filtering to slaptextures onto triangles. The math iscomplicated, but the resulting resolution of thetexture inside a triangle is only about as goodas the resolution along the triangle’s lowestedge (high-end cards that support anisotropicfiltering will come off better, although eventhere, one really under-strengthened UV edgecan still make the texture inside a trianglelook pretty muddy). Consequently, stitch-and-cut is best used when the texel densitiesaround the stitch are very close. Since at leastone edge of every triangle in the borderbetween a high- and low-resolution shell willhave a very different resolution, stitching andcutting will produce triangles that look muddyor smeary at best. At worst, the border trianglesmay be saw-toothed due to bad filtering. Ineither case, it’s unlikely to be less noticeablethan a simple seam.

FRANKIE SAY RELAXNow, texture painters know that the best way tohide an unwanted transition is to blur or featherit, making the transition less sharp byspreading it out over space. To get a similareffect with UV maps, we can combine the stitch-and-sew technique with UV relaxation. As Imentioned in the June/July issue, relaxation (astrangely out-of-place word for a topic like this)treats the texture space within a given UV shellmore or less like a slightly stretchy rubbersheet. The relax operation attempts to smoothout the “wrinkles” that come from wrapping a2D texture onto a 3D surface. In mathematicalterms, UV relaxation tends to average out errorsthroughout a UV shell—in essence, feathering.To hide a resolution change, try stitching theseams and then running a UV relax on thecombined shell. If your package offers theoption, remember that you want the edgeweighting in the relax operation to be based onthe world space length of the edges. This willdistort all the UVs within the shell, but if yourshells are large enough, the individual errorswill be hard to spot (see Figure 4). Run the relaxthrough enough iterations that the UVs insidethe shell are stable (the algorithm actuallyworks just like a physics spring simulation; it

takes a few iterations to spread out the tensionto a stable configuration).

After the relax operation, none of thetriangles in either shell will be perfectlyauthalic anymore. Ideally, though, you’ll bespreading the “errors” in texture density acrossenough vertices that the variations in densitywill be hard to spot. Probably the biggestproblem comes from weirdly shaped UVshells—it’s possible for the UVs inside a highlyconcave UV shell to actually bleed out of theshell itself during a relax operation. If thishappens, you’ll need to subdivide the shellbefore running a relax. There will be somemodels that just offer shells which are bigenough to hide the errors—generally, if youdon’t have at least three ranks of UV vertices toeither side of the seam, it’s not worth trying tohide the resolution change with relax and youshould just accept the seam instead.

That’s a quick sketch of how to leverageautomatic mapping for real-time textures.Automatic mapping is a very powerful tool forgenerating good UVs. However, it has severaldrawbacks when you try to use it in real-timeapplications. By carefully managing seams withstitch-and-cut techniques, you can retain thehigh quality of the automatic maps and stillpack them efficiently for real time. Adding UVrelaxation to stitch-and-cut lets you feather outthe transition between triangles with differenttexel densities. Of course, the other majordrawback of automatic mapping remains: Itcreates texture sheets that are almostimpossible to paint with a simple 2D paintpackage. We’ll return to dealing with thatproblem in the near future. In the meantime,just relax! *

Page 46: Game Developer - September 2004

44 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

>>

THERE WAS A TIME WHEN ADVERTISERScould buy into any kind of advergame theychose, as long as it was of the hard-coded,product placement variety.

For example, when Sony Ericssonwanted to tout its new smartphone, itpaid Ubisoft to have Sam Fisher, the heroof Tom Clancy’s SPLINTER CELL PANDORA

TOMORROW, flip open a P900 mid-game.But games that typically take 12 to 18

months to develop are not necessarily thebest vehicles for advertisers who developcampaigns around, say, the new Spider-Man movie or the latest CD. Unless, ofcourse, the in-game advertising can bechanged dynamically to run for just amonth or even a week or two.

In October, New York-based MassiveInc. will launch its new network, designedto serve ads onto in-game billboards forwhatever length of time or frequency theadvertiser wants. In effect, it’s likebuying commercial time on TV.

“Advertisers want to buy videogamesin the same way they buy other media,”explains Massive’s CEO Mitch Davis.

“They want to be able to change thecreative, run campaigns, and measurereach and frequency.”

Massive sells ad time based on 15-second units. “If you’re whizzing arounda track in a racing game,” says Davis,“you might see an ad on a poster for onesecond, 15 times. Or, if you stop in front ofthe poster and it’s on the screen for 15seconds, that’s one ad unit.” Davis admitsthe rates are high—between $20 and$30 CPMs (cost per 1,000 impressions).The first game to employ Massive’stechnology will be SPLINTER CELL III for PC,scheduled for year-end release; otherUbisoft games are “in discussion.”

That’s fine for advertisers who aresatisfied with having their message on abillboard, says Dave Madden, executivevice president of sales and marketing atWild Tangent. “But, for many brands, that’snot the level of integration and depth ofcustomer relationship they’re looking for.”

Instead, the Redmond, Wash.-baseddeveloper custom publishes brandedadvergames to advertisers’ goals andspecifications.

For example, Wild Tangent built a gamecalled RACE THE PROS in which co-producerFox Sports pulls the times from eachFriday’s NASCAR qualifying races andpumps them into the game, which can bedownloaded from the Fox Sports web siteand is promoted during every NASCARrace. Throughout the week, gamers canrace against those qualifying times in oneof two vehicles, both of which are replicasof actual Dodge-built NASCAR cars.

“What you get is a living, breathingadvertising campaign for Dodge, whichhas done both a broadcast and a game-buy with Fox,” says Madden. “But theconsumer isn’t aware of any of that. All thegamer knows is that he’s getting a reallycool, free, console-quality racing game.”

Coincidentally, RACE THE PROS has anelement of dynamic product placementof its own, similar to that offered byMassive. Before gamers can play, theyneed to key in their zip codes. Then, asthe player’s car speeds around theNASCAR track, Dodge updates the ads on

the billboards, but not with just anypromotion. Based on the zip code, Dodgeinputs local advertising for the dealernearest the player’s home.

“Let’s not kid ourselves,” says Madden.“The experience of playing that sort ofDodge racing game vs. glancing at abillboard in somebody’s football game isa totally different experience.”

In general, that experience costs anadvertiser seeking to build a customgame between $250,000 and $500,000for game development that takes three tofive months.

“That’s what it might cost for one 30-second spot on a prime-time TV show,not including the cost of filming thecommercial,” says Michael Goodman,senior analyst at The Yankee Group.“We’re talking about a terrific return onyour investment.”

According to Goodman, the growth inadvergaming results from, among otherthings, advertisers not feeling they’regetting their money’s worth on TV.

“TV ratings are declining and digitalvideo recorders enable you to skip thecommercials entirely,” he says.“Advertisers just aren’t getting the bangfor their buck that they used to. Meanwhile,there are 108 million people in the U.S.playing videogames. It’s a huge market.”

In a recently released report, Goodmantallies the advergaming market at about$79 million: $10 million for in-gameproduct placement plus $69 million forbranded advertising, for example, WildTangent’s. He anticipates that by 2008,in-game product placement will grow to$92 million while branded ads will leap to$259 million.

“The ad money will provide publisherswith an additional revenue stream,” henotes, “which is just the sort of thingpublishers need at the moment. The costof game development has skyrocketed,and this is still very much a hit-drivenbusiness; only 20 percent of games everbreak even.” *

P A U L “ T H E G A M E M A S T E R ” H Y M A N was editor-in-

chief of CMP Media's GamePower. He's covered the game

industry for more than a dozen years. Reach him at

[email protected].

ADVERGAME ASPIRATIONS

NECESSARY EVIL

PAUL HYMAN

The artfully applied slogan, “See your local Dodge dealer,” on the back of the car

is reinforced on the racetrack with a billboard, which advertisers can customize

based on their local businesses and your zip code.

Page 48: Game Developer - September 2004

46 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

AURAL FIXATION>>

OTHER THAN THEmarketing staff ofa game publisher, themanagers on a teamneed to understand theirtarget audience morethan anyone else. Somemanagers will beinterested in the game’sgenre , and somecouldn’t care less. Musicand sound are changinghow the public at largelooks at games, however,and it’s time to take along, hard look at the

cool audio features we’re fighting for to seewhether they really have marketable value.

ADAPTIVE AUDIOOne of the biggest buzz terms in gameaudio is “adaptive audio,” also known as“interactive audio.” If you are unfamiliarwith these terms, you can check out anarticle I wrote on the subjects at www.iasig.org/pubs/features/adaptaudio/adaptiveaudio.shtml.

Without a doubt, a soundtrack that adaptsand responds to player actions is a greatidea for a more unique (and potentiallymore dramatically effective) experience,but how many people notice such a thing?More important, how many people will buya game because of this feature?

For games that rely on adaptivesoundtracks as the foundation for thegame’s design (such as MTV MUSIC

GENERATOR 3, REZ, and PARAPPA THE RAPPER),no one will buy these games without agood soundtrack because the gamesrevolve around the soundtrack. For othergames, the answer is more difficult, butone recent discovery I made is that gamemusic in reviews is judged on two areas

of quality: the quality of the musicproduction itself (a soundtrack that usesa live orchestra will almost always scorehigh marks even if the music isn’tadaptive), and the adaptive nature of thesoundtrack. An example can be found inCinescape’s review of SPIDER-MAN 2. “Themusic was composed for the game and isdynamic based on the situation.” GamingAge adds to this by saying, “Even themovie score is mixed in well with all newmusic for the game.” Cinescape is amagazine mostly devoted to films, so theexample demonstrates more mass mediapaying attention to adaptive audio.

Reviews are one thing, public response isanother. To figure out whether the averageplayer is affected by adaptive soundtracks,we would need a questionnaire of somesort. (Now that I’ve mentioned that, expectto see a poll released through GameSpy inthe next couple of months.)

Regardless of whether it brings in moresales because of a solid marketingreport, adaptive soundtracks are here tostay. My suggestion: Combine a rocksolid adaptive design with a killerorchestral soundtrack. Get the best ofboth worlds. Take a revamped version ofWING COMMANDER and you’ll see some veryimpressed game players.

SURROUND SOUNDSurround sound is another area of audiowith a lot of buzz. DTS and Dolby arelocked in a battle not unlike the onebetween Agent Smith and Neo in TheMatrix: Revolutions, neither truly gainingthe upper hand, but both releasing newtechnologies every few years to expandtheir market penetration.

Dolby was the first company withsurround sound to approach games. Theproblem was the company didn’t have areal-time solution. For example, surroundsound might be in full-motion videos, butnot in gameplay, so few publishers tookan interest. This has changed to thepoint where nearly every title for Xboxand most for GameCube and PlayStation2 have either Dolby Digital, Dolby ProLogic II, or DTS in real time.

But do reviewers notice it? Let’s look at

a review of Namco’s TALES OF SYMPHONIA byPlanet GameCube: “Unfortunately, TALES

doesn’t support Dolby Pro Logic II, butsound quality is quite high.” GameSpotdoes not comment on surround sound.GameSpy mentions this in a preview forthe upcoming console Xbox 2: “Soundplays a huge part in many of today'sgames, as hearing an enemy sneaking upbehind you can be the differencebetween life and death. The original Xboxhad the most impressive audiocapabilities of the three consoles,utilizing Dolby's powerful Dolby Digital5.1 technology to create immersive,multichannel soundscapes. Gamers haveloved the Xbox's audio qualities since dayone, so nearly everyone expectsMicrosoft to continue [its] partnershipwith Dolby. While there hasn't beenanything more than speculation to date,you can rest assured that the audiocapabilities will be even more impressivethan they were in the previous console.”

Now that we have established thatreviewers for the most part valuesurround sound, the readership must beconsulted as well (another poll to followin GameSpy and I’ll report back on theresults). It has been stated that surroundsound is most effective in 3D immersivegame situations (THIEF: DEADLY SHADOWS

comes to mind), but also that a surroundsound setup in an average living room isoften more unwieldy to arrangeergonomically than a stereo setup.Nevertheless, surround systems arebecoming more popular because audio/video chains are stocking more of them.

When looking at “the next big thing,”think carefully about whether it is beingpromoted as a developmental specialty,or something that is appealing to themasses. It doesn’t mean you shouldorient your brain entirely toward thepublic, because the public is often a large,hulking, stupid, giant sheep that followsanything that’s repeated. However, thissheep will provide your company with thegolden fleece of profit if your idea appealsto it, so make sure to keep it in mind. *

A L E X A N D E R B R A N D O N has been involved with game

audio since 1994 and is currently the audio manager at

Midway in San Diego, Calif. You can e-mail him at

[email protected].

WHAT BUZZES THE MASSES

ALEXANDER BRANDON

PARAPPA THE RAPPER relies on

adaptive audio, an

inherent feature of its

gameplay

Page 49: Game Developer - September 2004

47W W W . G D M A G . C O M

I LOVE MY JOB. AND WHY NOT? I’M MY OWNboss, get paid to work on a wide variety ofgames that entertain and educate, travelaround the world, and work with some ofthe best people in game development.Perhaps most important for this industry,my success is not inextricably linked tothe survival prospects of any given gamecompany. I even get to write a column forthe best darn game magazine in the world,and only have to brown-nose about it onceevery six months (check, that’s it for therest of 2004).

But of all the fun and exciting aspectsof work as a freelance game designer,there has always been one aspect that Ienjoy the most—brainstorming.

DEFINING THE PROCESSBrainstorm (bran´stôrm) n. 1. A sudden clever plan or idea; 2. A sudden,violent disturbance of the mind.

That first definition is the standardmeaning in most game design sessionsin the sense of coming up with cleverplans or ideas quickly, usually with agroup of people. But the second definitioncaptures the essence of what I love bestabout brainstorming—the criticalmoment when one key idea or twistsuddenly jump-starts the process, andnew ideas and variations start coming sofast, it’s tough to write them down.

STARTINGBrainstorming is a process with somebasic guidelines or (in the parlance ofThe 400 Project) rules. One standard ruleis “No judgments,” or as I saw it on oneweb site, “Every person and every ideahas equal worth.” The idea is that during

a brainstorming session no one isallowed to say anything judgmental,which helps avoid crushing theego of less vocal participants. Inpractice, I find this is a lot liketraining wheels on a bicycle—agood way to help beginners getstarted, but likely to slow youdown once you’ve mastered thebasics. Having brainstormed withsome very brilliant designers andwriters, I can also authoritativelystate that some people are justbetter at it than others, and theirideas should carry more weight. Arule I prefer is “Critique ideas, notpeople.” I’ve found that somejudgment is a good way to makefaster progress, but only whenthe focus is on the ideas themselves,avoiding personal slurs or blanketcomments, such as, “That’s dumb.” Thisis just common sense and basicmaturity, but in the games industrythose qualities are sometimes lacking.

One good rule for beginningbrainstorming is “No bosses allowed.” Ifpeople have the power to give you araise or fire you, it’s hard to be objectiveabout their ideas or to proposesomething that may differ from theirpreferences. Having an experiencedleader or facilitator for the session is agood thing, but I recommend restrictingmost brainstorming sessions to the coreteam, not including upper management.

ADVANCINGOnce a group has more experience brain-storming with each other, some moreadvanced brainstorming rules are helpful.One of my favorites is “Challenge assump-tions—your own and others’.” It’s amazinghow often our ideas are shackled by hid-den assumptions that come from nothingmore than historical precedence, or the“it’s always been done that way” fallacy.Some of the most exciting innovations ingames came from people who questionedthe status quo and tried something new.

Another helpful technique is to“Alternate your approach,” moving back

and forth between brainstorming aboutthe theme or story of a game and theactual game mechanics. It’s possible toget stuck in the story and forget to thinkabout what the player will be doing, or toget so lost in minor details, such as howto deal with people accidentally settingfire to a crucial building, that they forgeta story-related change, like making thatbuilding from stone to neatly sidestepthe issue.

DELVINGI learned a useful brainstorming techniquefrom Orson Scott Card, a science fictionwriter. He suggests that we think of ourcreative memories as a kind of mentalbookshelf of all our experiences andideas. When we try to come up with anidea, we often go to the first book on theshelf, which has all the stuff we’ve seenrepeatedly, the cliches and standardapproaches. If you go farther down thebookshelf to find ideas that are surprisingor offbeat, and yet not so far down thatthey lose all relevance, you can makeyour game fresh and exciting and avoidthe obvious.

In the end, remember thatbrainstorming is about fun, and if you’renot enjoying the process, you’re missingout on one of the best parts of design. *

GAME SHUI

NOAH FALSTEIN

N O A H F A L S T E I N is a 24-year veteran of the game

industry. His web site, www.theinspiracy.com, has a

description of The 400 Project, the basis for these columns.

Also at that site is a list of the game design rules collected

so far and tips on how to use them. You can e-mail Noah at

[email protected].

>>

IF PEOPLE

HAVE THE

POWER TO GIVE

YOU A RAISE

OR FIRE YOU,

IT’S HARD TO

BE OBJECTIVE

ABOUT THEIR

IDEAS ...

BRAINSTORMING

PH

OT

OC

OU

RT

ES

YO

FP

HO

TO

S.C

OM

braganca
Line
Page 52: Game Developer - September 2004

Art by recent graduate Jung-seung Hong, modeler at Industrial Light + Magic

Register Now for Fall, Spring

& Summer Semesters

Courses offered in:2D & 3D Animation

3D Modeling

Computer Graphics

Filmmaking

Game Design

New Media

Visual Effects

Web Design

Classes taught by working

professionals from companies such as

Pixar and Industrial Light + Magic

AA | BFA | MFA Degrees

Personal Enrichment | Online Courses

State-of-the-Art Facilities

Over 80% Job Placement

upon Graduation

1.800.544.ARTSwww.academyart.edu

79 New Montgomery St., San Francisco, CA 94105

Nationally Accredited by ACICS, NASAD & FIDER (BFA-IAD)

ACADEMYof ART UNIVERSITYF O U N D E D I N S A N F R A N C I S C O 1 9 2 9

a great college is now a great university.

formerly academy of art college

Page 53: Game Developer - September 2004

Certificate Programs in Game Art & Design,Digital Filmmaking, Digital Photography,3-D Animation, Visual Effectsand Digital Media & Web Design Intensive nine-month programs providing the tools needed to launch your imaging arts career. Apply now for fall and spring terms.

282 Moody Street Waltham, MA 02453800.808.2342www.digitalimagingarts.com

The Center for DigitaIImagingArtsat Boston University

Your Future is Here...New AgeNew DreamsNew Games

Pho

to ©

Car

y W

olin

sky

Page 54: Game Developer - September 2004

>>GE

T ED

UCAT

ED

800.226.7625fullsail.com

3300 University BoulevardWinter Park, FL 32792

Financial aid available to those who qualifyJob placement assistance

Accredited College, ACCSCT© 2004 Full Sail, Inc. All rights reserved. The terms “Full Sail,” “Full Sail Real World

Education,” and the Full Sail logo are either registered service marks or service marks of Full Sail, Inc.

Game Design & DevelopmentBachelor of Science

Degree Program

Associate of Science & Bachelor of Science

Degree Programs

52 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R

Page 55: Game Developer - September 2004

www.uat.edu or 800.658.5744

Available online or on-campus.GAME DESIGN VIDEO PRODUCTION

DIGITAL ANIMATION NETWORK SECURITY

ARTIFICIAL LIFE SOFTWARE ENGINEERING

MULTIMEDIA TECHNOLOGY MANAGEMENT

WEB DESIGN GAME PROGRAMMING

“Without guys like me,you’d still be playing Pong.”

—Mark HartliebB.A. in Game Design – Class of 2004

Rewarding Innovation in Independent Games

The 7th Annual Independent Games Festival

Call forEntries2

005 IGF Competition

Submissions due: September 1, 2004Open to all independent game development

teams, the IGF Competition offers

over $40,000 in cash prizes.

IGF Student ShowcaseSubmissions due: November 12, 2004A non-competitive exhibition of games

developed by full-time students.

March 9th-11th, 2005 • San Francisco, California

Entry forms and eligibility rules available at:

www.igf.com

53W W W . G D M A G . C O M

Page 56: Game Developer - September 2004

The right way.

www.newpencil.com

Page 57: Game Developer - September 2004

55W W W . G D M A G . C O M

Academy of Art University . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Araxis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Center for Digital Imaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Collins College . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Course Technology/Premier Press . . . . . . . . . . . . . . . . . . . . . 11

Crytek GMBH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Datascope Recruitment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Full Sail Real World Education . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Havok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

IT Global Secure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Konami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

New Pencil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Numerical Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C3

Perforce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

RAD Game Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, C4

RTzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C2

Softimage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Stottler Henke Assoc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Swingin’ Ape Studios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Techexcel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Time Gate Studios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

University of Advancing Technology . . . . . . . . . . . . . . . . . . . 53

Vancouver Film School . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Vicon Motion Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Xoreax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

COMPANY NAME PAGE COMPANY NAME PAGE COMPANY NAME PAGE

councilman and former police officer supervisorDennis P. Zine.

“We’re not tampering with the content,” Zinesays about the ordinance, adding that theindustry and businesses affected wereconsulted before the law was established. “Thisis a solution to an expanding, growing problem.With the industry’s assistance, we were able tofind a solution that has teeth, but without itbeing oppressive to the businesses.”

Zine says the fights result from gang turfwars, not exposure to violence in games likeCOUNTERSTRIKE, as some residents suggest. His isa rare gesture from a legislator, and not oneshared by California State Assemblymemberand child psychologist Leland Yee.

Earlier this year, Yee proposed two bills toprohibit minors from purchasing mature- and adultonly-rated videogames on the grounds that theviolence in them should be classified as a harmful

substance—like alcohol, tobacco, and firearms.“This is about protecting children,” says Yee.

“No kid should be out late at night in thesevideogame places,” he says. “They should be athome doing their homework or with their families.We have curfew laws now, but they are rarelyimplemented and cumbersome to enact,” he adds.

Yee insists that game content inducesadolescents to lash out, whereas the SouthernCalifornia councilman maintains that theproblem stems from kids—often gangmembers—congregating at the gaming venues,which are open late and subject to gangterritorial claims. Zine’s recognition that theviolence tends to be regional and associatedwith gang activity dismisses the notion that thelaw panders to parents’ concerns about violentvideogames. “I was very pleased to see thisordinance pass,” Zine says, adding he would beeven more impressed if other cities modeledtheir laws after L.A.’s.

—Jill Duffy

Cyber Curfew Counter-Strikes Turf Wars Interplay’s Bottom Fallout

]HEADS UP DISPLAY[

C O N T I N U E D F R O M P G 4

of pre-Playstation FINAL FANTASY that can only bedescribed as cute, animated onto a 3D world.The player characters resemble closely thegame’s concept art drawn by Myung-Jin Lee, thecreator of the manwha (Korean comic) of thesame name on which the game is based. Assuch, they have enormous eyes and sometimesgravity-defying hair. The reason was to make the

game as accessible as possible to all ages anddemographics from “8 to 10 years old all the wayup to 60.” According to Lee, great care went intomaking the game “least offensive and mostappealing” to everyone so that the game is nottoo violent or too vulgar. This general approachhas netted the game a high ratio of femalegamers (28 percent as opposed to the MMORPGaverage of approximately 8 percent).

—Quang Hong, Gamasutra.com

Anime MMOG 25 Million StrongC O N T I N U E D F R O M P G 5

You work late into the night and nosh on cold pizza,provided by your employer, if you’re lucky. And everyother week or so when the direct deposit statement fallsinto your lap, you balance your checkbook. Another day,another dollar, another cycle.

Not so for the 79 employees of Interplay EntertainmentCorp. who were barred from working for several days thissummer when the California Department of IndustrialRelations, Division of Labor Standards Enforcement putits foot down on their delinquent employer.

In late May, two employees filed complaints thattheir paychecks bounced. Soon after, 20 employeeshad filed complaints with the state agency allegingthat Interplay, headed by CEO Herve Caen, missedpayroll for three consecutive periods. Interplay alsofailed to carry workers’ compensation insurance for itsstaff. Three months of overdue rent resulted in theproperty owner filing a lawsuit, too.

“On April 16, 2004, our lessor filed an unlawfuldetainer action against us alleging unpaid rent ofapproximately $432,000,” Interplay officials stated ina report to the Securities and Exchange Commission.“Since that filing, we also failed to pay the May andJune 2004 rent and vacated the office space duringthe month of June 2004.”

Adding to the financial sinkhole, the IRS notified thecompany that it owes about $70,000 in payroll taxpenalties. “We estimate that we owe an additional$30,000, which we have accrued in penalties fornonpayment of approximately $100,000, $102,000,and $99,000 in Federal and State payroll taxes,” theSEC filing stated. As of press time, company officialswould not comment on the financial situation. Toheave itself out of this near-bankrupt muck, Interplaylicensed FALLOUT 3—a planned sequel to the profitableRPG—to Bethesda Softworks.

—Jill Duffy

Game Developer (ISSN 1073-922X) is published monthly by CMP Media LLC, 600 Harrison St., 6th Fl., San Francisco, CA 94107, (415) 947-6000. Please direct advertising and editorial inquiries to this address. Cana-dian Registered for GST as CMP Media LLC, GST No. R13288078, Customer No. 2116057, Agreement No. 40011901. SUBSCRIPTION RATES: Subscription rate for the U.S. is $49.95 for twelve issues. Countries outside theU.S. must be prepaid in U.S. funds drawn on a U.S. bank or via credit card. Canada/Mexico: $69.95; all other countries: $99.95 (issues shipped via air delivery). Periodical postage paid at San Francisco, CA andadditional mailing offices. POSTMASTER: Send address changes to Game Developer, P.O. Box 1274, Skokie, IL 60076-8274. CUSTOMER SERVICE: For subscription orders and changes of address, call toll-free in the U.S.(800) 250-2429 or fax (847) 647-5972. All other countries call (1) (847) 647-5928 or fax (1) (847) 647-5972. Send payments to Game Developer, P.O. Box 1274, Skokie, IL 60076-8274. For back issues write to GameDeveloper, 1601 W. 23rd St. Ste. 200, Lawrence, KS 66046-2703. Call toll-free in the U.S./Canada (800) 444-4881 or fax (785) 841-2624. All other countries call (1) (785) 841-1631 or fax (1) (785) 841-2624. Please remem-ber to indicate Game Developer on any correspondence. All content, copyright Game Developer magazine/CMP Media, LLC, unless otherwise indicated. Don’t steal any of it.

ADVE

RTI

SER

IND

EX

Page 58: Game Developer - September 2004

>>

JERICHO CROSS FROM SAMMY STUDIOS’ DARKWATCH

A THOUSAND WORDS

THE EVOLUTION OF

ARTISTS:JERICHO CONCEPT ART

AND EVOLUTION

Farzad Varahramyan,

Chris Ulm

WIRE FRAME

Hyon “Mario” Kim

RENDERED MODEL

Mohammed Davoudian,

Hyon “Mario” Kim,

Chris Hung

INTO THE PIXEL (E3 ART EXHIBIT):SAMMY:

Francis Tsai, Ivan Power,

Sergio Paez, Mark Mackin,

J.R. Salazar, Umberto

Bossi, Farzad Varahramyan

BRAINZOO:

Daniel Herrera,

Hyon “Mario” Kim,

Chris Hung, Francis Co,

Mohammed Davoudian

1. Corner of coat cleaned up; the connecting silverbutton and buckle should be bigger than shown.

2. Adjusted collar a bit higher.3. Adjusted silhouette of shoulder flap.4. Adjusted arm silhouette to be more muscular,

less sausage-like.5. Swelled out elbow creases a bit more.6. Widened strap and adjusted details, glove also

now flares out slightly less.7. Adjusted silhouette of armpit and chest

connections.8. Set knuckle strap on top of glove.

9. Made side straps thicker.10. Adjusted silhouette of coat side to be a bit more

in and crisp.11. Adjusted coat flap as shown and pulled in

tighter to the body.12. Lowered belt and added pant loops and a bit of

pant edge.13. Scaled down ammo cartridges and placed as

close as possible to body.14. Adjusted the scale and length of hand slightly

(smaller and shorter).15. Made belt thicker and bullets bigger.

16. Scaled gun down slightly in width only andplaced as close to body as possible. Has themounting bracket for the pistol been built andplaced where the pistol attaches to the thigh?

17. Made belts thicker and added buckles.18. Enlarged knee pads slightly. Were the changes

to boots and spurs made on this model?19. Added some new holes and deleted some holes.20. Placed buckles on outside of boots.21. Slightly lowered boot slit and pointy border.22. Fine tuned fray, where possible, to match tear

pattern in coat flaps.

56 S E P T E M B E R 2 0 0 4 | G A M E D E V E L O P E R