Game Developer - January 2006 - Amazon AWS

52
THE LEADING GAME INDUSTRY MAGAZINE GDC : 06 PREVIEW GUIDE INCLUDED >> BETTER GRASS BY DESIGN MAKING VERTEX BUFFER GEOMETRY TEXTURES >> FUN FANDANGO CHARTING INGENUITY WITH TIM SCHAFER >> 2005 FRONT LINE AWARDS THE VERY BEST TOOLS FOR GAME DEVELOPMENT JANUARY 2006 THE BRAINS BEHIND WIDELOAD’S POSTMORTEM: STUBBS THE ZOMBIE

Transcript of Game Developer - January 2006 - Amazon AWS

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

G D C : 0 6 P R E V I E W G U I D E I N C L U D E D

>>BETTER GRASS BY DESIGNMAKING VERTEX BUFFERGEOMETRY TEXTURES

>>FUN FANDANGOCHARTING INGENUITY WITH TIM SCHAFER

>>2005 FRONT LINE AWARDSTHE VERY BEST TOOLS FOR GAME DEVELOPMENT

J A N U A R Y 2 0 0 6

THE BRAINS BEHIND WIDELOAD’SPOSTMORTEM:

STUBBS THEZOMBIE

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

JANUARY 2006VOLUME 13, NUMBER 1

COVER ART: JUAN RAMIREZ AND MARK BERNAL

CONTENTS[ ]

10

19

COLUMNS33 THE INNER PRODUCT By Mick West [PROGRAMMING]

Mature Optimization

37 BUSINESS LEVEL By Philip Oliver [BUSINESS]

Pigeonholed

38 PIXEL PUSHER By Steve Theodore [ART]

Anatomy for Animators Part III

41 GAME SHUI By Noah Falstein [DESIGN]

Schafer on Creativity

42 AURAL FIXATION By Alexander Brandon [SOUND]

The Voice Over Challenge

DEPARTMENTS2 GAME PLAN By Simon Carless

Zombie Zoo

4 HEADS UP DISPLAYBioware/Pandemic, Xbox 360 launch, and Valve’s Steam

7 SKUNK WORKS By Carey Chico

Softimage XSI 5.0

48 A THOUSAND WORDSAtlus’ MAGNA CARTA

POSTMORTEM24 CHOMPING AT THE BIT: WIDELOAD GAMES’ STUDIO

EXPERIMENT BITES BACK WITH STUBBS THE ZOMBIE

Wideload is using a unique model for game development which hasgenerated significant buzz in the industry. Similar to what Hollywoodstudios do, the company only hires select core staff and outsources thebrunt of the work to contractors. Here, Wideload founder AlexanderSeropian lays out the ups and downs of his cost-effective model, sharinghow it helped his team ship a successful game.

By Alexander Seropian

FEATURES10 GAME DEVELOPER’S 2005

FRONT LINE AWARDS

Game Developer’s eighth annual Front LineAwards aim to single out those companiesand products that have made significantstrides in the battle to get developers homeby five in the afternoon. Along with a panel ofrespected industry judges, we have awardedthe leading tools, hardware, and book fortheir excellence, and inducted onedistinguished tool into the Hall of Fame.

19 MAKING THE GRASS

As 3D game worlds become more realistic,small-scale geometric details will becomemore and more important. While it’s vital toshowcase our expanded hardware power inimpressive ways, these tiny details, be theytufts of hair or blades of grass, can becomputationally expensive. This technicalarticle discusses the use of the GPU andvertex buffers to create memory efficientdetails in vibrant game worlds.

By Holger Gruen

STUBBS THE ZOMBIE, THE MCCARTHY ERAthrowback from Wideload Games’ first title, meetsthe Game Developer Front Line Awards in the gorycover image of this issue—or at least it would begory if the statuette could bleed. Fending offmonsters with one hand and giving out plauditsfor game tools with the other has left us feelingslightly zombie-fied, too.

TRENCHANT WARFAREIn a year when game tools and other products toaid game professionals are even more important,especially as game budgets increase during amarket transition, we’re delighted to present the2005 Front Line Awards (pg. 10), honoring thebest products related to video game developmentin multiple categories, such as middleware, gameengines, hardware, and a number of others.

Thanks to our panel of experienced judges, wewhittled down first the nominated products andthen winners in each category. Plus, one tool hasearned its way into the Game Developer FrontLine Hall of Fame, joining the ranks of DirectX(2002), Photoshop (2003), and Renderware(2004) for its continued dedication to improvinggame development.

INTESTINAL FORTITUDEWhen former Bungie Software co-founderAlexander Seropian set up shop on his own withWideload Games, he decided to do things a littledifferently. Company-owned IP? Check. Small,manageable internal team and lots of externalcontractors to complete the game? Check.

In early 2004, when Seropian first announcedthis route, it was thought to be a sign of things tocome, and, to many, an important test of alternateproduction methods. Now that the quirky 1950sbrain-eatin’ Xbox action title STUBBS THE ZOMBIE:REBEL WITHOUT A PULSE is complete and on retailshelves, Seropian has had a chance to sit downand write a definitive account of its creation. Howdid these new business attitudes affect the game,both positively and negatively? Wideload’s founderspills the beans in the STUBBS postmortem (pg. 24).

MOW NO MOREWe’re also pleased to feature some freshtechnical features and columns this month, withHolger Gruen’s full-length article on vertex buffer-based geometry textures (pg. 19), whichdiscusses ways of adding geometric details tothe game world without breaking the processing

bank. Beautifully detailed tufts of grass havenever been so accessible.

Elsewhere, programming columnist Mick Westadds a highly relevant feature about codeoptimization; Pixel Pusher’s Steve Theodorecontinues his anatomy lesson; longtime designcolumnist Noah Falstein interviews Double Fine’sTim Schafer about game originality; Heads UpDisplay explores the key BioWare/Pandemicmerger; and the A Thousand Words art sectionshowcases Korean RPG MAGNA CARTA.

SLUMPING? MAYBE JUST A LITTLEAs I write this, the full ramifications of the U.S. videogame holiday season sales are yet to be realized,but it’s pretty clear that game sales were, at thevery least, somewhat disappointing in the key post-Thanksgiving weeks. A fully fledged crash? Hardly,but an uncomfortable pause, perhaps.

Of course, critics are already pointing to a sagginggame industry that produces tired sequel after tiredsequel, and, as usual, they’re largely wrong. Sure,there are plenty of follow-ups this holiday season, asin any holiday season, and since companies areworking on early versions of next-gen titles, it maybe difficult for them to produce all-new games forcurrent generation hardware. There’s only so muchproduction game companies can endure.

But iterating on the same game template andgameplay engine often makes titles better in thelong-term, and there have still been plenty ofinteresting, original titles on the market thisseason. Naturally, I’m not saying that GAME

FRANCHISE VOL. 8 is always the best idea, but I don’tthink that sequels are what disrupted the marketthis year. Rather, it was the promise of next-generation gaming that got in the way.

Am I blaming Microsoft’s undersupply of the Xbox360 for all the industry’s woes? Not entirely,although it certainly has not helped. But knowingthat a new, allegedly transformative graphical andonline experience is just around the corner (even ifyou can’t find the bloody hardware) will makeanyone back off from buying current-gen gamesfor a while. And that’s exactly what happened.Suddenly, the gold at the end of the rainbow ismore important than the riches piled around usright now. *

Simon Carless, editor

GAME PLAN[ ]

ZOMBIE ZOO

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

www.gdmag.com

EDITORIALEDITOR

Simon Carless [email protected] EDITOR

Jill Duffy [email protected] EDITOR

Brandon Sheffield [email protected] DIRECTOR

Cliff Scorso [email protected] EDITORS

Alexander Brandon [email protected] Falstein [email protected] Theodore [email protected] West [email protected]

ADVISORY BOARDHal Barwood Designer-at-LargeEllen Guon Beeman MonolithAndy Gavin Naughty DogJoby Otero Luxoflux

ADVERTISING SALESDIRECTOR OF SALES

Afton Thatcher e: [email protected] t: 415.947.6217SENIOR ACCOUNT MANAGER, EAST COAST, EUROPE & EASTERN CANADA

Ayrien Machiran e: [email protected] t: 415.947.6224ACCOUNT MANAGER, SO. CALIF., SOUTH WEST, CONTRACTORS, &

MARKETPLACESusan Kirby e: [email protected] t: 415.947.6226

ACCOUNT MANAGER, NO. CALIF., NORTHWEST, ASIA & WESTERN CANADANick Geist e: [email protected] t: 415.947.6223

ACCOUNT MANAGER, GLOBAL RECRUITMENT/EDUCATION & TEXASAaron Murawski e: [email protected] t: 415.947.6227

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

GAME GROUP MARKETINGDIRECTOR OF BUSINESS STRATEGY Michele MaguireDIRECTOR OF MARKETING Tara C. Gibb

CMP GAME GROUPSENIOR VP, GROUP DIRECTOR, APPLIED TECHNOLOGIES Philip ChapnickCONFERENCE DIRECTOR Jamil MoledinaCONFERENCE MANAGER Evelyn DonisEXECUTIVE WEB PRODUCER Peter LeahyEDITOR, GAMASUTRA.COM Simon CarlessFEATURES EDITOR, GAMASUTRA.COM Quang Hong

CIRCULATIONCIRCULATION DIRECTOR Kevin Regan e: [email protected] ASSISTANT Manager Jessica Ward e: [email protected] COORDINATOR Miguel Mendiolaza e: [email protected] ASSISTANT Michael Campbell e: [email protected] ASSISTANT Adrea Abidor e: [email protected]

SUBSCRIPTION SERVICESFOR INFORMATION, ORDER QUESTIONS, AND ADDRESS CHANGES

t: 800.250.2429 f: 847.763.9606 e: [email protected]

INTERNATIONAL LICENSING INFORMATIONMario Salinas

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

CMP MEDIA MANAGEMENTPRESIDENT & CEO Steve Weitzner EXECUTIVE VP & CFO John Day EXECUTIVE VP, CORPORATE SALES & MARKETING Jeff Patterson SENIOR VP, AUDIENCE MARKETING AND DEVELOPMENT Bill Amstutz SENIOR VP, INTERNET BUSINESS Mike Azzara SENIOR VP, CMP INTEGRATED MARKETING SOLUTIONS Joseph Braue SENIOR VP & GENERAL COUNSEL Sandra Grayson SENIOR VP, CORPORATE SALES Anne Marie Miller SENIOR VP, MANUFACTURING Marie Myers SENIOR VP, COMMUNICATIONS Alexandra Raine SENIOR VP, CORPORATE MARKETING Kate Spellman VP, AUDIENCE DEVELOPMENT Michael Zane PRESIDENT, CHANNEL GROUP Robert Faletra PRESIDENT, CMP ENTERTAINMENT MEDIA Tony KeefePRESIDENT, CMP HEALTHCARE MEDIA Vicki Masseria SENIOR VP, GROUP DIRECTOR ELECTRONICS & SOFTWARE GROUPS

Paul Miller SENIOR VP, ENTERPRISE GROUP Fritz NelsonSENIOR VP, GROUP DIRECTOR COMMUNICATIONS GROUP

Stephen Saunders

Game Developeris BPA approved

Dave Pottinger Ensemble StudiosGeorge Sanger Big Fat Inc.Harvey Smith MidwayPaul Steed Microsoft

2 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

ACCORDING TO INFORMATION NOWavailable on the official JunctionPoint Studios web site, DEUS EX

creator Warren Spector’s new firm is“currently working with Valve on anew game using the Source Engine,to be delivered via Steam,” Valve’sonline game distribution site.

Spector, whose past work includesULTIMA UNDERWORLD, SYSTEM SHOCK,and THIEF, had been without anannounced project since early 2005when his previous studio closed,Austin-based Ion Storm. He foundedJunction Point shortly thereafter.

Following the success of HALF-LIFE

2’s online distribution via Steam andthe resulting large user-base, Valve

is continuing to sign deals that allowit to sell PC titles directly throughSteam—both games that use itsSource Engine, as HALF-LIFE 2 did,and games running their owntechnology.

This latest high-profile deal withSpector is a continuation of Valve’swish to expand Steam into an effectivemethod of digital distribution for PCgames from multiple developers.

In early October, Valve announcedits long-term plans for Steamalongside the latest changes to itsclient, which have completelyredesigned the client’s GUI, andadded a discrete “Shop” area toallow separate purchases which

don’t fall under Valve’sbundle deals for itsown games. The firstof these is theinnovative action titleRAG DOLL KUNG FU, fromLionhead artist MarkHealey, and otherValve-developed titlesare now also available forindividual purchase.

The most recent games toanounce distribution via Steam areUNREAL mod extension RED

ORCHESTRA: OSTFRONT 41-45 and culttitle DARWINIA. Other titles that areavailable or will soon be availableon Steam include NARBACULAR DROP,

THEY HUNGER: LOST SOULS, PIRATES OF

THE BURNING SEA, and SIN EPISODES,showing an intriguing blend ofindie PC titles, expansions topopular mods, and episodic effortsfrom larger developers.

—Simon Carless

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

ELEVATION PARTNERS, A PRIVATE EQUITY FIRMwhich includes notable personalities such as ex-EA CEO John Riccitiello and rock star Bono amongits board members, announced that the companyhas purchased a majority share in developersBioWare and Pandemic.

The developers will continue to operateindependently of one another, but will have a

centralized executive team and share resourcesand technology under the banner of the newly-formed holding company BioWare/PandemicStudios. The founders of both developers willretain shares in their respective companies,

assuring that their power isn’t wrested away.Riccitiello will assume the role of CEO for theholding company, which will be headquartered inElevation’s offices in Menlo Park, Calif. Bothdevelopers will remain in their original locations—with BioWare, which was recently named one ofCanada’s top 100 employers, staying in Alberta,and Pandemic keeping its Los Angeles home.

This effective construction of a super-developeris a markedly new tactic for Elevation, and for theindustry at large. Traditionally, publishers buydevelopers in order to fill out their productportfolios and streamline workflow. In April 2005,in fact, Elevation was in the running to purchaseU.K. publisher Eidos, but was beaten to the punchby the publisher SCi. Acquiring developers is nottypically seen as a money-making venture forpotential investors, given that they do not alwaysreceive royalties for their games and have highoverhead between projects.

“I think things will change only for the better asa result of this deal at both BioWare andPandemic,” says Ray Muzyka co-head of BioWare.“On a day-to-day basis, Greg Zeschuk and I willcontinue to act as joint CEOs of BioWare, but wewill also take on roles at the larger BioWare/Pandemic headquarters, serving as corporate VPswithin the larger organization.”

“BioWare as a whole will continue to grow in acareful, controlled manner, and we now have thefinancial backing (with infusion of significantworking capital into the company from Elevation

Partners) to pursue growth in a whole bunch ofareas we had thought of as longer termopportunities in the past,” Muzyka adds.

“Relative to the broader business, the newcompany will offer something different topublishers,” says Pandemic CEO Andrew Goldman.“We will provide them with well-developed productagainst commercial IPs where they do notshoulder the full risk of development andcommercialization. We believe this will help themto manage their risk portfolio, grow theirbusinesses and bring additional innovation to theindustry,” he said.

“This deal was our ideal scenario for continuingto build Pandemic.”

—Brandon Sheffield

PANDEMIC, BIOWARE: SOLD!

Pandemic’s DESTROY ALL HUMANS.

4 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

SPECTOR GAINS STEAMD E U S E X

BioWare’s KNIGHTS OF THE OLD REPUBLIC.

THE XBOX 360, MICROSOFT’Snewest console, achieved instantsellout status during its November22 U.S. launch—but while demandwas certainly great, that wasn’t theonly reason you couldn’t find anXbox 360 the day after the U.S. andU.K. launches. In the Ottawa Citizennewspaper, Microsoft CEO SteveBallmer cited difficult chipproduction as the primary reason forthe crushing Xbox 360 shortage,commenting, “In these newconsumer electronics devices basedon new chips, there’s always thequestion of what yield will you getout of the manufacturing process ofthe new chip. We’re getting a littleless, but not much less than theyields we expected, and we knowthat the yields we expected willprobably outrun supply.”

Though limited initial numbers areto be expected, Microsoft’s publiclystated plans to ship between 2.5

million and 3 million consolesworldwide within the first threemonths of the system’s life impliedthat reasonable restocks wouldfollow. Unfortunately, as of presstime, some pre-orders at U.S. storessuch as GameStop had still not beenfilled, due to continuing lack ofhardware, and the European launch ofthe console on December 2 sufferedfrom similar problems. The Japanesedebut on December 11 was reportedlybetter, due to less severe demandfor the console.

R. Richard Fontaine, chairman andCEO, GameStop commented inNovember that “the total hardwarereleased to date in the U.S., and toGameStop, are far less than we hadanticipated,” leading worldwide gameretailers, including The GAME Groupin Europe, to warn of possible profit-related issues due to reduced supply.

Aside from the supply issues, theWestern launches were largely

considered successful, with goodreactions to the console’s wide-ranging 18 launch titles and anespecially positive reaction to theXbox Live and Xbox Live Arcadeservice, which offers newopportunity to independentdevelopers.

But the major supplyproblems have affectedgame professionals’opinions of the launch,with Coray Seifert ofLarge Animal Gamessharply critical ofMicrosoft in hisresponse to aGamasutra.comQuestion Of The Week,commenting that thecompany had “suffereda huge setback when itfailed to get enoughmachines to the marketfor the Christmas

holiday. While coordinating a consolelaunch across multiple continents istruly a massive undertaking, acompany as massive as Microsofthas no excuse for being so grosslyunprepared.”

—Brandon Sheffield, Simon Carless

CALENDAR

The Mobile Games ForumLondon Marriott Hotel Grosvenor SquareLondonJanuary 25 and 26, 2006Cost: £1,299www.osneymedia.co.uk

How to Break Into the Game IndustryPickle Research CampusAustin, TexasJanuary 21, 2006Cost: $45–$60 www.gameconference.com

A LUCRATIVE FIRE HAS BEEN KINDLINGbetween the simulation industry andthe serious games market. EngenuityTechnologies, a global player on thevisualization and simulation softwareside, recently stoked its flame byadding a little kindling: BioGraphicTechnologies (BGT).

BGT develops AI software for games,visual simulation uses, and otherelectronic media. The Montreal-basedcompany counts among its gamecustomers Sony ComputerEntertainment America, MidwayGames, and Kuju Entertainment.

When Engenuity announced theacquisition the company stated that subsumingBGT will allow it to “offer a broader range ofapplications to its existing simulationcustomers, and to penetrate new verticalmarkets, such as urban simulation, homelandsecurity, and serious games.”

“This is the first step in our acquisition

strategy to expand our presence in the broadersimulation market,” said Patrice Commune, CEOof Engenuity at the time of the announcement.“We are excited about the standalone strengthof the AI.implant product in its existing games,entertainment, and VizSim markets.”

BGT’s latest product release was AI.implant

version 3.6, software that’sused in a number ofprominent video games;recent deals include anagreement with Midway touse the technology as itspreferred AI engine forproducts such as JOHN WOO’SSTRANGLEHOLD, and a deal withSony to use it for MAJOR

LEAGUE BASEBALL 2006.The details of the

acquisition are as follows:Engenuity acquired all ofBGT’s outstanding shares (inexchange for around

$835,000 of its shares), about $162,000 incash, and a promissory note of $250,000 to bepaid in 12 months from closing. Engenuity alsoassumed nearly $1.5 million of BGT’s debt,about a third of which was repaid at closing.

—Jill Duffy

I M A G E C O U R T E S Y O F B G T

BGT ACQUIRED FOR SERIOUS GAME AI

XBOX 360 LAUNCHES WORLDWIDE

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

CHIP SHORTAGE CITED AS REASON FOR SOME ORDERS GOING UNFILLED

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

SKUNK WORKS[ ]OUR RATING SYSTEM :

DA BOMB PRETTY SLICK SLICK SO-SO LAME

A SMALLER NUMBER OF TOOLS WHICH,when combined together, produce alarger number of results—that’s theSoftimage XSI way of thinking. And inversion 5.0, Avid has given gamedevelopers (as well as film creators) afew new toys to play with. Luckily for thegame-making group, many of the newtools in XSI 5 are designed for buildingnext-generation games. It's clear thatSoftimage is taking next-generationgame development seriously and is inserious competition with both Autodesk(Max) and Alias (Maya)—or, given theirlatest news, should I say “Maya Max?”

On the whole, Avid has tweaked andrefined XSI, giving it a fresh coat of paintwithout changing the color. But whatmakes the new release stand out is ahandful of new tools within. From GATOR(Generalized Attribute TransferOperatoR) to the refined Ultimapper tool(previously known as GPUSurfaceFX),XSI gives us ways to acquire andmanage new texture data types andhandle the higher-resolution modelsthat the influx of new games is bringingto the table. Moreover, these new toolsare primed to bring game developersinto the next generation without losingtoo much hair.

U.I. FAMILIARITY HURDLEThe software now sports an additionalinteraction mode that clearly targets Mayausers by implementing the QWERTY keyset that they’ve used for years. Whetherthis move is an olive branch to make theenvironment easier and more comfortablefor new users, or a stepping-stone toconvert them is something of a mootpoint. Since XSI has always had a veryflexible control UI, offering the QWERTY keyset option can only be seen as yet anotherlayer on top of that very agile system.

My personal feelings on this newinteraction mode are mixed, however. Itseems the time it took to create andimplement this feature would have beenbetter spent investing in even moretools for this release or expanding someof the Texture editor controls into themain 3D Viewport.

GATOR GOODNESSOne of the most astounding and industry-leading features to come out of thisrelease is the GATOR toolset. Gator hasbeen getting a lot of industry attention,and once you hear what it can do, you’llunderstand why.

With Gator, users can transfermaterials, texture UVs, vertex colors,

property weight maps, envelope weights,and shape animation from one object toanother. These models need not shareany component, attribute, or even vertexor triangle count to permit transfer. Theresults are remarkable, and the benefitsof using Gator in next-gen game pipelinesare clear. I tried it on numerous objects,transferring high-resolution UV, texture,and vertex color data onto lower-resolution LOD models, and it workedmagically well.

Softimage also included a greatsurprise for modelers hidden in theplug-in manager. Under File>Plug-inManager>Workgroups, you can clickConnect and find a button called TrySDK Example Workgroup. Onceinstalled, you'll find a newly realizedversion of the User Normal Editingscript. This tool, once found as a scriptin the NetView, now is found in the Alt-RMB menu and has an actual PPGwindow. With it, developers can directlymanipulate all or any normals on anobject as desired. It’s a great tool thatprovides a needed solution for thegame developer crowd.

TWEAK AWAYLet’s revisit the Softimage philosophyand restate it more fully as “a smallernumber of tools which, when combinedtogether, produce a larger number ofresults.” The bit about “smaller numberof tools” basically means that similaroperations are grouped together assingle tools. When invoked by typicalmodifier keys such as Alt, Shift, andCtrl, each of these tools contains alarger number of specific features.

Following this line of thought, theTweak Component tool bulges with newfeature goodness. Replacing the classicMove Point tool previously mapped to the‘m’ key, the Tweak Component tool isreplete with quick manipulation controlsfor directly moving vertices, edges, andpolygons. Users can just grab andtranslate components any way they likein any coordinate system.

Additionally, the tool includes weld andmagnet features that allow users to

SOFTIMAGE XSI 5.0BY CAREY CHICO

SOFTIMAGE XSI 5.0

STATSSoftimage Co.3510 St-Laurent Blvd.Montreal, Quebec, H2X 2V2, Canada514.845.1636www.softimage.com

PRICE$495 (foundation version), $1,995(essentials), $6,995 (advanced)

REQUIREMENTSSoftimage XSI 5.0 supports the followingoperating systems: XSI for Windows XPProfessional; XSI for Linux; SPM forWindows, Linux, and Irix.

The listed requirements are forWindows XP Professional.• Workstation with AMD K7 or higher

processor or workstation with Intel

Pentium III or higher processor• OpenGL accelerated graphics card, at

least 64MB RAM (recommended) • 710MB available hard disk space • TCP/IP service protocol installed on

both client and server computers• 512MB RAM (minimum)• 200 to 300MB swap space• 1,280x1,024 screen resolution

(recommended)• Three-button mouse • Web browser.

ADDITIONAL RECOMMENDATIONS Internet connection DVD driveSoftware DVDWinZip tool A backup device, such as a DAT, 1/4”tape drive, removable hard disk, orDVD/CD-R/CD-RW drive

See www.softimage.com for fullrequirements and recommendations.

PROS1. New tools like Gator and Ultimapper

will rock the gaming world.2. Still an excellent melding of UI

simplicity with underlying toolcomplexity.

3. Superb customer service and support.

CONS1. New QWERTY UI options not much

use for veteran users.2. New physics engine not intuitive to

learn.3. Would like to see an expansion of

some of the Texture editor controlsinto the main 3D Viewport.

8 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

]SKUNK WORKS[

“slide” components across surfaces. Youcan even loop select with the Alt key andslide that over the surface! I tried this ona medium-resolution head model andwatched with glee as I adjusted entireedge loops across the model’s face. Verynicely done.

ULTIMAP THISTexturing has not been left out of the v5upgrades—some new features improveupon existing ones to make generatingspecial data-rich textures even easier.

What does the Ultimapper do, you ask?The Ultimapper generates a variety oftexture map data types. In addition tonormal maps in both tangent and modelspace, it also outputs ambient occlusion,depth, and albedo map types. (It alsooutputs material tag image maps.) Itoperates on a cage-based system andtakes full advantage of Mental Ray whiledoing so. Also, it generates tangent dataand creates preview shaders so that youcan view the results in real time using anyvariety of real-time shader formats likeCG, DirectX, and OpenGL. And incidentally,this release also delivers .FX support.

I found a great use for the Ultimapperin generating texture data for LODobjects. I tried taking a higher-resolutionmodel with six textures and translatingthat data onto a very low-resolutionmodel using only one texture.Ultimapper chewed up the data and spitout virtually identical texture data allspaced out on my UV set, deriving a

single texture outof six.

Since Mental Rayautomatically writesout the alphachannel data—youget that too—I triedthis on a tree modeland transferred notonly the 3D alpha,but the texture alphainto a single texture.

Behind the majornew upgrades and tools, there are somesmaller features that should get somenotice, too. The Texture Editor can nowhandle multiple UV coordinate editingsimultaneously. For example, if youselect as many as four objects, a drop-down menu allows you to access andview their multiple UVs, a very usefulresource when you’re attempting togroup multiple object UVs onto a singlenormal map texture page.

There’s also a brand new dynamicsengine implementation using PhysX fromAgeia. That is the new “physics-on-a-chip”engine that provides hardwareacceleration to dynamics in the sameway Nvidia provides hardwareacceleration to visuals. As more cardvendors get on board, Softimage userswill have support already built in.

ANIMATION AND DATA MANAGEMENTOn the animation front, there’s improvedsupport for viewing keys on the time line.You can copy, paste, and move thesekeys without reverting to the AnimationEditor. There’s also a brand newParameter connection editor, whichspeeds up the creation of linkedparameters.

The Shape Editor also makes editingand animating shape keys a snap. Withthis new interface, you can save separateshape keys, which automatically get putinto a list with sliders. You can then both

visualize and animate the weighting ofeach shape, watching the results in the3D viewport. Shape Editor greatlyenhances the organization and processof shape animation.

Two big changes were made to XSI 5 onthe data management side. First, the OBJimporter was improved to importcomplex Zbrush geometry anddisplacement maps for rendering.

Second, the dotXSI file format hasgrown up since version 3.6, and usersfinally get the source code for the format,a long-time wish list item which nowgives the users support for multiple UVand Vertex Color sets with the freedom toadd what they need to the format.

SWEET CHANGESXSI 5 gives users even more reasons tostay with Softimage and gives other 3Dpackage users, in light of recent industrydevelopments, an alternate patch ofgreen grass to rest their heads on. It’shard to find a cleaner integrated featureset with a more fluid interface thanSoftimage’s.

While I clearly enjoy working with XSI, Ido question why a new interaction modelwas incorporated into this release. Otherpackages aren’t doing this, and as a user,I’m fully capable of transitioning betweenkey maps from one software package toanother when needed.

Ultimately, these issues are small incomparison to the new tools that targetthe game industry such as Gator andUltimapper. These two tools alone makeour working lives immensely easier andmore efficient.

XSI’s 4.0 release was considered a fullyrobust tool, but 5.0 is all icing on thecake—the whipped cream kind. *

C A R E Y C H I C O , a 10-year veteran of

the game industry, is the executive art

director at Pandemic Studios. Email him

at [email protected].

The GATOR tool, new to XSI 5, lets you transfer materials, texture

UVs, vertex colors, property weight maps, envelope weights,

and shape animation from one object to another.

10 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

THE

GAME DEVELOPER

FRONT LINE AWARDS

2005 WAS ANOTHER EXTREMELY BUSY YEAR FOR THE VIDEOgame industry and the game tool industry alike, withdevelopment starting in earnest for next-generation consoles.Many tool developers, accordingly, have been stepping up andannouncing new products for Xbox 360, PlayStation 3, and evenPSP—as well as hardware and software that produces highercomplexity data, which is what’s needed for games to look goodon increasing high-tech hardware platforms. However,sometimes being bigger isn’t enough.

The climate of publisher consolidation requires that toolsproviders act with equal dynamism. Vendors have learned, thisyear more than ever, that to simply churn out upgrades thatfulfill already-expressed needs simply isn’t enough.

One goal of all progressive vendors should be to hear thesewords from a thankful customer: “I didn’t even know that thiswas what I needed.” To create truly eye-opening tools for gamedevelopers, tool companies must not only meet needs, butdiscover and articulate them as well.

In recognition of the heightened competitive atmosphere,the 2005 Front Line Awards have grown equally decisive. Inyears past, for example, it was possible for two, sometimes

even three products to win in any one category. In years pastwe allowed an indefinite number of nominees to populate thefinalists list. No more.

This year, a controlled number of finalists were selected in theseven categories, and only one winner will receive a Front LineAward in each category.

Nominations for the Front Line Awards were open to all newproducts and new versions of products related to gamedevelopment released before September 1, 2005. Finalists wereselected by the editors, whose decisions were greatlyinfluenced by previous reviews of products, comments fromcustomers of the tools, and the opinions of the FLA judges.Winners were selected by a panel of judges composed ofprofessional game developers specializing in the fields relevantto each product category.

The winners were chosen based on the following criteria:relevancy to current and next-generation game creation, ease ofuse, speed of output and/or responsiveness, value, and quality.Books were judged by the editors of Game Developer.

Congratulations to the finalists and winners.—Jill Duffy

2005>>

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

5The Front Line Awardswould not be possiblewithout our panel ofjudges, whom we sincerely thank. Wealso thank AndrewZaferakis for hiscontribution.

JUDGES

Alexander BrandonTom CarrollMichael DeanRon FosnerBrad FotschSpencer LindsayNoel LlopisJustin LloydDavid MarchDan Paladin

Game Developer alsothanks users andlicensees of many ofthe products whosubmitted anonymouscomments, which wereintegrated into thejudging process.

THE 8TH ANNUAL

INDEPENDENT GAMES FESTIVAL

REWARDING INNOVATION IN INDEPENDENT GAMES

MARCH 22-24, 2006 SAN JOSE, CAWWW.IGF.COM

PLATINUM SPONSOR:

GOLD SPONSOR:

MEDIA SPONSORS:

MODDING PAVILION SPONSOR:

PLAY THE BEST INDIE GAMES OF THE YEAR!

FINALISTS ANNOUNCED!FIND OUT MORE AT WWW.IGF.COM

•Visit the IGF Pavilion at GDC

•Attend the IGF Awards ceremony Wednesday, March 22

•All GDC attendees are invited!

MARCH 20-24, 2006SAN JOSE, CALIFORNIARegister by February 15, 2006 and save up to 35%

Use priority code IGFMAXX when registering

igf05_gd_fullpg_JAN.indd 1 12/13/05 11:07:45 AM

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

T H E 2 0 0 5 F R O N T L I N E A W A R D S

Hall of Fame

3DS MAX HAS UNDERGONEmore under-and-above-the-hood changes than any other3D package I know of. Basedon its rather simplebeginning, it’s amazing tosee just how innovativeAutodesk has continued tobe over the years.

Artists in the rapidlyevolving game industry,struggling to keep up withgreater and greater demandsfrom consumers, havealways demanded that their3D packages be up-to-dateon the latest technologies,and no package hasanswered their calls faster

than or as frequently as 3dsMax. Though some of thetools still contained in Maxhave quickly becomeoutmoded, there’s no denyingthat the new ones constantlybeing added to the packagehave increased artists’options for efficiently creatingnext-generation content.

Though I’ve criticized Maxin the past for not doingmore than “lifting the hood”(I’ve often felt that it needsto be put up on a rack andcompletely overhauled),there is one huge benefit ofkeeping the package largelythe same: there’s basically

no learning curve betweenversions.

Autodesk has added supportfor technologies that haveproven they’re here to stay, forat least the foreseeable future,such as normal maps. Supportwas added quickly andminimally, with successiveversions expanding upon andfleshing out the technology’simplementation. And thecompany has continued toshow its commitment to thistype of support.

In the latest version, Max 8,we were introduced to anextraordinary time saver forthe UVW unwrappingprocess—Pelt Mapping—which allows artists toquickly define the seams oftheir models, bringing theminto the mapping utility, andstretching out the UVsintuitively and effectively.

The results are

phenomenal. Unwrapping thetorso or face of a character isnow a trivial matter and canbe accomplished almostinstantly. It is the biggesttime-saver integrated into a 3Dpackage that I can remember.One wonders how we ever gotso far without it.

3ds Max is so ingrainedinto so many developmenthouses that it would be easyfor Autodesk to sit back andcapitalize on the software’ssuccess with a largelycaptive customer base.However, the Max team hasproven that they’ve trulyearned their customers’loyalty by continuallyexpanding upon an alreadysolid package. They’veproved they’re willing andable to lead the way for along time to come.

—Michael Dean

3DS MAXAUTODESK

WWW.AUTODESK.COM/3DSMAX

Books

WHAT I LOVED ABOUT AUDIOfor Games: Planning, Process,and Production is that itdelivered on its titleimpeccably. In a sense, thebook dares to be narrow,defining a very specificaudience—people who knowat least a little about audioproduction and want to knowmore specifically about gameaudio—and outlining in

meticulous detail (Brandoneven explains the market ratefor hiring an orchestra in boththe U.S. and Europe) what toexpect, how to survive, andhow to advance one’s careerwhile working in game audio.A handful of interviews withindustry leaders, includingWarren Spector and MartyO’Donnell, add balance toBrandon’s perspective.

Audio for Games exploresthe audio personnel’s place ingame development, too,stressing the importance ofcommunication in theworkplace and sharing street-savvy tips, like requestingspecific documents from thegame design team rather thanwaiting for the information tobe given to you—or morelikely, waiting and waiting

until you realize you’ve beenforgotten about. Brandoncaptures the Law of the Landfor audio game developers,acknowledging their place inthe pecking order ofgamemaking, with a goodsense of humor, albeit blackat times. It’s not pretty, butit’s a reality that Brandoncontends with keenly.

—Jill Duffy

AUDIO FOR GAMES: PLANNING,PROCESS, AND PRODUCTIONBY ALEXANDER BRANDON, NEW RIDERS PRESS (2005)

Books FinalistsGPU Gems 2: Programming Techniques for High-Performance Graphics and General-

Purpose Computation, Matt Pharr and Randima Fernando (eds.), Addison-WesleyA Theory of Fun for Game Design, by Raph Koster, Paraglyph Press

The Game Localization Handbook: Localization Production Pitfalls, by Heather Maxwell Chandler, Charles River Media

Introduction to Game Development, Steven Rabin (ed.), Charles River Media

Books were judged bySimon Carless,Brandon Sheffield, andJill Duffy, the editors ofGame Developer.

T H E 2 0 0 5 F R O N T L I N E A W A R D S

Middleware

SPEEDTREE, WHICHdespite its name makes allmanner of foliage, is anessential component tomost video gamedevelopment efforts,especially if you’reworking on an MMORPGand an open world title.

SpeedTree is totallypainless to use, providestons of visual feedback,and produces results thatare relatively easy for

programmers and technicalartists to insert intovarious game engines.

IDV’s marvelous tree-making tool also supportslighting and wind effects,which can be quite usefulfor real-time games. Andbecause the company sellssource code as part of astandard license,developers can finally domore with their trees thansimply blow them around.

It’s tool providers like IDV,who give asset creatorsmore control over moreintricate details, that fullyunderstand what we’refacing in the nextgeneration of gamedevelopment.

—Tom Carroll and David March

Middleware FinalistsGameface, Anark Corporation

AGEIA PhysX SDK, AGEIA Technologies Inc.Tira Jump Product Suite, Tira Wireless

DemonWare Netcode, DemonWare

Art Tools

ZBRUSH 2 IS QUICKLY BECOMINGthe de facto standard ofdevelopers everywherelooking to easily add high-quality normal maps to theirreal-time models. Artists haveseveral tools at their disposalto complete a task using thepath that makes the mostsense to them.

For normal mappingchores—sure to become atidal wave of employmentopportunity in the near

future—Zbrush is amust buy, mustlearn tool. Despitethe steep learningcurve and less-than-intuitivemenu system,Zbrush broke intothe game art market in aheartbeat for good reason andwill likely mature quitegracefully in future releases.

—Michael Dean and Tom Carroll

14 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

ZBRUSH 2PIXOLOGIC

WWW.PIXOLOGIC.COM

Art Tools FinalistsFX Composer, NVIDIA

ClayTools system for 3DS Max v.1.1and Maya v1.0, SensAble Technologies, Inc.

Modo 102, LuxologyMaya 7, Alias

SPEEDTREERT v1.7INTERACTIVE DATA VISUALIZATION (IDV)

WWW.SPEEDTREE.COM

T H E 2 0 0 5 F R O N T L I N E A W A R D S

Audio Tools

THE ISACT SOUND SYSTEM IS THEfirst commercially availableadaptive music system I’veseen. It provides a beatmatching system that can be

used to implement an adaptivesoundtrack into nearly anygame type.

Given this groundbreakingmove into the marketplace, as

well as its ease of use andstrong support structure, itdeserves the FLA in the gameaudio tool category—congratulations.

—Alexander Brandon

ISACT v1.60CREATIVE LABS

HTTP://DEVELOPER.CREATIVE.COM

Audio Tools FinalistsMiles Sound System, Rad Game Tools

Lipsync SDK 3.0, AnnosoftHarmony Hard drive, DeWolfe Music

CRI ADX, CRI Middleware Co.

Hardware

VICON'S MX 40 CAMERAS ARE THEworld's first to record with sub-millimeter-accuracy. How can youfreaking beat that? Many motioncapture systems are still black andwhite to lighten their processing.The MX cameras, however, recordthe whole of the image in 10-bitgrayscale.

Vicon’s MX cameras can alsodramatically increase accuracy byfitting a circle more accuratelyaround the marker image.

What does this mean? You getcleaner and better data, which willincrease your quality and speed. Inaddition, with Vicon’s new IQsoftware, you can decrease yourclean up and processing time.Creating a full body capture withhand and face markers at the sametime would be pretty impossible with

the old black and whites. The MX 40are the way to go if you want tocreate the most stellar looking workto date.

—David March

MX40 MOTION CAPTURE SYSTEMVICON

WWW.VICON.COM

Hardware FinalistsRazer Copperhead, RazerQuadro FX 4500, NvidiaSpacePilot, 3DconnexionDX1 Input System, Ergodex

16 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

ProgrammingTools

SN SYSTEMS’ PRODG FOR PSPoffers game developers a packageof unrivaled tools that are used tocreate interactive titles for Sony’snewest handheld console. The SNCcompiler, specifically developed todeliver optimized code forconsoles, generates some of thebest code compared to the regularGNU C++ compilers that they haveshipped in the past. The new IDE,modeled after Visual Studio .NET, isa good addition to the venerable

line of development tools that SNSystems provides.

When the PSP launched in the U.S., 20 out of the 24 coincidinglaunch titles were developed usingSN Systems’ ProDG, includingDYNASTY WARRIORS, LUMINES, FIFASOCCER 2005, RIDGE RACER, andWIPEOUT PURE.

—Justin Lloyd

PRODG FOR PSPSN SYSTEMS LTD

WWW.SNSYS.COM/PSP/PRODG.HTM

Engines

UNREAL ENGINE 3 PROVIDES a powerful foundation to buildPC, PlayStation 3, and Xbox360games. For developers startinga new project, the state-of-the-art graphics renderer, physics,asset pipeline, networking, AIframework, and UnrealEd letan entire team hit the groundrunning and enter productionquickly.

Although Unreal Engine 3 isnot a finished engine, withsome of its subsystemsincomplete or not optimized,it does come with full sourcecode, and Epic’s technicalsupport is highly responsive.

Licensees of Unreal Engine3 include Atari, NCsoft,Namco, Buena Vista Games,Microsoft Game Studios,

TimeGate Studios, MidwayGames, Silicon Knights, andThe U.S. Army (AMERICA’SARMY).

—Andrew Zaferakis, High Moon Studios

UNREALENGINE 3EPIC GAMES INC.

WWW.UNREALTECHNOLOGY.COM

Audio Tools FinalistsIntel VTune Performance Analyzer, Intel CorporationReplayDIRECTOR v2.0, Replay Solutions LLCPerforce SCM 2005, Perforce SoftwareSlickEdit 10, SlickEdit

Engine FinalistsVirtools Dev 3.0, Virtools

Source, ValveBigWorld MMO Technology Suite V1.6, BigWorld Pty Ltd.

Gamebryo 2, Emergent Technologies

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

Once again, Software Developers and DevelopmentManagers have selected Dr. Dobb’s Journal as the bestindustry publication, according to the 2005 Evans DataDeveloper Marketing Patterns Study.

WHY? Here’s what Dr. Dobb’s readers have to say*:

TechnicalKnockoutThe magazine of choice for champion developers

“DDJ not only provides a theoretical basis for using the new technology but usually provides

a real-world implementation that I can study to determine applicability as well.”

“DDJ is invaluable to me as a software architect/developer.”

“DDJ is my connection to the world of people who actually think about how computers and software work.”

“DDJ frequently suggests to me new tools and techniques for solving the problems that I deal with in my job.”

*Source: Signet Dr. Dobb’s Journal Ad Study, February 2005

So, if you’re serious about software development and design, why not make sure Dr. Dobb’s Journal

is in your corner every month?

PO Box 52226Boulder, CO [email protected]

Subscribe today at: Domestic: https://www.neodata.com/ddj/qualformWDDJ.htmlInternational: https://www.neodata.com/ddj/2awa.html

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

>> h o l g e r g r u e n

MAKING THE

GRASSEVERY 3D GAME WORLD LOOKS MORE REALISTIC WHEN ITcontains small-scale geometric details. These details can betufts of grass, small stones, flowers, or even fur. Ideally,developers want a rendering technique for these details thatconsumes processing and rendering power only near theviewer. The technique should be simple to implement as wellas inexpensive computationally and in terms of videomemory. Ideally, the technique should have a low vertexmemory footprint.

Assume we have object A, which represents some geometricdetail. We generate a set S of randomly scattered points on ageneric triangle describing each point by three barycentriccoordinates. For every point P in S, we add the vertices of amodified copy of A to a vertex buffer, VB. In addition to theoriginal vertex data, a set of barycentric coordinates defining Pare added to every vertex.

If we draw from VB and pass the 3D positions of the corners ofa triangle T of a game world to a vertex shader, then this shadercan compute a point TP on T from its corners and the per-vertexbarycentric coordinates. If the shader further adds the originalvertex position also available in the vertex to this position, wecan effectively instance A at TP as its origin.

The outcome is that the vertex buffer can be mapped to T similarto the way a texture can be mapped to it. The vertex buffer that wenow call vertex buffer-based geometry texture (VBGT) cantherefore be used to add geometric detail—for example tufts ofgrass, flowers, stones, or even fur—to arbitrary triangles.

This concept is a form of instancing, but instancingtechniques can be used to make drawing VBGTs moreefficient, as I show in this article, if we want to texture severaltriangles with a VBGT.

Seamless level-of-detail transitions can be achieved forsome geometric detail. This article describes techniques thathandle base triangles with varying areas.

MOTIVATIONBut first, let’s briefly review the methods that have beenused to date to create geometric details, taking note of theirpros and cons.

An artist can, of course, model small geometric detailsalong with the other scene geometry. At run-time, no furtherCPU load is generated to display the geometry. The downsideof this method is that a very high amount of vertex memoryis consumed by the geometric detail. Also, a very highrendering load will be put on the game if no LOD mechanismis used. You can often prevent a prohibitively high batchcount if all this geometry is properly combined into areasonably small number of vertex buffers.

Another option is to place instances of predefined detailobjects in the scene. This method performs much better whenconsidering memory consumption. Again, CPU load is not anissue. If you can guarantee hardware with support for DirectX 9cSummer SDK-type instancing, this method can be very fast andwill not add too many batches. Still, we need to spend precious

HOLGER GRUEN began

working with 3D real-time

graphics in 1993 and four

years later joined a U.K.-

based game middleware

developer as a research

engineer. He has also

headed the development

team of a now defunct

German game company

and worked for a simulation

company developing

computer image generator

software. Email him at

[email protected]

V E R T E X B U F F E R - B A S E D G E O M E T R Y T E X T U R E S

PH

OT

O:

WU

N E

E

M A K I N G T H E G R A S SM A K I N G T H E G R A S S

vertex buffer memory for the buffers containing per instancedata. And if hardware instancing cannot be guaranteed,rendering performance could easily become batch limited.

There are methods (see Pelzer in References, page 22) thatrewrite dynamic vertex buffers, filling them with the vertex datafor nearby details. Alternatively, you can fill a vertex buffer withinstance modifying data and use instancing to place objects.

When you implement a method like this, you have to makesure that the vertex buffers you write to do not get too big.

If they do, you might not have enough memorybandwidth for other effects using dynamic vertex

buffers. Just consider the other effects that youwant to display at a high frame rate.

You also have to ensure that youralgorithm places geometry in a

repeatable and consistent way,since you don’t want the detail

to look different when youreturn to a place in the

scene. Finally, writingto the vertex

buffer andespecially

computing positions for placement on the surface of thegame scene uses a lot of CPU time that you may need forother game features.

You can do better in terms of CPU load, batch count, vertexmemory consumption, and simplicity of implementation usingwhat I call a VBGT method.

In this article, I will first introduce the basic idea behind VBGT.After describing different usage scenarios, I’ll further discusshow LOD transitioning can be implemented with VBGTs. Finally,I’ll address how one might improve the VBGT technique.

BASIC IDEAThe train of thought that leads to VBGT starts with theobservation that we would like to define a texture that, insteadof applying color to a surface, applies geometric detail to thesurface. The notion behind displacement mapping (see Forsythin References) comes to mind but does not allow encoding ofarbitrary geometry. Ideally, we want to define a texture thatdescribes complex objects relative to some point on a surface.

Let’s initially restrict the points to be points on a triangle withsome corners: v0, v1, v2. Now every point on the plane of thisgeneric triangle can be computed using the equation

v=b0�v0�b1�v1�b2�v2 and appropriate values for b0, b1, and b2. If we further restrictourselves to obey the constraint b2=1–b0–b1 these points willbe inside the triangle. Please note that values defined as justdescribed are usually called barycentric coordinates. Also notethat barycentric coordinates can be expressed with just two ofthe three values. See Farin in References for more about thedefinition of barycentric coordinates.

Using barycentric coordinates, we can now code geometricdetail relative to some point P on a generic triangle. The onlything we have to do is add the barycentric coordinates of P to theset of vertex attributes of every vertex of the geometric detail.

To get a better understanding of what “barycentriccoordinates” mean, see Figure 1.

To turn what we have found so far into something thatworks similarly to a texture, we will assume that we have anobject O that describes some geometric detail. Now we will

v2

v1v0

b0=0, b1=0, b2=1

b0=0.25, b1=0, b2=0.75

b0=0.5, b1=0, b2=0.5

b0=0.75, b1=0, b2=0.25

b0=1, b1=0, b2=0

b0=0, b1=0.25, b2=0.75

b0=0, b1=0.5, b2=0.5

b0=0, b1=0.75, b2=0.25

b0=0, b1=1, b2=0b0=0.75, b1=0.25, b2=0

b0=0.5, b1=0.5, b2=0

b0=0.25, b1=0.75, b2=0

Virtual grass created

using VGBT.

FIGURE 1 The figure shows a triangle along with a set of points on it. Barycentric coordinates are shown

for the vertices along the outer edges of the triangle and for the center. Points inside the triangle have

been placed by randomly selecting barycentric positions.

20 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

center of triangleb0=1/3, b1=1/3, b2=1/3

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

create a vertex buffer that contains a number of copies of O,each placed at a random position described by barycentriccoordinates. Look again at Figure 1 and imagine, for example,a tuft of grass at every random point inside the triangle. Thegoal is to later map this vertex buffer, which we’ll call VBGTfrom here on out, to ground triangles near the camera in orderto enrich the visible and close-up game world.

I’ve provided some sample code (Listing 1, available onwww.gdmag.com), which effectively does just that. The codeassumes an incoming pointer (in_pDetailObj) to a C++ objectthat can holds data describing the geometric detail. Itcomputes the size of the vertex buffer used to holdin_instanceCount copies of the detail object in line 1.

In the next several lines, a vertex buffer and an indexbuffer are allocated to hold these new copies. For every copyof the detail object, the code now chooses a randombarycentric position (see lines 10–13). It adds a copy of allvertices of the original detail object to the new vertex buffer,adding per vertex barycentric coordinates. Lines 24 and 25leave room to randomly change the appearance of the copyof the tuft of grass to provide a non-uniform look. The rest ofthe code decides how to fill the index buffer used inconjunction with the vertex buffer that has just been filled.

Again, we could get away with just adding two of the threebarycentric coordinates.

We now have created a VBGT that contains a number ofcopies of a detail model. We have further added barycentriccoordinates to every vertex of these copies. So how is thisvertex buffer different from statically coded local geometry?

The answer is that the origin of each detail object inside thevertex buffer can be moved to a position inside any triangleby using the barycentric coordinates found in every vertex bya vertex shader. To achieve that, we have to take the cornersof the triangle we want to map the vertex buffer to and pass itto this vertex shader. The vertex shader then computes thefinal position of every vertex. See Listing 2, the second partof the sample code available online, which is a fragment ofvertex shader code that shows how to do this. Listing 2 usesthe barycentric coordinates embedded in the vertexattributes to move the actual vertex of the detail model to aposition relative to its new origin on and in the triangle.

We wanted to place a random pattern of detailed objects, suchas grass, on triangles near the viewer, which we can do bycollecting all triangles near the camera by using the in-game

Code samples forthis article can befound online atwww.gdmag.com.

Call 1.800.354.9706 to order ■ Order online at www.courseptr.com/gamedev

The game of a lifetime is inside you.GET READY TO UNLEASH IT.

Beginning Game Art in 3ds Max 8ISBN: 1-59200-908-5 ■ $29.99

Basic Drawing for GamesISBN: 1-59200-951-4 ■ $29.99

Advanced Visual Effects with Direct3DISBN: 1-59200-961-1 ■ $59.99

Advanced 3D GameProgramming All in One

ISBN: 1-59200-733-3 ■ $59.99

In the Mind of a GameISBN: 1-59200-937-9 ■ $39.99

Serious Games:Games That Educate, Train, and Inform

ISBN: 1-59200-622-1 ■ $34.99

22 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

collision detection routines. For all triangles found, we draw onecopy of our VBGT of detail objects.

If the number of triangles is small enough, this operation willnot add too many batches to the rendering budget. If it does,there are two ways to alleviate this problem.

First, you could pass the corner vertices of several triangles tothe vertex shader and prepare a VBGT vertex buffer thatcontains several copies of the one created by Listing 1.Additionally, you would have to augment the vertex data ofevery vertex by an index that is used to access the right set ofcorner vertices. Using this technique, a set of ground trianglescan be textured by a VBGT with one draw call.

The second option would be to use hardware instancingsupport and then use the corners of the collected triangles asper-instance data. You could then write to a system memory ordynamic vertex buffer filling in the triangle corners and draw allinstances of the VBGT for all ground triangles with one draw call.

However, you would not use the processor to determinepositions to place every single instance of the detail objectanymore. All this data has been pre-computed and stored in theVBGT. The pattern of detail objects on the ground will alwayslook the same since the order of triangle corners passed to thevertex shader will always be the same.

Detail objects, as mentioned previously, could consist of tufts ofgrass, little stones, lichen, bushes, trees, and so forth. In order tomake the scene interesting, you could apply several VBGTs toground triangles in order to improve the resulting visuals.

To prove that this theory really works, take a look at the demoand source code that accompanies this article (available onlineat www.gdmag.com). The demo creates a random height fieldbased terrain and adds a grass VBGT and a rock VBGT to groundpolygons near the camera.

EXTENDING THE BASIC IDEAThere are several things that can lead to problems with thesimple idea as it’s presently laid out.

Ground triangles with varying aspect ratios and/or areas.VBGTs that look nice on triangles of a certain size and aspectratio may look too dense or too loose on triangles with a muchdifferent size or aspect ratio. One way to get around thisproblem is to create a set of VBGTs in which each member of theset is optimized to look good on triangles of a certain range ofareas or aspect ratios.

If you have scattered your geometry instances in anirregular pattern instead of a randomly displaced regularpoint pattern, then you can get away with just drawing aportion of a VBGT’s vertex buffer to accommodate smaller orthinner triangles.

You could further augment the vertex format of the VBGT’svertices by adding an attribute that carries the maximumtriangle area that a vertex is allowed to show up in. If all verticesof a copy of the small geometry object agree on this attribute,you can move off objects with the wrong size attribute to infinityinside the vertex shader.

The area of the triangle can either be passed to the vertexprogram as a parameter or computed in the vertex programfrom the vertices of the triangle.

LOD. The easiest way to handle LODs is to keep VBGTs thatrepresent different distinct LODs of the appropriate high detailVBGT. You can generate lower LODs by creating the VBGT fromlower LOD versions of the objects that are used to build thehighest LOD VBGT. If this is not feasible, for example, if yourmodel is a very simple tuft of grass, you can generate a lowerLOD by scattering fewer objects.

Similar in spirit to the first solution (for how to deal withvarying triangle areas), we can turn the area of the projectedtriangle into the value that’s used to select LOD levels or toperform LOD transitioning. In addition to the three cornervertices of a triangle, we also pass the projected area of thetriangle to the vertex shader handling the VBGT. We further addan attribute to every vertex of the VBGT. This attribute carries anacceptable minimum projected triangle area. If the projectedarea stored inside the vertex is found to be smaller than thearea of the triangle passed to the vertex program, the vertex ismoved to infinity. This way, the attribute can also be used toperform smooth transitioning.

By using a projected area as an LOD scaling factor, we will alsomake sure that polygons which are at grazing view angles willreceive only a small number of object instances; this tip isparticularly handy when working on fur or grass.

So far, all the ways I’ve described to switch LODs will result invisible popping if not used extremely carefully. In order to makethe process smoother, we can again use the area of theprojected triangle as a guide. For completely opaque objects,such as stones, you can achieve smoother LOD transitions byfading out the alpha value of vertices of some parts of the VBGT.Or, you could flatten the stones inside the vertex program andalso fade the color or texture toward that of the ground belowthe stone.

For grass tufts, depending on projected area, you can simplyshorten them or fade them out starting at the tips.

In general, the kind of smooth transition to be used dependson the type of object that comprises the VBGT.

Transparency issues. Since the drawing order of the geometryinside a VBGT is fixed, correct alpha blended transparency isharder to achieve. The easiest way around it is to just alpha test.Many game developers alpha test in order to avoid sorting andordering problems that might destroy their state changeoptimized drawing techniques.

M A K I N G T H E G R A S SM A K I N G T H E G R A S S

DirectX 9c SummerSDK, available online fromwww.microsoft.com

Farin, Gerald E.Curves and Surfacesfor Computer-AidedGeometric Design: APractical Guide.London: AcademicPress Inc., 1996.

Forsyth, Tom.“PracticalDisplacementMapping,” presentedat GDC 2003.

Pelzer, Kurt.“Rendering CountlessBlades of WavingGrass,” in GPU Gems.Boston: AddisonWesley, 2004.

Tatarchuck, Natalya.“Richer Worlds forNext Gen Games: DataAmplificationTechniques Survey.”GDC Europe 2005,available online atwww.ati.com.

REFERENCES

FIGURE 2 A partitioning with five sectors is shown.

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

If you can afford to use a multisample anti-aliasing drawingmode, set up alpha to convert to sub-pixel coverage masks. Thisis properly supported within OpenGL on all major graphics cards,and on at least one graphics card under DirectX.

If you cannot use multisample transparency and don’t want toresort to pure alpha testing, there are still things you can do. Ifyou’re not transformation limited and can afford a second pass,in a first pass just draw completely opaque pixels, withoutblending but testing for an alpha that equals one. For the secondpass, enable blending and test for alpha smaller than one. Thisminimizes the artifacts for not properly sorting all transparentparts of the VBGT.

The approach just described can get pretty expensive. Oneway around the second pass might be to partition space aroundthe center of a triangle by choosing a certain number of sectors(see Figure 2).

We can now create one version of a VBGT vertex buffer foreach sector that has its content sorted, to minimize blendingerror for a camera position inside that sector. Selecting the rightvertex buffer to be used as a VBGT will then allow usingapproximately sorted geometry without a second pass.

FURTHER EXTENSIONSI’ve only been adapting the origin of the detail objects of a VBGTinside the vertex shader. Consider what you could do if, inaddition to just the vertices of a triangle, you could also passnormals and bi-normals to the vertex shader. Inside the vertexshader, you could set up a local frame to transform the verticesof the building block objects, thereby aligning objects alonginterpolated normals and bi-normals. And in addition to normals,you might add other attributes, such as color or size values thatwould be used to further modify the VBGT.

Of course, we can implement animation of VBGT inside thevertex shader, for example, by varying the positions of thetopmost vertices of the tufts of grass based on some windpattern. Say you had a sphere; a vertex shader could, for everytuft of grass that intersects the sphere, bend its topmostvertices away from the center of the sphere and push grasstops away from moving objects.

The upcoming DirectX 10 will introduce geometry shaders,which will allow data amplification (see Tatarchuck inReferences). This will allow us to procedurally generategeometric detail. Still, VBGT will most probably run faster thangeometry shaders on early DirectX 10 hardware, and it will alsorun on every DirectX version that supports vertex shaders. *

24 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

THREE YEARS AGO, AFTER LEAVING THEhelm at Bungie I found myself without ajob and on the sidelines of the gameindustry. It was weird. After spending sixmonths tooling around at home, I realizedI had to get out of the house and dosomething—be productive, set anexample for my kids, take over theworld—that kind of thing. Games arewhat I know and love, but I faced a realdilemma in trying to figure out how to getback to making games on my own terms.

To be an independent developer in thecurrent climate of publisherconsolidation and rising costs seemedimpossible, but somehow Wideload wascreated. I challenged myself to create acompany with a set of commandmentsessential to my personal andprofessional happiness.

THE COMMANDMENTSFirst Commandment: We shall establishour game’s creative direction.

Second commandment: We shall ownour intellectual property.

Third commandment: We shall notlet a third party determine oursuccess, such as the publisher who’sdoing (or not doing) the marketing, orthe funding source (likely a publisher)making demands that are not in-linewith our goals.

Fourth Commandment: We shall havea small manageable team. We don’twant 50 employees making one gameover three years in house (we wantlow overhead), and we don’t want tosuffer the churn of ramping up anddown for projects.

WIDELOAD GAMES’ STUDIO EXPERIMENT

BITES BACK WITH STUBBS THE ZOMBIE

A L E X A N D E R S E R O P I A N began his career as the founder and CEO of Bungie Software. In 2000 he

negotiated the merger of Bungie into Microsoft, moved west, and launched HALO for the Xbox. After

leaving Bungie in 2002 , he founded Wideload Games and is currently the company’s president.

Send comments about this article to [email protected].

CHOMPING AT THE BIT

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

DEVELOPERWideload Games

PUBLISHERAspyr Media

NUMBER OF FULL-TIMEDEVELOPERS12

NUMBER OFCONTRACTORS56

LENGTH OFDEVELOPMENT17 months

LINES OF CODE600,000

RELEASE DATEOctober 18, 2005

PLATFORMSXbox, PC, and Mac

DEVELOPMENTHARDWAREXbox development kits,various PCs, and a dualprocessor Mac G5

DEVELOPMENTSOFTWARE USEDPhotoshop, 3ds Max,CharacterStudio, Bink,QuickTime Pro, ProTools,Audacity, SmartFTP,SourceOffSite, Visual Studio, JIRA, phpBB

GAME DATA

DEVELOPMENT THEORYIn a time when ten million bones hardlygets you a game, and developmentteams are crossing double-centuryheadcount, I realized the key to thesecommandments was size—as in smallsize. Figuring out how to make qualitygames with a small team would solvethe challenge of making original games,while remaining independent andhaving a shot at surviving that way.

Here’s how the theory works. If theteam is small, the overhead is low. Timeequals money, so low overhead givesyou lots more time to experiment andprototype (good for originality).

Additionally, every project starts smalland ends big. But if you think of eachproject as a cycle of life, your companygoes extinct pretty quickly when youhave 75 people wrapping a project andthen you only need 10 or so to start thenext one. Staying small was the key.

EVERYTHING WORKS IN THEORYThere’s no getting around the fact thatshipping a major console title requires alot of talented people. We took a pagefrom Hollywood’s playbook and decidedto hire the “above the line” talent as thecore Wideload team, but use outsourcedindependent contract talent to staff ourproduction department. This would allowWideload to have a consistent andmanageable burn rate, yet work with awide array of people who could provide the exactresources we would need. We also decided early on thatwe would license engine technology rather than createour own, as we did not want to spend the timeinvestment and internal headcount cost to compete withthe likes of Bungie, Id, and Epic.

STUBBS THE ZOMBIEOur first project is STUBBS THE ZOMBIE, in which Stubbs, awisecracking zombie, takes on an ultra-modern city of thefuture using nothing but his own carcass and theweapons of his possessed enemies. The gameplayconsists of eating brains to create zombie allies, pilotingvarious vehicles, and possessing enemies via a detachedhand. Though the subject matter is mature, the mood andatmosphere is light.

We decided at the very beginning that Wideload had toestablish itself as a brand. Our games should have acommon thread that identifies them as somethinguniquely Wideload, and that thread is humor. What I’mmost proud of in STUBBS is that everyone who has playedit, reviewed it, loved it and, well ... maybe didn’t quite loveit, agreed that it’s funny.

STUBBS just shipped, and we built it using ouroutsourced production model. Putting our theory intopractice was, politely put, a learning experience.

WHAT WENT RIGHT

1BRAINSTORM TO LIVING ROOM IN ONE EASY STEP. Weonly have 12 people on staff, and we all work in one

big room. Our original business plan said nothing aboutthe creative dynamics of large versus small teams, butthis is probably the single best result of our model.

Stubbs has the ability to possess his human enemies with his detached hand, often with

explosive results.

Robots from Punchbowl:

the City of the Future,

STUBBS’ game world.

26 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

STUBBS’ co-op mode.

PRESENTED BY

Wednesday, March 22, 2006 San Jose Civic Auditorium San Jose, CA

All GDC attendees welcome.

EUGENE JARVIS, PRESIDENT, RAW THRILLS

2005 Lifetime Achievement Award

Join us at the 6th Annual Game Developers Choice Awards to recognize the industry’s greatest achievements.

The Choice Awards are the premier accolades for peer recognition in the digital games industry, celebrating creativity, artistry and technological genius.

Nominations Open January 2ndVISIT WWW.IGDA.ORG/AWARDS TO SUBMIT YOUR BALLOT

“ Receiving the Game Developers Choice Award for

Lifetime Achievement was the ultimate 15 minutes of fame

for a gamer. It doesn’t get any better than that!”

YOU'RE INVITED!

The 6th Annual Game Developers Choice Awards

GDCA06_fullpg_JAN.indd 1 12/9/05 12:10:22 PM

Granted, the acoustics of our wood-floored, brick-walledloft space stink because I’m too cheap to buy rugs, butwe have a comfortable, casual, light, and quickworkflow that allows anyone to blurt out ideas andhave them propped or chopped on the spot. A smallteam doesn’t need a lot of hierarchy, management,team meetings, strike teams, and a lot of organizationaloverhead, so we can focus our energies on beingcreative. It’s hard to believe we didn’t consciously planthis, but our emergent culture turned out to be a greatside effect of our model.

For example, substantive, creative conversations oftenbegan when someone cracked a joke and the rest of usriffed on it. Unlike at a big company, where authority isalways out of earshot, at Wideload we put those gemsstraight into the game! The dance battle in STUBBS

emerged this way.

2 FREEDOM FROM THE PUBLISHER’S SHACKLES.Because we’re small and our overhead is low, we

were able to spend nine months working on variousgame ideas, mechanics, and story elements before wesigned a publishing deal. This allowed us to take our timeand experiment. It also gave us the power to say no to afew deals that weren’t consistent with our commandments.We actually came within a few feet of signing a publishingdeal early on with a major publisher, but it would haverequired us to give the publisher final say on creativedecisions. We thought the deal could have been adisaster in a worst-case scenario, so ultimately wepassed on it. Being able to reject a publishing deal couldbe considered having leverage, and for independentdevelopers that’s pretty rare.

We also had the ability to miss milestones. We didn’twant to miss milestones, but because we couldeffectively manage our cash flow without having to livehand-to-mouth with each milestone payment, weavoided the situation of our publisher using money totake control of our project.

3 COST STRUCTURE. A big problem facing gamedevelopers is the budgeting process. In order to

secure project funding, you need to estimate cost andschedule on day one. Developers don’t have a constantdevelopment platform (hardware and software arealways changing) so making this projection requires alittle voodoo science. Publishers tend to expectdevelopers to stick to their budget and schedule, andoften times that doesn’t work.

STUBBS shipped four months behind our initial plan, but

two circumstances made ourlateness workable. First, ouroverhead was low because ourstaff is small, and second, ourcontractors deliver specificassets to us for specific fixedprices, so if scheduling failed, theasset price did not increase like itwould have if it were beingdeveloped by a full-time employee.As a result (to a certain degree)our contractors assumedschedule risk on our behalf.

Table 1 shows how muchmoney the Wideload methodsaves per schedule slip,compared to the costs incurredby a fully staffed team.

There were also points in thedevelopment of the game whenwe needed a little time to designsomething before opening theasset floodgates. We were able toprototype animation ideas for feeland gameplay without having abunch of animators waitingaround for us to get the plantogether. Once our animationsystem and mocap list wasready, we pulled the trigger andgot it done quickly.

4 STAFFING. We only had 12seats to fill. The team was split evenly between

between artists, designers, and engineers. Basically,we had enough engineers to take the HALO engine andbend it to our will, enough artists to prototype andmanage contractor submissions, and enough designersto write and script levels.

We assembled our core team very quickly. Theprospect of trying to recruit and relocate 45 gamedevelopers to Chicago is daunting for a startup. If itcosts roughly $10,000 to recruit and relocate for eachposition, then we saved $330,000 by keeping the teamsmall. It’s also hard to convince a publisher that assoon as they write that first check, 20 more people willcome to work the next day.

There was also this great side effect to our model thatwhen contractors didn’t work out, we could simply firethem, which may sound cold and heartless, but the fact isthat hiring presents a risk. When you bring someone onstaff you create a semi-permanent bond. To break it isintellectually and financially expensive. When we hadcontractors that weren’t cutting it, they were fired and wemoved on. No one had to relocate. It was just business. Nohard feelings. That fact made us quite a bit moremaneuverable in terms of staff.

In addition, since our whole model is set up to findand manage contracted talent, we were able to addextra contractors when we needed to speed upproduction. We found ourselves pretty late in the game

Model Headcount Monthly Burn Cost of four-month slip

Wideload 12 100,000 $400,000

Traditional 45 375,000 $1,500,000

Calculations assume a fully-burdened headcount cost

of $100,000 per employee.

28 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

Table 1

The many faces of death -

Wideload commissioned a

number of artists for

Stubbs’ concept art, and

used the best of each.

without enough scenery objects and no main menu. Ifwe had to rely on already scheduled internal teammembers to handle these tasks, we’d have beenscrewed. We were able to find a lot of help externally tocomplete these two parts of the project.

The market for independent artists, designers, andprogrammers in the game industry is definitely growing.It’s still small though, especially compared to film ortelevision, where everyone is independent. Finding greattalent is really important to us though, so we tookadvantage of all the tools we could to locate talent. Wecreated a database of every company we could find thatwas doing contract work. We populated it with mypersonal contacts and those we found through resourceslike Gamasutra.com and Conceptart.org. We then beganto make calls, evaluate reels, and meet with potentialhires. Ultimately, and this should be no surprise, we hadthe best luck with the people that we had history with orwho had experience with the tools we were using.

5 THE INTERNET. We had contractors all over the worldcontributing to STUBBS. SourceOffSite and instant

messenger were invaluable tools for us. An importantpart of our process is making iteration time as short aspossible. The more versions of something we did, thebetter it turned out. Giving our contractors the ability tocreate game-ready assets remotely and put them into oursource control database allowed us to review

submissions immediately, in-engine, and in the form thatend-users would see.

Once we had that process set up, the feedback loopwith the contractors tightened a lot. We also used onlineforums to develop concept art. I never thought in a millionyears it would make sense to do concept art withcontractors, but it worked great. For our main character,we were able to get different artists to contribute theirideas simultaneously, which we could review and white-board online in real time.

WHAT WENT WRONG

1 COMPLICATED TOOL CHAIN. Engine licensing isimportant to our model. We don’t have the staff or

desire to spend years creating an engine from scratch. OnSTUBBS, we used the HALO engine, which was great for usbecause the engine kicks ass and we all knew how to useit. But, with that said, the HALO engine had never beenlicensed before; there was no documentation and nointernet forum or third party support for it. Any trainingour contractors got on asset creation had to come fromus. The HALO engine has its own unique asset path andidiosyncratic behaviors, so the learning curve slowed usdown and wasted time.

In some cases, we decided it wasn’t worth training acontractor to produce game-ready assets; we’d just bearthe burden of cleaning and importing the assetsourselves. This was tremendously inefficient. In othercases, we had to devote art director time to basictraining. I think in the future we’ll dedicate someone totool training so as not to create a production bottleneckinternally.

2 CONTRACTOR SELECTION. We could have done away better job of vetting potential suppliers. We got

lucky and found some incredible people to work with,but our selection process had three problems. First, notevery asset class that went into production had ashippable asset reference to go with it. We made it agoal to develop the first version of every object type(character, vehicle, environment, scenery, weapon)internally and send that as the level-setting reference,

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

but we got a little too enthusiastic in some casesto wait for that. This made it difficult to set thebar for everyone.

Second, not every contractor was required tosubmit a test asset. This was another goal we set,

but again, we jumped the gun in a few instances, which was amistake. Omitting this step allowed incorrect expectations toemerge and caused underbidding. In the future we’ll setexpectations of quality and scope for potential contractorsbefore they submit a bid and start working.

Third, we underestimated how important good managementand art direction is for contractors. We worked with one arthouse in particular that was stretched too thin and sold us onthe A team, but gave us the B team. They experienced a badcash flow squeeze during production, which strained ourrelationship. Additionally, their art director was notexperienced enough, which made it really difficult for us tomanage quality across their team. Had we discovered all thisin the selection process, we would not have had to waste timereplacing the contractor during the middle of production.

Stubbs’ chomping grounds.

30 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

3 CONTRACTOR MANAGEMENT. We underestimatedjust how much time was required to manage

contractor submissions. We knew it would be timeconsuming, but even with that expectation, thecombination of art directing and art production wasmore work than we had time to do. We were short onproducers and our artists were scheduled to producecontent on their own. We didn’t have enough bandwidthavailable for reviewing submissions in a timely manner.We realized too late that our production phase requiresan intense focus on the work coming in from thecontractors. Focusing our internal efforts on thecontractor feedback loop should have been a higherpriority for our art direction team.

4 NOT ENOUGH PRODUCERS, FALLING THROUGH THECRACKS. Our project director doubled as our

producer. This was bad. We let a few aspects ofproduction fall through the cracks and as a resultended up dealing with our scenery object build and thegame shell during post-production. It’s hard to believewe didn’t have the foresight for this, but our modelrequires serious production management. There aretons of assets to track and multiple partiescontributing to the process. To think we shipped thisgame without a full-time producer is nuts.

5CRUNCH AVOIDANCE SYSTEM—FAILED. I had thiscrazy idea that since the bulk of the work was being

done by contractors, we would be managing them todeadline and we at Wideload wouldn’t have to work crazylong hours. This logic was used to form the basis of our“crunch avoidance system,” and it was an abject failure.

We crunched for a solid three months, which isn’t toobad relative to past experiences, but is way worsethan zero. Because we let some major components slipinto post-production and were four months behindschedule, and we let ourselves get behind on

contractor approvals, we ended up with more thanpost-production tasks during our post-productionphase. Quality of life is a big issue for gamedevelopers. It certainly is for me, having young kids athome. I still hope to create a better work/life balanceusing this model.

On future projects, we will endeavor to keep productionphase deliverables comfortably within our productionphase. For us, the key to this is good productionmanagement and timely feedback to our contractors. Ifwe can focus on post-production during the last threemonths, we can avoid working double duty through theend of the project.

EXPERIMENTING ZOMBIESThroughout the development of STUBBS, I received lotsof calls from industry friends who asked me, “How goesthe experiment?” STUBBS was released for Halloweenand has gotten some solid reviews. Wideload survivedthe process and will strike again.

Pragmatically speaking, the experiment hasbeen a resounding success. Adhering to ourcommandments resulted in an original gamethat has succeeded in large part because wehad the freedom to take risks. Had we donethings the old-fashioned way, where thepublisher has all the leverage, our lovableundead anti-hero might have met a tragic endat the hands of a focus group.

That said, I wear new battle scars and havetattooed new lessons to the back of my handso as to never forget. For anyone hoping tofollow our blazing trail, or at least learnsomething from our foibles and fables, I hopethis article helps. *

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

Stubbs takes a cue from Ice-T.

The Most Important Technology Event of the Year!

LOOK FOR SCHEDULES CO-LOCATED CONFERENCES EDUCATION HOUSING @ WWW.CTIA.ORG

Opening Keynote, CTIA WIRELESS 2005Sean "Diddy" Combs Founder & ChairmanBad Boy Entertainment Group

April 5-7, 2006Las Vegas Convention Center Las Vegas, NV USA

What was this“bad boy”doing at a

wireless show?

Making his wireless debut.Come see what’s hot in mobile music, wireless fashion

and entertainment this year at CTIA WIRELESS 2006.

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

THE INNER PRODUCT

MICK WEST

>>

LAST MONTH, I DESCRIBED ANoptimization that needs to be done earlyin a project, if done at all. Here, I expandon the theme of early optimizations andpresent a few examples of what I call“mature optimization.”

CONVENTIONAL WISDOMEvery year, a fresh crop of youngprogrammers enters the games industrywith the wisdom of books and lecturesswirling around their heads. One pearl ofwisdom is drilled deep into their tenderprogramming muscles, the pearlsometimes known as Hoare’s Dictum:

“Premature optimization is the root ofall evil.” —C.A.R. Hoare.

Unfortunately, in the mind of the freshlyminted programmer entering the gameindustry, this quote seems to turn into:

“Early optimization is evil.”—Junior game programmer

The legendary Donald Knuth mostfamously weighed in on this subject whenhe wrote these often quoted (and oftenmisleadingly punctuated) sentences:

“We should forget about smallefficiencies, about 97 percent of the

time. Premature optimization is the rootof all evil.”—Knuth in Literate

Programming, 1992.

Nobody wants to argue with Knuth. It’sthe equivalent of arguing against thesecond law of thermodynamics. However,the problem here is that too often peoplemisunderstand what Knuth was gettingat. Ask a game programmer whenoptimization should be done, and he orshe will tell you, “After the code is written,we can profile it, see where thebottlenecks are, and eliminate them.”

And often, that’s exactly what happens.Toward the end of the project, we profilethe code and find that 20 percent of ourCPU time is taken up by a function likeHandleMessageEvent(), so we track down

why that’s taking so much time, then fix it.Then we tackle our next function on the

profiler’s list, maybe one that takes 10percent of the CPU time. We fix that, andthen tackle a few more. Our game now runs30 percent faster, and our fattest functiontakes just 1 percent of the CPU time.

However, if after that the code is stilltoo slow, it’s not because of a fewweighty functions, but rather becausethere’s a general problem with all thecode. The code is just generallyinefficient. By ignoring optimization untilthe end of the project, you have ended upwith “sick code” that contains multiple

inefficiencies too deeply ingrained withinthe fabric of the code to be removed in atimely manner.

WHAT KNUTH REALLY SAIDWhen Knuth wrote, “We should forgetabout small efficiencies, about 97 percentof the time,” he was actually defendingsomething he had done on the previouspage of his book: optimize a loop to makeit 12 percent faster, using “goto.”

Knuth then states my main point here,something contrary to what mostprogrammers initially seem to take fromHoare’s Dictum:

M I C K W E S T was a

co-founder of Neversoft

Entertainment. He's been

in the game industry for 17

years and currently works

as a technical consultant.

Email him at

[email protected].

CO

UR

TE

SY

OF

ST

AN

FO

RD

EN

GIN

EE

RIN

G

Donald Knuth, Professor Emeritus of Computer Science, Stanford University

Conventional wisdom ... calls for ignoring efficiency in

the small; but I believe this is simply an overreaction.

—Donald Knuth

MATURE OPTIMIZATION

“The conventional wisdom shared bymany of today’s software engineers calls

for ignoring efficiency in the small; but Ibelieve this is simply an overreaction tothe abuses they see being practiced by

penny-wise-and-pound-foolishprogrammers, who can’t debug or

maintain their ‘optimized’ programs.” —Knuth, 1992

There you have it. Conventional wisdomwas wrong in 1992. Sadly, conventionalwisdom continues to be wrong 14 yearslater. Programmers—even gameprogrammers—are still starting out withthe misconception that optimization isevil, and so they ignore optimization untilthe end of the project.

MATURE OPTIMIZATIONWhat is evil here is a very specific type ofoptimization—premature optimization,which is optimization done early indevelopment without a real understandingof whether it’s necessary, and which mayhave an overall negative effect on theproject. Given that we have an evil type ofoptimization called “prematureoptimization,” it follows that there is acontrasting one that’s not evil, which wenaturally call “mature optimization.”

A mature optimization is anyoptimization done early in developmentthat you know in advance will provide asignificant performance boost withoutunmanageable side effects. Matureoptimizations are often well-knowntechniques that were successfully used

before. They include small localmodifications, coding standards, andarchitecture-level design decisions.

GAME OPTIMIZATIONGame programming is becoming morecomplicated every year. I think it’s nowmore complicated than either Hoare orKnuth really could appreciate. A gameengine comprises a large number ofsystems, each handling a part of thegame; each system is itself often vastlymore complex than an entire game of 20years ago.

Since each system is so complex, andeach system only contributes a little toCPU usage, then individual optimizationsare not often going to have much effecton overall performance. To ensure ourgame runs as fast as possible, we need tooptimize our code as it’s developed, usingevery mature optimization available to us.

Developing a game is more and moreabout developing the content for thatgame, rather than developing the code.

We should forget about small efficiencies,

about 97 percent of the time

THE INNER PRODUCT

34 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

GDC Mobile 2006 is the defi nitive mobile gaming event for leading industry professionals working within this exploding entertainment sector. Mobile game developers from around the globe will gather to debate the future of their medium with executives from leading network operators, MVNOs, content aggregators, advanced technology and infrastructure providers, and major console game publishers. No other conference offers in-depth technical and business-oriented seminars that defi ne What’s Next for mobile games.

A complete list of GDC Mobile 2006 event and speaker information is available at www.gdconf.com/conference/gdcmobile.htm.

PLATINUM SPONSOR: GOLD SPONSOR: RECEPTION SPONSORED BY:

MOBILE TRACKS:Mobile Vision

3D Development

Audio & Sound Design

Deals & Distribution

Game Design

Planning Ahead

Production

TO ATTEND GDC MOBILE, YOU WILL NEED EITHER A VIP, MOBILE OR MOBILE PLUS PASS.

REGISTER BY FEBRUARY 15, 2006 AT WWW.GDCONF.COM AND SAVE UP TO 35%USE PRIORITY CODE PAMAXX WHEN REGISTERING

DON’T MISS THIS YEAR’S

MOBILE GAMING MUST ATTEND EVENT! March 20-21, 2006 • Fairmont Hotel • San Jose, CA

GDCM06_halfpg_JAN2.indd 1 12/12/05 11:12:14 AM

When developing that content, you cannotreally get a good idea of how the gameplays unless the code is running at thespeed you hope it will run when it ships.This is especially true of action and sportsgames, where the “feel” of the game is avital part of the gameplay and essential inestablishing a difficulty curve. Thus, it’sbeneficial to do as much optimization aspossible in the early stages of a project.

Most games are real-time applications.A very large chunk of the code is running30fps (or hopefully 60fps). In developingbusiness applications, a response time ofa large fraction of a second for a singletransaction is quite acceptable. Gameprogrammers need to advance the stateof the entire game in just 0.0166 seconds.It’s very rare for a single transaction oroperation (say total collision detection)to be budgeted for more than onemillisecond (0.001 seconds).

Processing of triangles and othergraphics primitives has mostly been off-loaded to the GPU. The CPU is mostly

concerned with iterating over game objectsand doing things with them. Optimizationof games even a few years ago was oftenheavily weighted toward optimizing therendering loop. The balance here has beenshifting over the years to the bulk of theCPU time being used by game logic, AI, andphysics. The result is that there is less lowhanging fruit to optimize.

The relatively high power of modernCPUs has also contributed to a shifttoward physics calculations taking upmore and more of the CPU’s power. Again,it’s important that optimizations arecompleted early so that the designerscan design their game scenarios withinwell-defined limits as to the complexity ofthe physics simulations they can use,specifically the number of objects in ascene. If you leave the optimization untiltoo late, then you’re either going to havea scene that runs too slow (and mayrequire some last minute butchering), ora scene that is much lower in complexitythan the engine can support, and which

looks weak compared to the competition.Now that we have an overview of the

issues in place, I want to map out a fewrepresentative examples of matureoptimizations.

AVOID ALLOCATIONSMemory allocations are expensive. Ifyou have some system doing a largenumber of small allocations from themain heap on a continuous basis, thenconsider making some kind of customallocator. A good example is a particlesystem. If you know a particle systemhas a maximum of 1,024 particles, thenyou should use a high-speed poolrather than a heap.

This kind of memory system optimizationis used widely in game development.However, it falls squarely into thecategory of a mature optimization, sinceit can be tricky and dangerous to replaceone method of memory allocation withanother toward the end of a project.

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

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

EDUCATIONGOVERNMENTHEALTHMILITARYCORPORATEFIRST RESPONDERSSCIENCE

ATTEND THE SERIOUS GAMES SUMMIT AT GDC:06

REGISTER BY FEBRUARY 15, 2006 AT WWW.GDCONF.COM AND SAVE UP TO 35%

LEARN MORE ABOUT THE SERIOUS GAMES SUMMIT AT WWW.GDCONF.COM/CONFERENCE/SERIOUSGAMESSUMMIT.HTM

The Serious Games Summit spotlights the use of interactive game technology within

non-entertainment sectors in the rapidly growing serious games market. The summit

provides a forum for game developers and industry professionals to examine the future

course of serious games and their applications in areas such as education, public

policy, science, national defense, homeland security and corporate training.

AT THE SAN JOSE MARRIOTT

USE PRIORITY CODE PAMASX WHEN REGISTERING

SGSGDC06_halfpg_JAN.indd 1 12/12/05 11:13:35 AM

36 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

THE INNER PRODUCT

AVOID RTTIReal-time type inspection (RTTI) iswhat allows you to use <dynamic_cast>on a base class pointer to see whattype of derived class it actually is. Theproblem with RTTI is it’s very slow. Itdepends on the specific compilerimplementation, but on many compilersa <dynamic_cast> is implemented usingthe strcmp function on the name of theclass. If your profiling shows that strcmpis registering above 0.1 percent of CPUtime, then suspect RTTI.

Instead of using <dynamic_cast>, youshould first identify those classes thatrequire some kind of run-time typeinspection, consider if you really need it,and then incorporate a type membervariable into the base class, with anenum providing the type numbers. Doyour own RTTI by checking the typevariable to verify the type (if needed),and then use <static_cast> to do theactual cast.

Avoiding RTTI qualifies as a matureoptimization because it can be almostimpossible to apply toward the end of aproject. If a programmer startsimplementing a complex system with manyusages of RTTI, then it can be a significantundertaking to remove it. Adding your ownoptimized version of RTTI is best done early.

AVOID ALIASING PROBLEMSAliasing is an insidious problem withcompiled code. Aliasing itself is astraightforward concept—the samepiece of memory can be pointed at bytwo different pointers.

Performance problems occur when thecompiler assumes that the contents ofmemory can be changed by somethingother than the current code, and hencewill continually refetch something frommemory when you the programmer knowthat it’s not going to change.

How you handle aliasing problemsdepends on your compiler. You couldsimply turn off aliasing entirely. You mightbe able to use the “__restrict__” keywordselectively to tell the compiler that apointer cannot be aliased. Both of thesesolutions have the characteristics of amature optimization in that they are bestdone early in the project if they are able tohave an effect safely. It’s also a matureoptimization in that it often takes a matureprogrammer to spot it as a problem.Detecting aliasing as an issue can

require that you look at the disassemblyto see exactly what instructions arebeing generated.

AVOID PER-FRAME CODENot everything needs to be done at 60fps.Making sure certain aspects of the gamelogic run at a frame rate slower than thescreen refresh rate saves huge amountsof CPU time. Most physics will look quitereasonable running at 30fps. Some typesof logic, such as pathfinding, can bespread over a large number of frames.

Time-slicing logic is another goodexample of a mature optimization, andmany games use it. It can be a massivetime saver, cutting as much as 20 to 50percent off your CPU time. And of course,it’s very difficult to add late in the project.The change in timing from running logicsynchronized with the rendering frameadvance to logic running independently canintroduce all kinds of obscure timing bugs.

AVOID ITERATIONSDoing any single thing on a modern CPUtakes no time at all. But we fall over whenwe need to do that single thing multipletimes. Whenever you are iterating oversome list of things in your game,consider how you might be iterating overfewer things, or not iterating at all.

For example, let’s say we want toautomatically target enemies that arewithin range. The simple way to do this isto iterate over all objects in the game, seewhich ones can be targeted, and of those,see which are within range.

The problem here is that the list of allobjects might only contain a few that areactually targetable. You could optimize bymaintaining a separate list of all the objectsthat can be targeted. When targetableobjects are created and destroyed, they areadded to and removed from this list. Then,when you want to target something, youjust iterate over the shorter list.

PROFILE INLINE FUNCTIONSWhen profiling your code at a functionlevel, most profilers won’t be able to giveyou any kind of reading for inlinefunctions because the optimizingcompiler will interleave the inlinefunctions instructions with theinstructions in the calling function,making it impossible to tell when theinline function is being executed.

While this behavior is expected, it can

often hide problems with weighty inlinefunctions that are either too slow or calledtoo often. The culprit will often show up assome large higher-level function that callsseveral inline functions.

To get a clearer picture of exactly what’sgoing on, you can turn off the expansionof inline functions just for the compilationunit that contains the high-level function,revealing the inline functions to theprofiler. Recognize that the picture is notentirely accurate of what’s going on, but itwill give you an indication of the balanceof CPU usage between the high-levelfunction and the inline functions, andhence indicate on what you need to focusyour optimization efforts.

PROCESS OFFLINELoad times for games need to be short.Yet too often we get to the end of aproject and find the load times are over aminute. Some advance optimization herecan save you a lot of trouble later.

The most obvious optimization is toload your assets all as one big file (ZIP,PAK, or WAD), rather than as individualfiles. This is a very mature optimization.All developers should use this technique,especially when developing forconsoles—and yet it’s surprising justhow often the problem comes up.Developers often start by loadingindividual files, as at the start ofdevelopment there aren’t that many toload, making the load times bearable.

Toward the end of a project, though, thenumber of assets in the game rapidlyincreases, and load times soar. Patching aquick load system at this point can bevery difficult, especially with limitedmemory available on a console to act as abuffer. You will be forced to do some kindof optimization at the end of a project.

Better to do it early. And do it maturely. *

Grinke, Sebastian. “Minimizing Agent Processing in CONFLICT:DESERT STORM,” in AI Game Programming Wisdom 2. Hingham,Mass.: Charles River Media, 2003.

Hyde, Randall. “Embedded-system programmers must learn thefundamentals,” EDN, May 26, 2005.www.edn.com/article/CA601846.html

Kirmse, Andrew. “Optimization for C++ Games,” in GameProgramming Gems 3. Hingham, Mass.: Charles River Media, 2002.

RESOURCES

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

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

DEVELOPERS ON THE WHOLE DON’T SELLdirectly to the public. They sell their ideasto publishers.

The thing about selling games is thatmore often than not, you’re selling adream, since the game hasn’t been madeyet. Perhaps that dream amounts to aconcept, some video, maybe even ademo, but until it gets funding and a fulldevelopment schedule, it’s not muchmore than an idea.

Publishers need to not only like thegame idea, but also have confidence thatthe developer can deliver a high qualitygame on time. Image is vitally important.

Industry folks often say, “Making videogames is not so much an investment as agamble.” If developers want to win work,they must make sure the publisher seestheir business as an investment ratherthan a gamble.

FIRST IMPRESSIONS COUNTSmart publishers tend to seek outindependent developers who make high

quality games, actprofessionally, and alwaysdeliver what’s expected orbetter. Independent developerscan be focused, efficient, andcan often do a better job thaninefficient internal studios.

Publishers obviously look intothe developer’s track record: thequality of past games and thedeveloper’s ability, technology,

and plan to deliver the new game. Now,this review process takes time,especially if the publisher plans toevaluate multiple developers, so it’s onlynatural that they take shortcuts, like

sticking to people they know, or doing aquick background check on the web, orasking a few friends in the industry aboutthe developer’s reputation.

These shortcuts are natural andsensible, but from a developer’s point ofview, they mean it’s crucial to becomeknown. Obviously, developers must makesure that what is known about them ispositive and will help win game contracts.

BOILED TO BULLETSLike it or not, publishers will formopinions about each developer, which willbe boiled down to a few bullet pointseither in their minds or possibly in adatabase. These bullet points form verygeneralized types of developers, such as:

• Developer A. Medium size. Great forconsole racing games. A bit pricey.Pretty professional.

• Developer B. Great at kids’ licensedgames. Fair price. Will deliver highquality on time and budget.

• Developer C. Small. Not muchcapacity, but great conversion houseand cheap.

• Developer D. Good for GBA licensedgames. Fair price. Will deliver highquality on time and budget.

For a long time, we were Developer B—only we didn’t want to make kids gamesexclusively. We had been pigeonholedthough, and rarely had an opportunity todo anything else.

Blitz was established in 1990. Beforethat my brother and I, The Oliver Twins,were known for creating the DIZZY games.As a small, private, independentcompany with no external investment,there were only so many games we couldproduce. Over time, we became wellknown for our kids’ licensed games,which is unsurprising if you look at theback catalogue: FROGGER 2, CHICKEN RUN,DISNEY’S LITTLE MERMAID, LILO & STITCH,BARBIE HORSE RIDING, and others. It’s goodbusiness and we’re proud of our gamesand reputation, but Blitz has become avictim of its own success.

YOU CAN’T DEBUNK THE STEREOTYPE For several years, we tried to changepublishers’ perceptions of us by simplymaking other kinds of games. Butbecause we usually weren’t a publisher’sfirst choice (because we fit the DeveloperB bill), we only won games that were ontough budgets or tight time lines, such asMUMMY RETURNS and BAD BOYS II. Makingthese titles didn’t help, as we weren’t ableto achieve the quality we all wanted orneeded to become a publisher’s firstchoice to develop mature games.

We needed the industry to think about usdifferently, but the danger was that if wesucceeded, we could lose the kids’games. Our conclusion was to establish anew division and label that could buildmature games while Blitz could continueto make titles for younger players.

Due to our size, more than 150 staff, wehad the ability to maintain both sides.After much internal debate on the name,we decided to call the new division VolatileGames. Though building a new divisiondoes require a good chunk of change, weview the cost as an investment towardour long-term business. We’re trying nowto establish and manage the new imagecorrectly, so that we’re not forever held toonly making kids’ games.

IMAGE CONTROL As developers, your company will probablybe summed up by a series of three or fourbullet points in the eyes of publishers.What do you want those points to be? Asa developer, your challenge is to decidewhat image you want, and get publishersto think this of you through goodmarketing. It’s going to take time andmoney, but failure to do so could result inmissed contracts and ultimately thesuccess or failure of your business.We’ve learned that if you can’t beat yourreputation, it might be best to evolve. *

PIGEONHOLED

BUSINESS LEVEL

PHILIP OLIVER

>>

P H I L I P O L I V E R co-founded Blitz Games (then called

Interactive Studios) in 1990 with his twin brother Andrew,

following nearly 10 years of designing and writing games. He

is currently the CEO of Blitz and is also a founder, member,

and current board director of TIGA. Email him at

pol [email protected].

When reputations define business

The Oliver Twins’ DIZZY games

made a name for the duo in the

early years.

With new label Volatile Games, Blitz can tackle

more mature subject matter, such as POSSESSION.

38 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

WORKING OUR WAY UP THE TRUNK ANDspine since last month’s column, we’renow ready to round out the upper bodywith that most accursed of extremities—the shoulders. Experienced riggersapproach the shoulder in about the sameway parents approach changing diapers:It has to be done, but it’s not going be funfor anyone involved.

The shoulder is probably the most under-used part of the animator’s toolbox. Manyanimators hardly touch the claviclesexcept for shrugs or violent throwingmotions, but in fact shoulders are inmotion all the time. It’s almost impossible,in fact, to keep your shoulders frommoving if you lift your elbow more than 20degrees out from your side.

Riggers are well aware of the limits ofconventional skinning techniques forhandling three-axis joints, a topic coveredin detail in “A Joint Effort” (February2004). In the case of shoulders, thetechnical difficulties are compounded bymind-boggling anatomical workings. Themain aim of this column, therefore, is toclear up what’s actually going on inside amoving shoulder, so that riggers andanimators will have a clearer idea of whatthey’re hoping to approximate with thosecreaky smooth-skinning algorithms.

SHOULDER COMPONENTSThe first question an animator is likely toask about shoulder anatomy is, “Wheredo I put the clavicle?” However, it doesn’tmake sense to look at the clavicle inisolation. The clavicle is just one part of avery complex set of bones, muscles, andtendons known as the shoulder girdle,

which wraps around the ribcage, sort oflike a set of football shoulder pads. Thewhole system works together to placethe arm in the most advantageousposition for leverage, and unfortunatelyfor us it does so in a very non-linear way.So before we discuss how to place theshoulders, we need to understand theparts list for the entire shoulder girdle.

There are three bones in the shouldergirdle: the clavicle, or collarbone, thehumerus, and the scapula, or shoulderblade.

Clavicle. The clavicle is the only part ofthe shoulder girdle that is actuallyanchored to the ribcage. The clavicle isplainly visible as a kind of shelf orplatform running from the base of theneck toward the mass of the shoulder. Inmen, this form curves slightly upward,while in women it arches down, but inboth cases it’s pretty easy to spot.

When setting the bones in a model, it’seasy to locate the clavicle pivot bylooking for the jugular notch, the smalldepression at the base of the neckwhere the main neck muscles attach tothe torso. The clavicle pivots are justbelow and to the outside of the jugularnotch. If the neck muscles aren’t clearly

visible on the model, you can estimatethe distance at about half a hand-widthfrom centerline of the body along theline of the visible clavicle. The pivot isvery far forward, just below the skin,although usually you’ll want to moveyour pivots in a little deeper.

Humerus. The upper bone of the arm isknown as the humerus, not to be confusedwith the “funny bone,” which is the head ofthe radius bone in the forearm.

The pivot of the humerus is easy tolocate on most models. Looking at yourmodel from the front, follow the slope ofthe trapezius muscle (the one thatforms the broad triangular base of theneck) until it hits the line of theclavicles. Typically, this point will justabout line up with the widest portion ofthe ribcage. Next, drop down about one-quarter of the way from the end of thetrapezius to the height of the nipples,or, if you can’t find the nipples, abouttwo-fifths of the way to the armpit.From the side view, the joint should behalfway between the base of theclavicle and the back. This may seemrather far back, but the shoulder reallyought to be well aft of the ear.

Although it’s fairly easy to find the

S 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].

Clavicle

Scapula

Humerus

FIGURE 1 The bones of the shoulder girdle pivot points are marked with circles.

ANATOMY FOR ANIMATORS The dark mysteries of the shoulder

PIXEL PUSHER

STEVE THEODORE

>>

FOR MOREINFORMATION

If you’re curiousabout how realmechanics of theshoulder girdlefunction, or if you’rejust a masochistwith a lot of time onyour hands, there’sa very complete andmath-heavydescription (with acouple of usefulpictures) athttp://ligwww.epfl.ch/~maurel/Publish/PhD98/pdfs/Chap2.pdf

“correct” pivot for the shoulder, you’llprobably discover that you have tofinesse the placement somewhat forgood deformations. Models commonlypush the round mass of the deltoidsmuscles up too high, forming anunnatural ball around the shoulder. Inmost cases it’s safer to err on the side ofplacing the joint a little higher than theanatomy books say to compensate forthe extra bulk. Also, if your model is builtin a 45/45/45 rest pose, with elbowslifted and brought forward, it’s likely thatthe model’s clavicles are lifted about 8 to10 degrees from their natural restposition, so the pivot will have movedupward and inward accordingly.

Scapula. The tricky bones in theshoulder girdle are the scapulae, betterknown as the shoulder blades, twolarge triangular bones that make thefamiliar “wings” shape under the skin ofthe back. The wide base of the triangleis parallel to the spine, and the pointopposite contains two bony “fingers”which create the socket of the shoulderproper. Locating the scapula is prettyeasy, since the bone can be seen andfelt under the skin of the back, even oncharacters who are not particularlybuff. The pivots are equally easy to find,since they’re effectively the same asthe pivots of the humerus.

A SHOULDER TO CRY ONPivot placement for shoulders is easy,and that’s about all the good news I canshare. The bad news is, alas, that what’sgoing on under the skin is extremelycomplex. In fact, it’s difficult to describeor even illustrate properly, much lesssimulate correctly. The Johns HopkinsUniversity Biomechanics Project website has a couple of the clearestanimated examples of shoulderbehavior (see Resources, page 40).There are also some extremely coolfluoroscopic x-ray movies that charactertechnical artist Christopher Evans hason his web site (see Resources).

Here’s a vastly oversimplifieddescription of what goes on as theshoulder moves. You can imagine theclavicle almost like the boom of crane,with the trapezius muscle filling the roleof the cable that raises the boom. The liftand front-back swing of the clavicledefine the possible positions of theshoulder joint proper. The clavicle “crane”is mounted to the front of—not on topof—the solid, egg-shaped mass of theribcage; the looming bulk of the ribslimits the freedom of the clavicle to swingback or down, which explains why youhave to lift your shoulders a bit to reallysqueeze your shoulder blades together.

On the other side of those ribs sit thescapulae. In the real world, they providemost of the power and leverage for theshoulder joint. To understand how theymove, though, picture the scapulae asthough they were magnetized to themass of the ribs. Thus, as the claviclerises, the scapula tilts up, almost parallelto the clavicle, with the base sort ofsliding up across the ribs (the scapula isa “child” of the clavicle, and is hinged justabove the shoulderproper). As theclavicle rotatesforward, the scapulaslides around and over thetop of the ribcage. When theclavicle is fully extendedforward, the scapula almostappears on the side, ratherthan the back, of the torso.When the clavicle is all theway back, the base of thescapula slides inward acrossthe ribs, very close to thespine. If all that weren’tenough, remember that theribcage itself is a curvedsurface, so the scapulaerotate in all three axes asthey slide.

If that sounds bad, just be glad wedidn’t try to cover all the muscles andtendons that drive the scapulae. It will bea while before we have real-time musclesthat can cope with all that.

BUILDING BETTERSHOULDERSThe real question to ask when buildinga shoulder is not “Where do I put theclavicles?” but rather, “Do I have to doall that?”

The familiar animation skeleton with asingle clavicle bone is still acceptable forlow-resolution models, tight bonebudgets, or characters whose clothingmakes anatomical details less important.But understanding the anatomy will atleast give you some idea of the effectsyou should shoot for with vertexweighting and pivot wrangling. On theother hand, higher-resolution modelsmay do better with a simple driven keysetup that actually tries to reproducesome of the bafflingly complex behaviorof the scapulae.

There is one important tool you need forjust about any type of shoulder setup. It’s

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

FIGURE 2 In the rest position of the shoulder girdle, note how the scapula (brown) rests on the ribcage.

FIGURE 3 As the clavicle elevates, the scapula rotates in and down to stay in

contact with the ribs.

PART III

essentially impossible to get decentshoulder deformations without somemethod of removing twist from thehumerus, regardless of how you build theshoulder. One of my previous columns,“Twist and Shout” (April 2004), discussesone good method for handling twistingshoulders. Despite which shoulderarrangement you build, remember that theshoulder girdle as a whole doesn’t twist—it only has two degrees of freedom.

SINGLE VS. MULTI BONESHOULDERSA single-bone arrangement will have ahard time simulating the three-wayrelationship of the solid mass of theribcage, the lever action of the clavicle,and the sliding motion of the scapula. Thenumber one priority for single bonesetups is making sure that the visualvolume of the shoulder is preserved asthe bone moves around. For this reason,you probably won’t want to use strictlyanatomical pivots—the long throw of thenatural clavicle tends to create a squishy,rubbery feel in the upper back. The mostcommon response is to place theclavicles much farther outboard andfurther back than they “ought” to be—basically the same trick as buildingspines in the center of the torso, as wediscussed last month.

If you are working on a high-resolutioncharacter for whom good deformations areparticularly important (and bone countisn’t critical), you’ll get better qualityshoulders by building working scapulae.

The pivots, you’ll remember, aren’t hard toplace, but the behaviors are a bit daunting.A good solution has to do two things well:preserve the volume of the shoulderagainst standard smooth-skinningcollapses, and illustrate the “scrunch” ofthe scapulae when the shoulders arerolled back. It would be nice to reallycapture the complex three-dimensionalsliding motion of the scapulae, but formost game applications that’s overkill.

The clavicle and shoulder (glenohumeral)are simple, since they are basicallystandard kinematic bones. Remember,each scapula should be a child of aclavicle, with a pivot right on top of thepivot of the humerus. This way theelevation of the clavicle moves the “point”of the scapular triangle. The tricky part isgetting the other two corners of eachscapula to act as if they were sliding alongthe surface of the ribcage, and to do itwithout any attention from the animator.

The easiest way to achieve this—we’retalking relatively easy, not absolutelyeasy—is with driven keys. This shouldn’tbe too difficult, but it is somewhattweaky. Most driven-key solutionsbecome slightly unpredictable whenyou’re dealing with more than one input,and in this case, you’ll need to drive therotation of the scapulae according to boththe elevation and the yaw of the clavicles.

If you’re looking for a simple solution,you can try rotating each scapula onlyaround a vertical axis. For manyapplications, that will be enough. If you

go whole hog and let the scapulae rotaterealistically in all three axes, you’llprobably get better results, but you’llneed to pay careful attention to theresources I’ve provided, particularly theones that contain video clips.

If you’re a real IK enthusiast, you mightconsider using an IK-pole vectorcombination to simulate the movement ofthe scapulae. In this system, you wouldput an IK target where one corner of thescapula should rest, and plop the polevector control at the other corner. Youmight be able to animate such a setupusing only geometry constraints to keepthe corners of your “bone” glued to a proxyribcage object, but this will likely result inhistory dependency problems. Driving theposition of the IK and PV targets withdriven keys is simpler and less risky.

COLD SHOULDEROverall, the key thing to keep in mind ifyou do go for a multi-bone scapular setupis minimalism. Even if you were toperfectly capture the movement of thescapula bones, you wouldn’t be gettingany of the complex bulging and slidingbehaviors in the muscles that overlay it,so don’t drive yourself insane. Instead, beguided by your knowledge of what’s reallygoing on inside to find the simplest, mostbulletproof approximation.

And of course, let’s not forget thecritical refrain for Anatomy for Animators:Go with what looks good, not what’snecessarily “correct.” *

40 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

PIXEL PUSHER

FIGURE 4 When the clavicle rolls forward, the scapula rides

around the outside of the ribcage.

FIGURE 5 When the shoulder is pulled back, the scapula slides

across the ribs toward the spine.

Johns HopkinsUniversity BiomechanicsProjectwww.biomech.jhu.edu/projects/shoulder

Christopher Evanshttp://chrisevans3d.com/research.htm

RESOURCES

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

THERE HAVE BEEN MANY SPEECHES ANDarticles on the creative rut that theindustry has fallen into, with big studioreleases following a few successfulformulas, competing over tinyincremental changes to graphic enginesor role-playing mechanics, revisitingfamiliar fantasy worlds or sports licenses.

But Tim Schafer, head of Double FineProductions, is known for his creative

approach. In fact, heput it all on the linewith the gamePSYCHONAUTS, releasedin 2005. First, adisclaimer: I’ve beena fan of Tim’s workfor nearly 20 years,when he came towhat was thenLucasfilm Games towork on THE SECRET

OF MONKEY ISLAND. Hisresume featured acartoon he drew toillustrate how much

he wanted the job, and his sense ofhumor and creativity were so evident webrought him in right away.

He went on to create other popular andvaried games like DAY OF THE TENTACLE, FULL

THROTTLE, and GRIM FANDANGO beforeleaving to found Double Fine.

PSYCHONAUTS’ gameplay builds ontypical 3D action platformer style, but thestory, characters, and settings areradically innovative. The player controlsRaz, a kid stuck at a summer campintended to train children with psychicpowers. Much of the game takes placeliterally inside the minds of variouscharacters, including some who are

paranoid schizophrenics, megalomaniacs,or just plain weirdos. The game is full ofTim’s characteristic humor, often sarcasticor sardonic, and is hysterically funny.

I recently talked to Tim about some ofthe creative risks he took, as well as theunusual techniques he employed tocome up with such unique charactersand settings.

N o a h F a l s t e i n : Which came first:characters or the art design?

Tim Schafer: Mostly, the characters camefirst, and then the settings were createdby imagining what was inside thecharacters’ heads. That’s why the premisewas fun. What would it be like to be insidethe head of some of the more extremecharacters? We were constantly askinghow do we keep it “krazy with a k,” so itdoesn’t get too serious. And we alwayswanted to have a conspiracy theory guy.

N F : That was one of my favorite parts.How did you come up with the look for theinside of his mind?

TS: Paranoid people are said to be self-centered, in that they imagine the world asexpanding circles revolving around them,so we set up the neighborhood to look likea web wrapping around him. He was basedon a real person who used to hang aroundin front of the old Double Fine offices,sweeping up the street. He was reallyfriendly but nuts, and every once in awhile he would get angry and break hisbroom, claiming the government waswatching him through bits of broken glasson the street, and downloading stuff intohis head. Half of the dialog in thatparticular level is quotes from him.

N F : You spoke at a GDC 2004 about usinga Friendster-style interface for characterdevelopment, filling out data for all yourfictional characters. How did that work?

TS: I tend to write in real time, gettingideas down quickly after months of

procrastination. That makes the dialogsound more natural, but you have toknow the character very well. That’swhere the Friendster thing was great. Itforced us to answer silly questions like,“What is the favorite CD of thatcharacter?” You’d never tell someone inthe game what Raz’s favorite album is,but having his backstory in your headhelps you make him sound morebelievable. I had a huge document ofbackstory that I never even put up on theweb site because it is important to implyand suggest the world is bigger than it is.That’s cooler than letting the player seeeverything you’ve got.

N F : Are there other games you findcreatively inspiring?

TS: I’ve been playing KATAMARI DAMACY,that’s an amazing game with some reallycreative things. It’s a lucky break it evenhappened. Also ANIMAL CROSSING,NINTENDOGS—but these days, unless youare in a position like Shigeru Miyamoto’s,it’s hard to get the chance to take a realcreative risk.

N F : What do you think about publishers’current attitudes about creativity?

TS: It’s become necessary to hide it thesedays. When publishers say a gamesounds really creative, it’s their way ofsaying, “it has a nice personality.”

For our next game, one publisher said,“No one is into creative stuff now,” andanother said, “Our only red flag isinnovation on the gameplay. Have youconsidered doing this as a GTA stylegame?”

I’m not trying to do gaming’s Un ChienAndalou [Bunuel and Dali’s bizarreexperimental film], just be innovative—but you can’t pitch innovation. You justhave to be smart and tenacious abouthacking your way through the systemjust to get your ideas out there. *

game shui

NOAH FALSTEIN

N O A H F A L S T E I N is a 25-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. Email him at [email protected].

SCHAFER ON CREATIVITY

>>

PSYCHONAUTS takes place

largely within the

characters’ minds.

42 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

AURAL FIXATION

ALEXANDER BRANDON

>>

VOICE OVER IS PERHAPS THE SINGLEmost time consuming and problematicaspect of game audio production today.Music can be retrofitted more easily tochanging game designs, as can soundeffects. Voice over, however, directlyinvolves people and their time, rightdown to the time it takes them to speakwords and syllables.

When it comes to the dynamicdevelopment process of games, the morepeople you have involved, the moreproblems you’ll encounter. This is why, invoice over sessions, you need moreoptions and strategies to deal with theproblems that do come up.

Guest columnist Zak Belica wrote anexcellent article (“Sound Principles: VoiceDirection,” April 2005) on what to dowhen you’re in the booth, as well as howto prepare a script. In this article we’lltackle the overall process.

SCRIPT PREPARATION AND CASTINGThere are two important categories ofscript that need voice over files:cinematic and gameplay. Cinematicscripts are easier to lock down becauseit’s easier for the writers to maintain anoverall linear storyline than it is to holdtogether player-influenced gameplay. Thegameplay script is also different in thatgame mechanics can be adjusted rightup until your ship date.

With this in mind, as a producer ordesign lead, you should identify youroverall story early and lock it down inpre-production, just the way a storyboardis done for a film. How that story is

presented can change (shots, cues, andlighting, for example), but the story itselfshould not. You need to verify this scriptearly on, reading it aloud in its entirety.The story can be developed relativelyindependent of the game mechanics.

Next, when you’ve locked down thestory, you should secure a cast, alongwith good character descriptions andconcept art. This will serve you well ifyou’re not doing your casting internallyand have to deal with bids from agencies.

Keep in mind though, that your initialbid won’t be 100 percent accurate untilyour gameplay script is locked down—and be prepared for multiple pickupsessions. Depending on your game typeand the scope of your project, you’ll havea varying number of pickup sessions.By the way, using internal staff for yourvoice over talent is getting riskier andriskier from a quality standpoint. In short,don’t do it if you care even one iota aboutdramatic presentation.

TALK AIN’T CHEAPFinally, there’s the subject of contracts,the part of the process that everyone inproduction despises. Unfortunately, thefact remains that legal responsibility isdictated by limiting risk and preventingloopholes that sneaky people haveexploited in the past. So don’t necessarilyblame lawyers or unions. Blame themorons who took advantage of the system.

You should give yourself a solid month,minimum, to plan and execute a voiceover contract of any size, whether usingunion or non-union actors. This will allowyou to determine what you need, such asa casting director, celebrity talent,engineer, or session director, and howyou want to negotiate.

Recent changes to union contracts havebeen making the contract process moredifficult, so paying special attention tothis task is vital to getting effective voiceover in your game. Either hire a contractoror bring someone in full time, but make

sure you have a voice over supervisordevoted exclusively to dealing withunions, directors, talent, and studios, andhave them interface with your legal teamas well as the marketing and licensingdepartments (if necessary) so there areno obstacles preventing you from gettingquality voice over into your title. If there’sany one area of specialization (inaddition to audio implementationengineers) that you’ll need, it’s this one.

NASCENT NARRATIVEWhy is it so important to get voice overjust right? Games are now competingwith films for dramatic presentationthrough dialogue. On a major film (takeThe Lord of the Rings: The Fellowship ofthe Ring as an example) there’s at leastone person devoted to casting, one tothree people devoted to dialogue editing,at least one dialogue coach, and thedirector, who will devote 20 to 30 percentof his or her time to the dialogue alone.Dialogue represents and shows howcharacters interact. Dialogue is a key veinfor communicating the story.

In a game such as FABLE, which is anexcellent example of an original storypresented in a nonlinear way, there wasone person in charge of voice alongside ateam of three or so sound editors led bythe venerable Russell Shaw. It’s unclearhow much time Peter Molyneux spent ondialogue himself, but it’s safe to say thatit was less than a film director wouldhave been able to.

The bottom line is this: If dialogue isimportant to your title, be flexible,realistic, ready, and most importantlycommitted to your quality level. *

THE VOICE OVERCHALLENGE

Games like FABLE utilize a dedicated voice

director to help manage ever-growing workloads.

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 email him at

[email protected].

www.nintendo.com www.retrostudios.com

For more information on these positions,please visit the web sites below:

Jobs at Nintendo of America

Redmond, WA

3D/2D ARTIST (NST)

UI ARTIST (NST)

CONTRACT – CONCEPT ARTIST (NST)

BILINGUAL PROJECT SPECIALIST

ASSOCIATE SOFTWARE ENGINEER/ SOFTWARE ENGINEER

SR. SOFTWARE SUPPORT ENGINEER

BUSINESS DEVELOPMENT MANAGER

BILINGUAL PROJECT SPECIALIST

MANAGER, MARKETING SUPPORT

Jobs at Retro Studios

Austin, TX

LEVEL DESIGNER

CONCEPT ARTIST

GAME DESIGNER

STORYBOARD ARTIST

GAME PROGRAMMER

WORLD ARTIST

CONTRACT – WORLD ARTIST

44 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

change the world?Why notWhy not

Assistant Professor of New Media/Electronic ArtsWe are seeking a motivated and energetic candidate who will contribute to the visual computing initiatives of the Department of Arts, including animation, digital imaging and interactive hardware and software development to begin in August 2006. This position includes teaching undergraduate andgraduate studio courses and coordinating curriculum with other faculty, as well as advising on the configuration and operation of a lab facility. A priorityfor this position is competency in the area of computer animation and real time graphics. The ideal candidate will be an established practicing artist and educator who uses techniques of animation in both linear and interactive media intheir creative practice, and has experience working with professional digital platforms and applications. Additional desirable skills and interestsmay include robotics and/or interactive installation, bio-art, game development, and related theoretical topics. Candidate must be willing tobecome an active member of the Arts Department, with a strong commitment to creative work, research and teaching.The Arts department at Rensselaer is the home of a highly visible program in integrated electronic media which includes the iEAR Studios (integratedElectronic Arts at Rensselaer), state-of-the-art facilities dedicated to interdisciplinary creative research and artistic development in audio, interactivity, video, computer imaging, animation, web, multi-media installation and performance. As an art program situated within the context of a technological university, we offer a unique creative environment in which to develop and realize cutting edge electronic art.Qualifications: Professional activity and visibility as a practicing artist and previous experience in university teaching and organizational administrationare desired. This position requires either MFA, PhD, or equivalent professional accomplishment and recognition. Rank: Tenure Track, Assistant ProfessorSalary: Commensurate with experienceTo apply, send a resume, a cover letter describing your qualifications, your teaching philosophy, and a sample of your work. Please include thenames and contact information (current phone, email, and address) of three persons from whom letters of reference may be obtained. Letters ofrecommendation may be requested after receipt of your application. Work samples may be in the form of DVDs, videotapes (MiniDV, DVCAM,VHS), websites, and CDs. Books and articles can also be submitted for amplification. Please also include the work of your students and samplesyllabi. Applications will be considered beginning January 15, 2006, and will be accepted until the position is filled. Applications should be sentto: Prof. Kathleen Ruiz, Chair/Animation Search Committee, Arts Department, Rensselaer Polytechnic Institute, West Hall, 107, 110 8thStreet, Troy, NY 12180, tel: (518)276-4784, fax: (518)276-4730, email: [email protected], http://www.arts.rpi.eduWe welcome responses from individuals who will bring diverse intellectual, geographical, gender and ethnic perspectives to Rensselaer’s work and campus communities.

Rensselaer Polytechnic Institute is an AffirmativeAction/Equal Opportunity Employer.

Tenure-Track Faculty Vacancy

>>CR

EATI

V CA

REER

S

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

VFS. A proven education for everything you see, hear and experience in the entertainment industry.

For detailed program information call 1.800.661.4101 or visit vfs.com.

game designWork Hard, Play Harder

>> GET EDUCATED

>>GE

T ED

UCAT

ED

46 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

Artwork by Full Sail Student- William “Forrest” Crump

3300 University Boulevard Winter Park, FL 32792Financial aid available to those who qualify • Career development assistance

Accredited College, ACCSCT

800.226.7625fullsail.com

If you’re serious about your dream, we’ll take your dream seriously.

Bachelor’s Degree Programs in

Game Development& Computer Animation

[ GEEKED AT BIRTH. ]

You can talk the talk.Can you walk the walk?

Here's a chance to prove it. Please geek responsibly.

www.uat.edu > 800.658.5744

Game Programming, Game Design Artificial Life Programming

Computer Forensics and more!

createYOUR WORLD

C E R T I F I C A T E P R O G R A M S A V A I L A B L E

Intensive nine-month programs for the skills and tools you need to turn your ideas into reality.Financial assistance and career services available. APPLY NOW.

CONTACT US TODAY: call 800.808.2342 or visit www.cdiabu.com

Game Art & Design 3D Animation Visual Effects Recording Arts

Anark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Annosoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Center for Digital Imaging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

The Collective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Collins College . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Course PTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

DePaul University . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Emergent Game Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . C2

Full Sail Real World Education . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Jagex Ltd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Nintendo of America. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Perforce Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C3

Rad Game Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C4

Rensselaer Polytechnic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

ReplaySolutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Seapine Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

University of Advancing Technology . . . . . . . . . . . . . . . . . . . . 47

Vancouver Film School . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Xoreax Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

ADVERTISER INDEX

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. Canadian 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 out-side the U.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 and additional mailing offices. POSTMASTER: Send addresschanges to Game Developer, P.O. Box 1274, Skokie, IL 60076-8274. CUSTOMER SERVICE: For subscription orders and changes of address, calltoll-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 toGame Developer, P.O. Box 1274, Skokie, IL 60076-8274. For back issues write to Game Developer, 1601 W. 23rd St. Ste. 200, Lawrence, KS66046-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 remember to indicate Game Developer on any correspondence. All content, copyright Game Developer magazine/CMPMedia, LLC, unless otherwise indicated. Don’t steal any of it.

The image that appeared in“Bringing Down the House” (AuralFixation, November 2005) wasuncredited. The photographer isJames Lin.

In "Game Trains FDNY" (Heads UpDisplay, November 2005), theduration of the project wasmisstated. HAZMAT: HOTZONE hasbeen in development for threeyears; Shanna Tellerman hasworked on the game for twoyears. In addition, around 30students from Carnegie MellonUniversity contributed to themaking of the game.

We regret the errors.

CORRECTIONS

MAGNA CARTAMagna Carta, a Korean RPG published in the U.S. by Atlus,features character art by Hyung-Tae Kim. Illustrationspresented here depict the characters Orha (top) and Rothy(center). In-game art by the Softmax art team.

48 J A N U A R Y 2 0 0 6 | G A M E D E V E L O P E R

A THOUSAND WORDS>>

Softmax/Atlus’

Download a free copy of Perforce, no questions asked, fromwww.perforce.com. Free technical support is available throughoutyour evaluation.All trademarks used herein are either the trademarks or registered trademarks of their respective owners.

[Fast]

[Scalable]

[Distributed]

Perforce's lock on performance rests firmly on three pillars of design.

A carefully keyed relational database ensures a rapid response time for

small operations plus high throughput when the requests get big -

millions of files big. An efficient streaming network protocol minimizes

the effects of latency and maximizes the benefits of bandwidth. And

an intelligent, server-centric data model keeps both the database and

network performing at top speed.

It's your call. Do you want to work, or do you want to wait?

Tired of using a software configuration management system that stopsyou from checking in your digital assets? Perforce SCM is different: fastand powerful, elegant and clean. Perforce works at your speed.

Perforce.The fast SCM system.

For developers who don’t like to wait.