JANUARY 2001

GAME DEVELOPER MAGAZINE ON THE FRONT LINE OF GAME INNOVATION

GAME PLAN DEVELOPER

✎ 600 Harrison Street, San Francisco, CA 94107 t: 415.947.6000600 Harrison f:Street,415.947.6090 San Francisco, w: www.gdmag.com CA 94107 LETTER FROM THE EDITOR t: 415.947.6000 f: 415.947.6090 w: www.gdmag.com Publisher PublisherJennifer Pahlka [email protected] Jennifer Pahlka [email protected] EDITORIAL EDITORIALEditor-In-Chief Editor-In-ChiefMark DeLoura [email protected] On Game Engines SeniorMark EditorDeLoura [email protected] SeniorJennifer Editor Olsen [email protected] ManagingJennifer Olsen Editor [email protected] ManagingLaura Huber Editor [email protected] n interesting phenomenon know what systems you’ll have to create ProductionLaura Huber Editor [email protected] has been occurring in our yourselves. Making alterations to a licensed ProductionR.D.T. Byrd Editor [email protected] Postmortem column recent- to add your own features ProductionR.D.T. Byrd Assistance [email protected] Editor-At-LargeAudrey Welch [email protected] ly. Have you noticed it? Our requires quite a bit of time examining the Editor-At-LargeChris Hecker [email protected] three most recent Post- engine code. ContributingChris Hecker Editors [email protected] Daniel Huebner [email protected] Amortem titles have all used licensed game One resource that all of our Postmortem Contributing Editors JeffDaniel Lander Huebner [email protected] [email protected] engines. November’s DEUS EX used the titles saved by licensing technology was MarkJeff Lander Peasley [email protected] [email protected] AdvisoryMark PeasleyBoard [email protected] , December’s HEAVY METAL: the number of bodies. For example, DEUS AdvisoryHal Barwood Board LucasArts F.A.K.K. 2 used 3 technology, and EX only required three programmers. NoahHal Barwood Falstein TheLucasArts Inspiracy BrianNoah Hook Falstein VerantThe InteractiveInspiracy this month’s STAR TREK: VOYAGER — ELITE Writing a game engine is a huge task, and SusanBrian Lee-MerrowHook Verant Lucas Interactive Learning FORCE also used QUAKE 3. All three of not having that task to tackle meant that MarkSusan Miller Lee-Merrow Group LucasProcess Learning Consulting PaulMark Steed MillerIndependent Group Process Consulting these Postmortems noted that using they could get by with fewer programmers. DanPaul Teven Steed TevenIndependent Consulting licensed technology was one of the things This is definitely a cost savings. Does it add RobDan Wyatt Teven TheTeven Groove Consulting Alliance Rob Wyatt The Groove Alliance that went right. up to two person-years? Probably. ADVERTISING SALES Is licensing a game engine right for your DirectorADVERTISING of Sales SALES & Marketing GregDirector Kerwin of Sales e: [email protected]& Marketing t: 415.947.6218 title? That depends on a lot of factors. The Other Lessons Learned NationalGreg Kerwin Sales Manager e: [email protected] t: 415.947.6218 first thing to examine is the genre of your JenniferNational Orvik Sales Manager,e: [email protected] Western Region,t: 415.947.6217 Silicon Valley & Asia Jennifer Orvik e: [email protected] t: 415.947.6217 game. If you’re creating a PC-based first- y licensing an engine and its tools at Account Manager, Western Region, Silicon Valley & Asia MikeAccount Colligan Manager, e: [email protected] California t: 415.947.6223 or third-person action/puzzle/shooter title, B the beginning of a project, your artists AccountSusan KirbyManager, e: [email protected] California t: 415.947.6226 you have many options available. For can immediately begin working on content SusanAccount Kirby Manager, e: [email protected] Eastern Region &t: 415.947.6226Europe AccountAfton ThatcherManager, Eastern e: [email protected] Region & Europe t: 415.947.6224 sports games, isometric-view games, or fly- for the game. If you were writing your own AftonSales Representative,Thatcher e: [email protected] Recruitment t: 415.947.6224 ing games, you’ll find fewer adequate game engine, there would be a period of time SalesMorgan Representative/Recruitment Browning e: [email protected] t: 415.947.6225 Morgan Browning e: [email protected] t: 415.947.6225 engines, but they’re still out there. Console while the programmers worked on the ADVERTISING PRODUCTION games have fewer possibilities still. engine that the artists would be mostly ADVERTISINGSenior Vice President/ProductionPRODUCTION Andrew A. Mickus spinning their wheels. In fact, you probably SeniorAdvertising Vice President/Production Production CoordinatorAndrewKevin A.Chanel Mickus Advertising Production Coordinator Kevin Chanel wouldn’t want to have many artists on the Reprints Stella Valdez t: 916.983.6971 Why Buy? Reprints Stella Valdez t: 916.983.6971 project at the early stages. When you buy CMP GAME MEDIA GROUP MARKETING CMPSenior GAME MarCom MEDIA Manager GROUP MARKETINGJennifer McLean helling out the bucks for a game your engine, the programmers have more SeniorStrategic MarCom Marketing Manager ManagerJennifer Darrielle McLean Sadle S engine is not for the faint of heart. time to create subsystems and tools which StrategicMarketing Marketing Coordinator Manager Scott DarrielleLyon Sadle There are many different types of licensing assist the artists and designers in making MarketingAudience DevelopmentCoordinator ScottCoordinator Lyon Jessica Shultz agreements, from royalties-only to flat-fee the game come to life. AudienceSales Marketing Development Associate Coordinator JenniferJessica Cereghetti Shultz Sales Marketing Associate and everything in between. In general, the Being on the cutting edge by getting a pre- CIRCULATIONJennifer Cereghetti cost outlay you can expect averages about release version of an engine means that every Group Circulation Director Kathy Henry CIRCULATIONDirector of Audience Development Henry Fung $200,000. few months you’ll have to upgrade your Group Circulation Director Kathy Henry Circulation Manager Ron Escobar The typical game development process technology. You may have to redesign aug- Game Developer Director of Audience Development Henry Fung magazine is Circulation Assistant Ian Hay Circulation Manager Ron Escobar takes 18 months and employs 10 people. mentations you’ve built on top of the engine, BPA approved Newsstand Analyst Pam Santoro Newsstand Analyst Pam Santoro At a rough cost of $100,000 per person per or modify custom tools you’ve designed. The SUBSCRIPTION SERVICES year, that game would cost $1.5 million to other choice is to buy a proven stable engine SUBSCRIPTIONFor information, SERVICES order questions, and address changes Fort: 800.250.2429 information, order or 847.647.5928questions, and address f: 847.647.5972 changes develop. If buying an engine would save and make your game distinctive through t:e:[email protected] or 847.647.5928 f: 847.647.5972 you two person-years, that would cover the your programmers’ augmentations. e: [email protected] INTERNATIONAL LICENSING INFORMATION $200,000 cost. By not having to your game’s en- INTERNATIONALMario Salinas LICENSING INFORMATION Unfortunately, none of our Postmortem gine, you have more freedom to concen- Mariot: 650.513.4234 Salinas f: 650.513.4482 t:e:[email protected] f: 650.513.4482 titles really seemed to save time overall by trate on your design. It appears from our e: [email protected] purchasing an engine. The development last three Postmortems that that alone is CMP MEDIA MANAGEMENT CMPPresident MEDIA & MANAGEMENT CEO Gary Marshall process took about the same amount of really what makes a game stand out. PresidentCorporate & President/COO CEO Gary MarshallJohn Russell time that they had expected it would with- CorporateCFO John President/COO Day John Russell CFO John Day out purchasing an engine. Each develop- Group President, Business Technology Group Adam K. Marder GroupGroup President, President, Business Specialized Technology Technologies Group Group AdamRegina K. Marder Starr Ridley ment team spent time learning to use the GroupGroup President, President, Specialized Channel Group Technologies Pam Watkins Group Regina Starr Ridley engine, and then augmented it with propri- GroupGroup President, President, Channel Electronics Group Group Pam Steve Watkins Weitzner Group President, Electronics Group Steve Weitzner etary extensions such as scripting lan- Senior Vice President, Human Resources Leah Landro SeniorSenior Vice Vice President, President, Human Global ResourcesSales & Marketing Leah Landro Bill Howard guages, particle systems, lip-synch systems, Let us know what you think. Send SeniorSenior Vice Vice President, President, Global Business Sales Development & Marketing Vittoria Bill Howard Borazio and so on. When you’re examining game e-mail to [email protected], or write SeniorGeneral Vice Counsel President, Sandra Business Grayson Development Vittoria Borazio GeneralVice President, Counsel Creative Sandra TechnologiesGrayson Johanna Kleppe engines, make sure you have planned out Cto Game Developer, 600 Harrison St., Vice President, Creative Technologies Johanna Kleppe the features you’re going to need so you San Francisco, CA 94107

2 WWW.CMPGAME.COM FRONT LINE TOOLS ZWHAT’S NEW IN THE WORLD OF GAME DEVELOPMENT | daniel huebner

ten descriptions of their game Other key technologies in the IESDK will concepts for evaluation by come from Metro Link, a maker of Microsoft’s Xbox team. Those graphical display software for sys- invited to join the program can tems, including Open Stream for video license an Xbox Development and Xtrema for display management. The Kit for six months to create a IESDK will include several open stan- prototype and secure publishing dards for game development, including and distribution deals. Mesa3D for 3D graphics and OpenAL for 3D audio. The IESDK is available for FaceGen SDK morphing a male face into a female face. XBOX PROTOTYPE KIT | download at the Indrema Developer Net- Microsoft | www.xbox.com work web site. FACEGEN SDK CODEWARRIOR TOOLS FOR INDREMA | BIG MOVES FROM Indrema Entertainment Systems | ingular Inversions has released the MOTEK idn.indrema.com S FaceGen SDK, a program designed to allow game players the ability to create otek and Delft Motion Analysis unique, photorealistic faces easily. Designed Mhave collaborated on a new motion DISCREET SHIPS to be incorporated into games, FaceGen capture system that will allow for a cap- CHARACTER STUDIO 3 allows users to modify faces, or create ran- ture area of over 900 square feet — more dom photorealistic faces for -con- than three times larger than anything iscreet is shipping Character Studio 3, trolled characters. Users can start with any previously available. The new system is Dthe newest version of its character model head, including their own, and use designed as a solution animation exten- the SDK to warp their shape to any face for capturing big moves sion for 3D Stu- imaginable. FaceGen also allows for the use in sports or dances that dio Max. of existing morph states or skeletal anima- previously had to be Character tions, and existing textures and texture ani- broken into smaller Studio 3 adds mations. SDK licenses are royalty-free, with pieces of actions and new crowd and prices starting at $25,000. then spliced together. behavioral ani- mation tools, as FACEGEN SDK | Singular Inversions | LARGE-SCALE MOCAP well as acceler- www.singularinversions.com SYSTEM | Motek |www.e- ated physique motek.com skinning per- formance and XBOX PROTOTYPE KIT A motion flow screenshot improved CODEWARRIOR FOR from Discreet’s Character inverse kinemat- icrosoft is making it easier for inde- INDREMA Studio 3. ics tools. The M pendent developers to make games Crowd toolset for Xbox. The company is making an ndrema Entertainment Systems, creator allows members of a crowd scene to be Xbox Prototype Kit (XPK) available free of I of the Linux-based Indrema game con- assigned behaviors such as wandering, charge. The kit contains software and sole, and development tool maker Metro- seeking goals, avoiding obstacles, follow- information designed to help developers werks, have agreed to ing surfaces, or behaviors from custom create prototype jointly pro- Maxscripts, while new animation tools Xbox games duce a ver- allow characters to be motivated by either using familiar sion of Code- hand-designed animations, motion capture, tools on stan- warrior for or a mix of both. Character Studio 3 also dard PCs. Those Indrema’s includes many workflow enhancements, lusting for a com- console, including improved nonlinear animation plete Xbox dev kit can apply to the Codewarrior which will be and track operations. Character Studio 3 is Xbox Incubator Program, available to tools are being developed for included for priced at $1,495, with upgrades from developers who are ready to commit Indrema’s Linux-based console. free or at a Character Studio 2 available for $495. resources to an Xbox title but lack a nominal cost publisher. Participants in the Xbox as part of the Indrema Entertainment CHARACTER STUDIO 3 | Discreet | Incubator Program submit complete writ- Software Development Kit (IESDK). www.discreet.com

4 january 2001 | game developer INDUSTRY WATCH JTHE BUZZ ABOUT THE GAME BIZ | daniel huebner

Sega shifts gears. Sega plans to financial patch has spurred rumors address its recent financial woes by of a buyout. Viacom chairman shifting its focus from hardware to Sumner Redstone, who already holds software. The company is taking the a 28 percent stake in Midway, was wraps off an ambitious plan to boost expected to take advantage of the its share of the videogame software company’s weak stock price to market to 25 percent. Sega currently increase his holdings. holds a 4.2 percent share; Nintendo leads the industry with a 19.6 percent PS2 tariff debate. Sony made an share. Sega’s plans to reach their goal appeal to the United Kingdom to include providing software for rival reclassify the Playstation 2 for tax consoles and licensing purposes. Sony would like to see the technology to makers of PCs and cell machine classified as a computer, phones. “We aim to win the top thus avoiding a 2.2 percent levy share of the world market in the near The release of Bioware’s BALDUR’S GATE 2: SHADOWS OF AMN imposed on products classified as future by increasing the number of helped Interplay return to profitability in its third quarter. videogames. Customs officials denied platforms which can operate Sega an earlier request from Sony to con- software,’’ explained Sega’s strategic third quarter. Interplay reported $31.6 mil- sider the console a computer on the counsel Tetsu Kayama. “Our focus on lion in revenue for the quarter ended grounds that the Playstation 2 was not content provision is back in place. Sega September 30, a 34 percent increase from significantly different from the original aims to become a real game creator.” To revenues of $23.6 million in the third quar- Playstation, which was classified as a that end, Sega is looking to overhaul its ter last year. Net income nudged its way to videogame. Sony could take their defense software development operation, includ- a bit more than $100,000, or break even on the matter directly to the World Trade ing redirecting more than $200 million in per share, versus last year’s $17 million Organization if its appeal in the United investment funds from third parties back third-quarter loss. Kingdom is rejected. to its own internal developers. Sega hopes THQ also reported quarterly earnings these moves will put the company back that topped forecasts, but fell below last into the black as soon as this year. year’s results. The company had rev- enues of $53.3 million in the third quar- UPCOMING EVENTS Winners and losers. Game publishers ter, up from $44.3 million in the same were anxiously awaiting the launch of period last year, with net income reaching CALENDAR Sony’s Playstation 2, hoping that the new $2.4 million. Last year’s third-quarter console would signal the end of an extend- earnings were $4.7 million. THQ’s third- AMERICAN INTERNATIONAL ed stretch of soft game sales. The final fis- quarter earnings exclude a one-time cal reporting period before the momentous charge of $5.9 million related to the com- TOY FAIR occasion brought decidedly mixed results. pany’s purchase of Volition. JACOB K. JAVITS CONVENTION CENTER posted a loss in its sec- The 3DO Company’s second-quarter New York, N.Y. ond quarter, but it was smaller than revenues were up, but so were losses. The February 11–15, 2001 expected. Second-quarter revenues came company reported revenues of $22.9 mil- Cost: none in at $219.9 million, a significant dip lion for the second quarter, an increase of www.toy-tma.com/AITF from revenues of $338.9 million in the 11 percent from last year’s second-quarter same period last year. Consolidated net revenues of $20.7 million. Net losses MILIA 2001 losses totaled $35 million, compared with reached $15.2 million, compared to sec- PALAIS DES FESTIVALS a profit of slightly more than $20 million ond-quarter net losses of $5.9 million in Cannes, France in the second quarter a year ago. the same time the previous year. February 11–14, 2001 fared better, beating its sec- Midway Games may have had the Cost: (expo only) approx. $275 ond-quarter earnings expectations. The toughest time in the final pre-PS2 quar- www.milia.com company reported net income for the sec- ter, taking a significant revenue hit. The ond quarter of $4.3 million, or 17 cents per company reported that revenues for the TED II diluted share, up from income a year ago first quarter of fiscal 2001 fell nearly 56 MONTEREY CONFERENCE CENTER of $1.06 million or 4 cents per share. percent to $47.3 million, versus last Revenues rose to $144.4 million, up from year’s first-quarter revenues of $106.6 Monterey, Calif. $115.4 million in the same period last year. million. That decline in revenue translat- February 21–24, 2001 Interplay Entertainment may be the ed to a loss of $9.9 million, compared to Cost: $3,000 biggest winner of the group as the compa- net income of $11.3 million in the same www.ted.com/tedxi.html ny managed to return to profitability in its period one year ago. Midway’s rough

6 january 2001 | game developer PATTERNS GAME PROGRAMMING PATTERNS & IDIOMS | chris hecker & zachary booth simpson zwww.gamasutra.com/patterns State Machine a.k.a. (Non) Deterministic Finite State Machine, Finite State Automata, Flow Chart

Help! Zack’s in Spain with no Internet table is generated at compile time by a states become objects that know how to connection, so I’m using this opportunity separate program that parses a static react to events, and a central State Ma- to ask for opinions on an important game description of the specific State Machine, chine object manages the state objects. programming pattern. or a compile phase generates the table at Although this solves some of the nonintu- run time. You get code like this: itive control flow problems of the Switch Statement, it’s common for a 20-line Problem State = Trans[State][Event]; Switch Statement State Machine to become tate Machines are one of the funda- It’s difficult to integrate arbitrary 200 lines of C++ class declarations and S mental building blocks of all programs, actions or transition events into this code spread over five or ten files. but they are particularly important in game scheme. It works well when the types of This doesn’t seem like a win to me. programming. AIs, puzzles, conversation the events and actions are compatible engines, physical controllers, network sub- with array storage (characters in a string Issues systems, and sometimes even programmable search, for example). The table, and graphics shaders use State Machines to han- therefore the State Machine, is almost he whole point of this pattern is that dle dynamically changing situations in the completely indecipherable if you’re look- T all the solutions known to me have game. Put simply, a State Machine is a piece ing at it in a debugger or editor. major problems. We have such an elegant of code that manages the current state of a Switch Statements. This is the most and intuitive way to represent a State Ma- system, and the transitions to new states common expression of a State Machine in chine as a diagram on a piece of paper, based on events. The problem is how to C code. You have a state variable on but we don’t have the equivalent clarity represent a State Machine in a program. which you switch, and the case state- for the pattern in code. Do you have a ments handle the various states, actions, good way to implement State Machines? Solutions and tests for events. Do you disagree with my analysis above? Is there a language or programming style switch (State) { ecause State Machines are so funda- that gets close to the elegance of the state B mental to computer science, a lot of case LANDING: diagram? Visit the Game Programming thought has been put into creating and if (FootTouches) Patterns page at www.gamasutra.com/ analyzing them. There are particularly ele- patterns and let me know! gant diagrammatic representations of state State = LANDED; machines available. Everyone’s seen the FootForce = 3.4; References intuitive drawings with circles representing states and arrows between them represent- } ML statecharts are the currently hip ing state transitions due to events. The dia- case FLYING: ... U way to draw state diagrams. Here grams might include actions that occur are a couple of articles about State either during a state (Moore machines) or This quickly becomes a huge mess. My Machines with equally bad solutions (in during transitions (Mealy machines). biggest criticism of this technique is that it my opinion, of course): Sometimes a state will have another State blurs the concepts of state and transition www.cuj.com/archive/1805/feature2.html Machine nested inside it. together. The case statements are the www.embedded.com/2000/0008/0008feat1.html However, once you’ve drawn your state states, but they also implement the transi- diagram, translating it into code is prob- tions by checking the events and setting We Want to Hear From You! lematic and rarely elegant, in my opinion. the new state, and they often implement There are three main ways to implement the actions for the new state. So, in the This column depends on your contribu- State Machines. example above, the FootForce for the LANDED tions! Send your patterns and idioms to Transition Tables. I think this is the state is set in the LANDING state, which is us at [email protected]. To learn more most concise of the three, however it is nonintuitive. Code duplication when there about this column and the Game Pro- also the most restrictive on the types of are multiple paths to the same state is gramming Patterns Database, go to events and actions your State Machine another problem with this method. www.gamasutra.com/patterns. If we pub- can support. An array indexed by states State Objects. This is the “new” way to lish your pattern in the column, we’ll give and events is created, and then transitions implement State Machines, and is recom- you recognition in print and $100! are looked up in this table. Usually the mended by most books on patterns. Here,

8 january 2001 | game developer FRONT LINE AWARDS mark deloura

the 2000 fronatw lianred s

12 january 2001 | game developer elcome to Game smell like roses from those that just smell. Hall of Fame Award Developer’s 2000 Over time, game development has Gimpel | PC-Lint Front Line Awards! become increasingly specialized. In the The Front Line Atari 2600 days, the programmer also hat do you do when the boss calls Awards are our designed the artwork and music. Now we W you in to fix a bug in somebody annualW opportunity to recognize the most have programmers, texture artists, char- else’s code, and you have to fix it now? I outstanding innovative tools for game acter modelers, animators, motion-cap- don’t mean today, or by lunchtime, or by development. This year’s awards actually ture technicians, musicians, sound effects midnight. I mean now, right this instant, cover about 18 months of engineers, level designers, and many because the courier is idling in the parking time since our previous other increasingly specialized lot waiting to take the gold master to the awards issue in June roles. This year we presser so the game will be on the shelves 1999. As you might decided to incorpo- by tomorrow. Find the bug that crashes the expect, a lot of fabulous AWARDS rate several new system and you’re the hero — you might tools have come out awards — for game even get that bonus they forgot to give you since then. engines and level design tools — to high- last year. Blow it and you’ll never work in There are so many tools available for light two of these newer areas for which this town again. game developers, and many of them are innovative tools are being created. Last time that happened to me I whipped must-have packages that you’ve used for out my copy of PC-Lint, from Gimpel years. But what the Front Line Awards The Process Software (www.gimpel.com). This little are about is rewarding innovation. This gem is a source code analyzer that finds puts all packages on a level playing field his year we sought out more develop- everything that is wrong with your code. — what you’ll find in the following pages T er participation in the awards than “Everything” is not an exaggeration. In the are tools that provide you, the developer, ever before. Nominations were solicited above example, it found the assignment with new features or techniques that from the development community, votes operator that was written where a compari- make your lives easier or open up new were cast on a public web site (with son was intended, the kind of thing that possibilities in your games. appropriate screening of the voters and gets harder to find the harder you look. results), and the winners were determined PC-Lint found that bug in 250,000 lines of Tool Evolution by high vote count. From this process, code spread out in almost 100 source files. eight products of the past year have been All right, so it took 20 minutes to find the he Front Line Awards also provide us singled out as exceptionally innovative, bug, 30 minutes to figure out a kludge, and T with an annual opportunity to survey along with our annual Hall of Fame two hours to recompile the whole thing. what makes a tool valuable. One very inductee, a special award which honors Not exactly what the VP of development clear evolution of the tools during this truly indispensable products that have meant by “now,” but it was close enough past 18 months is an emphasis on cus- stood the test of time by loyally serving to save my hide. tomization. As developers, you have to be game developers for years. PC-Lint is the samurai sword of develop- on the cutting edge in order to make your We’re looking at possible models for ment tools. It’ll slice, dice, hack, cut, shred, game look better, sound better, and be the future of the Front Line Awards, as mince, and chop anything, anywhere. But more fun than the game sitting next to our industry grows ever larger and more like a real samurai sword, it’s not a tool to yours on the shelf. No matter how inno- diverse. The Scientific and Technical place in the hands of an apprentice. PC- vative a tool is, you need to be able to Awards that are given by the Academy of Lint assumes you understand C++ com- modify it to mate properly with your Motion Picture Arts and Sciences could pletely. Goof up an access specifier and PC- engine, take advantage of the features of be a good model for us to base the Front Lint will flag the conflict in excruciating your target platform, or enable your Line Awards on in the future. We’ll be detail. But you better know what an access artists to work more efficiently. looking at it, and I invite you to look at it specifier is, because PC-Lint is a big-league Another significant development during as well and give us your feedback. Check tool. It won’t hold your hand and explain this period has been the rise of middle- out the design at www.oscars.org/scitech/ it to you. ware. Since Sony began their middleware index.html. PC-Lint flags almost 2,000 types of program, many new tools and libraries problems in your source code, from simple for game development have sprung up. Acknowledgements little things such as incorrect indentation to They haven’t just sprung up for the the nastiest tangle of obfuscated code. Each Playstation 2, either: Sony’s middleware inally, I want to thank everyone who type of problem can be customized with a announcement inspired an entire wave of F nominated products for this year’s large selection of reporting flags. You can “middleware” that spans all platforms. awards, voted for the products, or wrote prevent flagging a type of error in a file, a This gives you many more choices, but the descriptions that accompany each of single line of code, or a group of lines. PC- also makes it vital for you to have a this year’s winners — thank you so much Lint works with almost every compiler source that distinguishes the tools that for contributing your time and effort. you’ve ever heard of, from Aztec to Zortec,

www.gdmag.com 13 FRONT LINE AWARDS

and with all versions thereof, and inte- greatest strength, and now managing 3D Art Package grates with almost every IDE out there. those layers has become much simpler Discreet | 3D Studio Value tracking of automatic variables? with the ability to organize layers into Max 3.1 Yep, PC-Lint does that. Detection of sets. The Layer Set feature allows you to unnecessary objects in headers, or unused group layers in a folder and perform ver the years, 3D Studio Max has headers? Yep, that operations on them O become the standard for making too. Debugging of as a group, so you real-time 3D models for videogames, and weak definials? Yep. can apply a mask or for good reason. Release 3 is a powerful Every time you hide a whole set of polygonal modeler, has an easy-to-use stumble across a layers very quickly. material editor, contains great mapping bug and mutter a This grouping of lay- tools, and has strong plug-in support, curse, wondering ers also makes the mainly due to its popularity. It is also why your compiler Layers palette much priced reasonably when compared to didn’t catch it, PC- easier to navigate other high-end 3D software. Lint would have because similar ele- Max isn’t the strongest 3D utility for caught it for you. ments of an image all applications right out of the box, but Everything you’ve can now be visually when it comes to modeling real-time always wished your grouped in the Lay- models for games, it’s very hard to beat compiler would do ers palette. for one important reason: simplicity. for you, PC-Lint Photoshop’s inter- Every tool needed for modeling is right at will do in several face is now very cus- your fingertips. An intuitive user interface different flavors. tomizable with more makes things even easier, and Max 3’s As a time-saving tool, nothing beats PC- freedom to dock palettes and organize interface is completely customizable. Lint. If you’re hunting for bugs, or trying tools. A new context-sensitive Options Users can create tabs that contain any to improve the quality of code to prevent bar has more options available and the favorite tools and commands to fit that bugs from happening in the first place, ability to store docked palettes. Palettes user’s individual needs. PC-Lint is the tool to have. It not only docked on the Options bar are easy to Creating and adjusting materials takes does its job well, it does it far better than access and they free up screen space. no time at all. Tools such as Unwrap any other tool in its class. With bugs con- Vector-based graphics have been inte- UVW and Surface Mapper make mapping suming so much time in game develop- grated into Photoshop, so now you can coordinates extremely adjustable and ment, going without PC-Lint is a slow create resolution-independent graphics easy to apply to objects with irregular form of suicide. If you don’t have a copy and masks. Pathfinder operations just shapes. Max has an enormous plug- of it, fire one of your programmers and like those in Illustrator are now in library, both freeware and get PC-Lint instead. You’ll finish your available as well. retail. Many powerful game sooner and it’ll run better. Vector-based plug-ins are available, — Mike Kelleghan shapes can be and more are on the way stored in libraries every day because of the for easy reuse. popularity Max has built 2D Art Package New text fea- over the years. Many Adobe | Photoshop 6.0 tures have been plug-ins that were consid- added, such as edit- ered “must-haves” for hotoshop 6.0 is the tool of choice ing text directly in release 2.5 now come P for 2D work. It is hard to recall how the image window standard in release 3, mak- I ever got by prior to the introduction of and the ability to ing Max a fantastic value. layers in Photoshop; it was a milestone in warp type. Another Max also comes with a innovation. For texture creation and edit- nice feature is the free SDK that includes more ing as well as layout, Photoshop is Liquefy command, than half of the source code, unmatched primarily due to its powerful which allows you to dis- making it easy for programmers to implementation of layers. Version 6.0, tort a layer or image by paint- create custom tools, exporters, and plug- while not adding any new features quite ing with brushlike tools. ins to fit any developer’s needs. When it of that magnitude, does provide many Photoshop 6.0 includes many improve- comes to polygonal modeling, Max is improvements in managing layers as well ments that increase functionality, ease of simply the best choice out there. The sim- as significant interface enhancements and use, and productivity, making an indis- plicity, capabilities, extensibility, and new tools. pensable piece of software for the game price have helped make Max the best- Working with complex files that con- artist even better. selling 3D software in the game industry. tain many layers is arguably Photoshop’s — George Simmons — Chris George

14 january 2001 | game developer FRONT LINE AWARDS

Art Utility or Plug-in tion, an extensible plug-in architecture time threshold is reached. Most important- ACDSystems | ACDSee 3.1 guarantees that future formats can be ly, the tagging is impressively fast, effi- added easily, as well as custom modules for cient, and can handle 65,000 files. hances are, your own pro- Other customizable features that help C you’ve got some- priety formats increase productivity are the C/C++/Java where around 40 bazil- using the Code Beautifier, Comment/String Spell lion images in your ACDSee SDK. Checker, Multi-file Search-Replace, and an current game. Whether Even if your intuitive macro language with macro it’s interface screens, needs eventual- recording capabilities. The code beautifier is textures, sprites, pro- ly outgrow the particularly useful; it reformats your inden- motional artwork, comprehensive tation, tag styles and brace styles to suit conceptual drawings, feature set of your preference. raw scans, or any ACDSee, it’s SlickEdit makes extensive use of dialog other image related to worth explor- boxes and windows to allow users to speci- your game, you need a ing this low- fy their preferences or custom-define way to keep track of ACDSee 3.1 cost option macros and key bindings. The editor is so all this stuff. ACDSee before laying rich with features that you will find your- makes this daunting task much easier. down the dough for far more expensive and self discovering new ones even after Over the past few years, ACDSee has marginally more useful applications. months of use. grown from a simple graphics file viewing — Ralph Barbagallo Beyond the editor itself, Visual SlickEdit utility to a full-blown suite of image dis- provides a robust environment for any play, organization, conversion, and editing project. In the console industry, we fre- tools. As a result of this evolution, ACD- Programming Tool quently find ourselves dependent on a vari- See has become the image viewer of choice MicroEdge | Visual ety of awkward environments with special- among computer enthusiasts and game SlickEdit 5.0 ized compilers, linkers, art tools, and so developers alike. on. In my work at Nintendo of America, I ACDSee’s blazing-fast renderer ensures here are many tools for programmers have found Visual SlickEdit to be very use- that images can be viewed instantly. By T available on the market, but if you’re ful in providing a stable, easy-to-use inter- using the convenient browsing feature, specifically looking for a text editor for face for such environments. For example, you can quickly scan through your graph- your project, Visual SlickEdit 5.0 stands Visual SlickEdit can recog- ics data accompanied by an automatic out above the rest. It’s powerful, nize error outputs of several thumbnail view. Files can be viewed customizable, and easy to different compilers (includ- directly from compressed ZIP and LZH use. I like to program using ing command-line compil- archives. Comprehensive file listings are VI, and before I started ers such as gcc), and auto- available with the click of a button. Also using Visual SlickEdit, I matically bring you to the bearing mention are the comprehensive would switch between line in the source file where search functionality and image annota- VIM (VI under the error occurred. It incor- tion capability. Windows) and Visual porates very easily with The latest edition of ACDSee, version C++ to get the best makefile-based projects, and, 3.1, attempts to provide some of the same features of both for PC developers, Visual services of high-end professional tools but editors. Well, SlickEdit can open a Visual at a shareware price. Among these new Visual SlickEdit C++ workspace seamlessly. enhancements is a batch function that can combines the Visual SlickEdit also pro- run a series of simple operations on a benefits of both vides tools similar in function- selection of files. These basic features are and adds much more, ality to Unix’s diff, grep, and buffeted by an array of plug-ins which providing accurate emulation of Visual find commands but with a user- provide a growing list of functions, such as C++, CUA, Brief, Emacs, and VI. friendly, easy-to-learn interface. The file-dif- generating contact sheets, automatically The Context Tagging, which includes ference tool, named DiffZilla, is sophis- creating HTML “albums,” reading Auto List Members, Auto Function Help, ticated. The diff dialog can operate on mul- obscure file formats, and various other and Context Navigation and Context tiple files in a directory tree, while exclud- enhancements to the standard package. Preview, is superb. Visual SlickEdit main- ing specified directories or file types. ACDSee is also becoming the tool to tains a database of functions contained in With all these powerful features, Visual manage all media, not just images. The last your source and header files, and indicates SlickEdit will increase your performance few versions have included support for the function you are currently editing. and efficiency by providing you with the audio files in addition to its vast array of Files are automatically retagged when they tools you need to get the job done. supported image and video data. In addi- are added to a project, saved, or an idle — Dante Treglia II

16 january 2001 | game developer Programming Library 3D rife with brand new standardized fea- walk, Cubase, whatever — and have it play Microsoft | DirectX 8 tures, optimizations, and tools. Microsoft to the MusyX slave program which is either Direct3D has been quick and responsive to devel- running locally on your own PC or remote- opers — and it shows. With extensive ly on your network (it communicates via fter almost half a decade of living in developer support TCP/IP). The A OpenGL’s shadow, Microsoft’s 3D on Microsoft’s vari- MusyX slave can graphics API has come into its own. It’s ous newsgroups, emulate your tar- amazing how Microsoft has turned thorough documen- get platform and Direct3D from the laughingstock of the tation available on play through game development community to the their web site, and your PC speak- bleeding edge of high-performance 3D an ongoing series of ers, or send to graphics technology. developer confer- your develop- Back in the Stone Age of Direct3D, we ences, keeping ment hardware had the horror of execute buffers, sparse abreast of the and play the documentation, inconsistent driver imple- increasingly large set music on the real mentation, and lengthy setup routines that of Direct3D features thing. seemed to dwarf the size of the applica- is becoming a bit The Game tion’s main code. However, with the last more manageable. Screenshot from MusyX Boy Advance few releases of Direct3D, almost everything Sure, all of these version lets you has become streamlined. You can practical- Windows API goodies are keeping many mix 32 sampled voices and also do Dolby ly set up your entire Direct3D application game developers somewhat shackled to Surround encoding. (Of course, you’ll with a single call. Robust framework Microsoft’s platform. But if you are looking need to wear your headphones to hear it source is provided with each release. And for cutting-edge Win32 multimedia per- properly.) The N64 version supports 32 the documentation is actually helpful. formance, DirectX 8 could quite possibly much higher-quality voices and also Previously, Direct3D was playing a game be your complete choice. includes a 3D sound API. of catch-up with developers. With DirectX — Ralph Barbagallo The Sound Macro Language lets you 8, Microsoft is now ahead of the curve. modify notes for music as well as create With the release of QUAKE 3, using pro- sound effects. You can do this through the grammable shaders in real time has become Audio Tool graphical drag-and-drop interface, dragging a hot topic. Direct3D now includes built-in Factor 5 | MusyX existing macros to affect your sounds or support for pixel shaders. It also has more creating your own macros. There are a ton support for vertex blending and skinned he first time I heard Factor 5’s MusyX of different macros you can create — more models — an important element now that T tool, it was playing a John for the more advanced platforms — and if skeletal animation systems are becoming Williams–like symphony that sounded you really wanted you could take your commonplace. These days, if you want to absolutely brilliant. The music was set up Game Boy Color music with SMaL info learn about the latest in real-time 3D as a MIDI file, just a bunch of scripted and play it on the N64 just by changing the graphics technology and techniques, a fine notes, but used SMaL (Sound Macro slave program and making some adjust- place to start is the Direct3D API. Language) macros to modify some of the ments to or replacing the macros. Direct3D is becoming not only a 3D sounds. This gave the scripted music a sym- Not much information is available about graphics API, but an entire toolset. phonic quality unlike what you’d the Gamecube version at this point, but if The new release is accompa- normally hear when a choir of it’s as good as the previous versions it nied by handy plug-ins to digitized violins all play the should make creating interactive music for export model and anima- same note. In that case, Gamecube much easier. tion data from such you would typically hear — Jim Verhaeghe popular packages as just one note, since the Maya and 3D Studio waveform would stack Max. Combined with up on itself, but this Game Engine Microsoft’s growing actually sounded like a Epic Games | UNREAL Engine suite of tools for use real orchestra belting out with other DirectX com- the Star Wars theme. ere at Ion Storm Austin, we used the ponents, developing games MusyX is a synthesizer H UNREAL engine to create DEUS EX, on the Win32 platform is program that runs on your PC our hybrid RPG/shooter immersive sim, becoming easier every day. but targets audio for Game Boy which was in development for over two While OpenGL remains mired in bureau- Color, Game Boy Advance, Nintendo 64, years, including preproduction. As a cratic processes to include new elements, or Gamecube. You can use whatever music development group, we wanted to be every year we get a new version of Direct- composition tool you’re used to — Cake- content providers, not technology

www.gdmag.com 17 FRONT LINE AWARDS

providers, so we were looking for an There were a few rough aspects that has progressed in leaps and bounds, engine that would let us spend a signifi- required working around, but no technol- adding features users have been clamor- cant portion of our time working on ogy is perfect. All games are designed ing for since the beginning. gameplay. The marriage around limitations. At key First among these new features is a of our design/develop- points during develop- fast, smooth, stable, and very much ment and the ment, we came to under- appreciated OpenGL 3D window which, UNREAL technology stand how things could while requiring a video card capable of worked out very well. best be done with UNREAL, running OpenGL in a window, is a great The UNREAL engine embracing the technology step up from the previous version, and technology enabled us rather than fighting it. makes a lot of people’s lives a lot easier. to get started quickly, UNREAL was a great Version 3.3 also introduces the ability to instead of waiting a choice for us — it enabled preserve texture alignment on rotated year or more for our us to make a game we’re brushes. Previously, if you wanted to programmers to create proud of, and a game that rotate a crate, say, five degrees left, you’d an original technology seems to have made a lot have to manually rotate and position package. Almost as of players happy. every single texture on every single face soon as we started, we — Harvey Smith — while this was bad enough on a six- were building out sided box, imagine the fun you’d have on spaces and getting a anything larger. Worldcraft 3.3 brought feel for what a DEUS EX environment Level Editing Tool us the rotating texture lock, which made was. The programmers could take some Valve Software | Worldcraft creating realistic environments a much aspect of the design document and proto- less time-consuming process. Gone are type it in short order. This allowed us to ack in the days of 3D the days of uniform objects in a straight go through many iterations of game B and , level design software line in most levels. Another useful feature design features rapidly, for instance how was in a horrible state. Unstable editors, is the ability to display actual sprites in our nanotech augmentations allowed the documentation, and complex con- the 3D window, rather than a green player to interact with the game environ- struction techniques made level design for square. Worldcraft 2 popped up a colored ment. The technology was incredibly sta- games inaccessible to all but the most cube every time you placed a sprite — ble (from the perspective of someone hardened developers. now you see them animated in real time, familiar with in-house engine technology With the advent of DUKE NUKEM came which is a blessing to people trying to used at other companies). DEUS EX almost the Build engine and editor, which position sprites perfectly. never crashed during development, which spawned thousands of amateur level Worldcraft also provides an amazing again allowed us to focus more time and designers who proceeded to fill the web amount of support. While it’s a bit of a energy on content creation, instead of fire with their creations. beast to set up fighting. Many people left Build for the first- The UNREAL engine package is powerful behind to move onto time user, and well supported, especially from the greener, more 3D pas- there’s plenty artist and designer perspectives. The tures when QUAKE was of help avail- UnrealEd level editor is subtractive, which released, and so the able from I prefer greatly to additive editors. We level edi- Valve and on built all the maps and missions for DEUS tor was born. A few the web. EX with UnrealEd. Our programmers editors rose to the chal- Some people wrote a stand-alone tool called ConEdit lenge, QuArK (the still stick by for the character conversations, but in all QUAKE Army Knife), their old- other cases we used UNREAL technology as Radiant, and World- school guns a starting point. As mission designers, we craft being the most and slog it loved working with it — people often had notable editors of their The Worldcraft level editor out with side-project maps going, working on, say, time. QuArK or a temple from their fantasy RPG cam- In its previous incarnations, Worldcraft whichever editor is still favored among paign, the interior of their apartment, or was, quite frankly, not the greatest editor the level design dinosaurs. Good luck some small scene from a favorite movie. on the block. What it offered in ease of prying Worldcraft 3.3 out of my hands, That says a lot; people saw it as a fun, use, it took away in instability, poor 3D though. With the continued support from enabling creativity tool, rather than a hor- display, and resource digestion. When Valve and the fantastic features added in rible beast that had to be struggled with Valve Software picked it up as their in- every new update, Worldcraft is one piece daily. The designers on our team actually house level design software, it was still of software that’s definitely on the up. enjoyed using UnrealEd. stuck in this state. Now, at version 3.3, it — Simon Westlake q

18 january 2001 | game developer jeff lander GRAPHIC CONTENT

Battling Beetles

ow that the new millenni- um has actually started, it’s time to reflect on the year that just ended. I’ve cov- ered quite a bit of ground Nin this column: nonphotorealistic render- ing, free-form deformation, 3D painting, texture wrapping, and a bunch of other stuff for creating, animating, and rendering 3D objects. It’s probably apparent to most will of you the types of game development situ- be pretty ations where these different techniques are easy. It’s just a useful; however, I still often get e-mail polygonal from readers that basically sound like, mesh. No fancy “The technique you described in the maga- dynamic view zine for doing 3D_GRAPHICS_TECH- culling needed, NIQUE is pretty cool. But, I am doing a FIGURE 1. since the center CURRENT_GAME_GENRE title and I of focus is al- don’t see how I can use it. When do I need ways the battle that technique?” “When Tweetle arena. That Now that my game developer toolbox Beetles fight, it’s means that the is all full of nice little pieces of 3D tech- called a tweetle beetle main technical nology, it’s time to pull it all together and focus will be the actually do something with it. We start battle.” — Dr. Suess characters. with the game design. First of all, let’s Single-mesh polygo- hope I have one. As the technical lead, it’s Levels: Various fantastic cartoon areas nal characters are the obvious choice. I always better to have a fully developed like the “gooey blue goo puddle” and the don’t need any fancy continuous level of concept before you actually start creating “battle in a bottle.” detail scheme, since the players will be full- the game. The few times I have been Platform: The latest and greatest 3D screen and close. The game style also dic- involved with a “design it on the fly” game platform (meaning polygon count and tates a fairly simple mesh. No need to go kind of project, it’s always ended in disas- graphics features are not a major factor). crazy with the polygon count. You can see ter. But let me start by assuming that I Target demo: Mass market and early an example of the beetle characters with have a design. adopters (we want the sexy high-end simple texture maps battling in Figure 1. graphics but want to sell a ton of them). To animate the characters, I could ex- The Design for Delivery: 18 months from start of pro- port various mesh key poses and morph Battle Beetles duction (aren’t they all?). between the poses in the way that QUAKE Poor me, that’s all I get. From that, I characters do. However, deforming the itch: “It’s a fighting game with a need to create a technical design document. characters with a skeletal system makes P heart, but it’s really funny.” Unfortunately for me, that means I need to more sense for some key reasons. A con- Genre: 3D fighter similar to Sega’s VIRTUA decide how a “fighter with a heart” actual- temporary fighting game requires a lot of FIGHTER or Midway’s READY 2 RUMBLE. ly plays. The environment that they fight in animated moves. Morphing all these Style: Animated-cartoon-style fighting game with cartoon physics (squash and JEFF LANDER | Presently, Jeff is probably pondering perplexing problems with polygons. stretch). Jot Jeff a jaunty jingle at [email protected].

www.gdmag.com 21 GRAPHIC CONTENT

detect the collision cor- for example, between the elbow and rectly or lack the ability to wrist is a good example. I could close the have the characters react. gap by adding more spheres, for exam- You often see little puffs of ple, between the bone roots or by using magic dust or sparks to oriented bounding boxes to define the cover the fact that the hand object instead of spheres. However, these of one character passed spheres are good enough for my fighting through the torso of the game application. other. This same idea is useful for other game To get accurate collision genres as well. For example, one of the fea- detection for the characters, tures that players liked about Raven Soft- or at least accurate to a ware’s SOLDIER OF FORTUNE was the ability point, I need to check if to selectively hit regions of the character’s body parts are actually in body. This feature could easily be accom- contact. A single boundary plished using the sphere-tree approach. for the entire character will not be good enough. I could Applying the Skin go to the level of checking for collisions between indi- o I have a polygonal character with vidual polygons, but that S an embedded skeleton and boundary would be more detail then spheres attached. However, unless I attach FIGURE 2. A beetle with boundary spheres approximating the I actually need. One the skin to the skeleton, the beetle is shape of the character. method for more detailed going to have a tough time moving. As I collision detection is to use have mentioned before in this column frames would require a great deal of a bounding sphere tree. In this technique, (“Over My Dead, Polygonal Body,” Octo- memory. Animating the skeleton will boundary spheres are arranged in a hierar- ber 1999), vertex weights are used to require a great deal less memory. Also, chy where each level of the tree bounds a associate each vertex with the bone ma- using the skeletal system for animation more detailed representation of the object. trix in the skeleton. However, generating will allow for the creation of dynamic For example, the root of the boundary tree these weights is as much art as technolo- moves on the fly. Plus, I already have the would be a sphere that encloses the entire gy. If you are fortunate enough to use an code prepared to support the matrix character. The next level has boundary advanced 3D animation system such as deformation needed for the skeletal ani- spheres for each arm, each leg, the head, Maya or 3D Studio Max, you can use mation system. and the torso. The branching could contin- these tools to generate the skin weights. ue until each individual polygon is bound- Of course, the challenge then becomes Collision Detection ed by a sphere. getting the program to give you those val- This again is probably more detail than ues, but that problem will have to wait andling collisions between the char- I need. However, it’s a good starting point. for another article. If you do not have a H acters will be the most important I have a character made of a mesh that program like this, you will need to roll technical issue of the game. Fighting contains a skeleton composed of bones your own. games depend on good collision detec- that roughly follow the shape of the char- If you realized that the 3D paint system tion. I could simply track the character acter. I can add a floating point bsphere I created for last September’s column states and distance between them. If one value to the bone data structure that repre- (“Art and Intelligence: 3D Painting”) is character was in the “punch” pose and sents the radius of a bounding sphere at well suited for the job, you get a cookie. was close enough to the other player, I that bone root location. This will give me In that program, I already had the capa- could call it a “hit” and make the charac- a series of boundary spheres that approxi- bilities to paint on the surface of an ters react. This was typically the way mate the shape of the character. As a side object. Making the system paint vertex fighting was handled in the 2D fighting benefit, since the boundary spheres are weights instead simply involves hooking a games of the recent past. However, for “attached” to the bones, they follow the few pieces together. However, for a rea- the modern 3D fighting game, that is no animation of the characters. You can see sonably sized model with a lot of vertices, longer adequate. Players like to see realis- the boundary spheres defining the charac- you are not really going to want to paint tic reactions. If one player hits another in ter in Figure 2. each vertex weight by hand. You want to the head, the head should snap back. The way I defined these sphere sizes have a starting point. The 3D animation Likewise, a punch that is blocked should and positions, they don’t entirely cover packages use a default mapping to get not continue through the body of the the object. For example, it may be possi- things going. I want to re-create this func- character. This is a key problem with ble to pass an object through the charac- tionality to give my program a head start many fighting games. They either cannot ter without hitting a boundary sphere; as well.

22 january 2001 | game developer GRAPHIC CONTENT

The obvious start- ing point would be to MORE ON ABRITRARILY say that the vertices DEFORMING MESHES are influenced by the bones that are close to them. I need to create In last month’s column (“Pump Up the a falloff function that Volume: 3D Objects That Don’t Deflate”), I was describes the amount trying to find a way to generate a local coordi- of influence a bone nate frame for an arbitrarily deforming mesh. has on a vertex. When The method I described could easily be termed the weight is 1.0, the a “hack.” What I did then was identify vertices vertex is under full influence of that bone. that roughly define the major axes of the When it is 0.0, the object and then use the average of those bone has no influence points as a local frame. For objects that have at all. I have seen a FIGURE 3. Automatic arm weighting. vertices roughly along their major axes, things variety of falloff func- work pretty well. However, for a more compli- tions, but for my models the following problem that I ran into long ago. Back in cated object, things are more difficult. Averag- function gives me the best results: January 1999 (“Crashing into the New ing the outer hull vertices also may not always Year,” Graphic Content), I described dMv= give the best result. After speaking to Chris almost this exact scenario for use in mak- ing sure that a point is not too close to a Hecker and David Eberly among others, it This weight is calculated for each ver- wall. I’ll recap the technique here. appears that there may be a more mathemati- tex-bone pair. The weights for each ver- What I want to know is how far away cally correct, though more computationally tex are then sorted by weight. You can the test vertex, v, is from bone segment expensive solution. If I consider an initial ver- limit the weighting to a certain number A. An easy solution would be to find the tex, v, that corresponds to a deformed vertex, of bones by zeroing out the weights nearest point, n, to the test point on the d, I want to solve the equation beyond that number. The weights for bone segment and measure the distance to each vertex then need to be normalized it. First, I create a vector, B, from the test dMv= so that the sum of the weights for any vertex, v, to bone root b . I can dot this 1 where M is the matrix that transforms the vertex is equal to 1. vector with the bone segment A. This will vertex to the deformed position. This leads to The algorithm for the automatic weight- give me the cosine of the interior angle. If ing function is: this angle is 90 degrees or greater, the a problem of error minimization. I can measure nearest point is the root itself and I am the distance from d to Mv for each vertex and For each Vertex in the mesh done. But let’s say that the dot product attempt to minimize that distance. I want to For each Bone in the skeleton gives me 0.7 or the cosine of about 45 find a matrix, M, that will return the minimum Calculate the weight using the above degrees. I will then do the same thing on formula possible value for the function: the other side. I create a vector, C, and Sort the vertex-bone pairs by weight vertexcount−1 dot it with the segment A. If it had re- 2 Zero out the weights beyond the desired ∑[]dMv− turned an angle greater than or equal to nn blend number n=0 90 degrees, point b would be the closest Normalize the weights so that their sum = 1 2 This matrix will represent both the translation and I would be done again. In this case and rotation that caused the object to get into The tricky bit is deciding on the dis- the dot product returns 0.75, or the tance function to use when weighting. cosine of about 40 degrees. Now that I its deformed space. It is complicated a bit by The simple method would be to calculate have the two dot products, a linear ratio the fact that I want the transformation matrix the distance from the vertex to the bone will solve the problem: to be composed of only rotations and transla- root. However, this is not ideal. Consider tions. A general transformation matrix can also vertexcount−1 the case of the arm in Figure 3. The root − 2 scale the object up or down to cause the defor- ∑[]dMvnn is near the shoulder; however, there are n=0 mation. To keep this from happening, I need to vertices all along the bone structure. This new point, n, can then be used to add constraints on the problem to keep the Using the simple root distance function, check the distance to the vertex. scale uniform. I will be investigating this further the vertices along the arm bone would In practice, this works much better not be considered. than the basic root distance. However, I and reporting the results here in future I need a distance function that consid- have found that if you use the entire columns. If you have any ideas on the subject, ers the distance from any point along the bone length for the test, it interferes with drop me an e-mail. bone. Fortunately, this is similar to a the next bone in the hierarchy. To coun-

24 january 2001 | game developer objects that it should not affect. to wait until next month. Until then, In this example, the arm rotation start thinking about how we can use is moving vertices in the face. skeletal deformation and animation tech- I could probably combat this niques and still get the cartoon physics problem by considering the dis- type of squash and stretch that we want tance traveled along the topolo- for the characters. gy of the mesh. But it is easier On Game Developer’s web site at to clean up these issues by hand www.gdmag.com, you will find source using the weight painting func- code for automatically computing the ver- tion. That is what makes this tex weights of an object, as well as modi- problem artistic as well as tech- fications to the 3D paint program so that nical. At visual effects compa- you can paint the weights. Thanks to nies, there are staff members Christine Lander for creating the Battling FIGURE 4. Too much influence. that do nothing else but attach Beetle model. q skeletons to characters and set FOR MORE INFORMATION teract this problem, I use 75 percent of up the skin weighting. The game industry the bone length as the test segment for is probably not to that point yet, but may Seuss, Dr. [Theodor Seuss Giesel]. Fox the distance. That seems to give me a soon get there. reasonable amount of influence without in Socks. New York: Beginner Books, too much interference. I Have Bones but I 1965. That is not to say that the algorithm is Can’t Walk perfect. I am just using a simple distance check. This check assumes no knowledge of haven’t addressed either the animation Discuss this article in the actual mesh topology. So, as you can see or rendering aspects of my technical Gamasutra’s Connection! I www.gamasutra.com/discuss/gdmag in Figure 4, the influence can fall off onto design document yet, but that will have mark peasley ARTIST’S VIEW

File Organization and Naming Schemes

ay back (and I a project I worked on a mean way back) few years back. I was when I art-directed brought on midway my first game, it through the development was just sort of process of a large project. Wassumed that I knew what I should call The art team was busily my files and how I would begin to organ- creating art, and had been ize my data. I was more or less left to my for well over a year before own devices to figure out just what need- I joined them. One of my ed to be done. Well, truth be told, I didn’t first tasks was to try to have a clue. I made it up as I went, and get a handle on just what luckily, it was back in the Jurassic period had been created and find of game development when floppy disks out where it was. were all the rage. Even when I wasn’t well It turned out that a for- organized, it didn’t matter too much since malized method of file there just weren’t that many files to naming hadn’t been estab- FIGURE 1. A simplified directory structure that is headed down the worry about. lished, or if there had wrong path. Times have changed. CDs have become been one, no one was the standard and DVDs are starting to adhering to it very stringently. In addition, File Organization make a showing in the gaming industry. the directory structure for the art assets, Mass-media storage capabilities are stan- both working and final, didn’t exist in any ased on that experience, and refined in dard on the next-generation consoles. logical sense. The files were sometimes on B the years since, I have compiled some With the size and scope of most games individual hard drives, sometimes on net- rules to live by: First, files should sort coming out now, art teams generate thou- work drives, or occasionally backed up alphabetically and numerically in directo- sands upon thousands of files. They range onto CDs. Team turnover had exacerbated ries. Second, Excel is your friend. And third, from the working art production files to the problem as well. fast, cheap, or good — pick any two. the final files used on the CD or DVD. Under these circumstances, it took me the All right, now that I’ve gotten that out There are 3D mesh files, texture files, ani- better part of a month just to get to the of my system, I’ll explain why I arrived at mation files, GUI bitmaps, special 2D ani- point where I could make a spreadsheet these rules in a bit more detail. The first mation files, vector files, support files, showing which assets were complete, which rule pertains to the way your data will and so on. With all of that data floating were incomplete, and where everything was. sort. If you design a directory and file sys- around, organization becomes critical. Additional problems occurred because tem that is logical and flexible, you will Without it, work will be misplaced, lost, of incorrectly named files, which were reap the rewards down the road. If you and have to be redone. Hair will turn linked to untold lines of code and scripting just name files and directories randomly, gray and blood pressures will rise as team files. Correcting them (and there were a lot or as you need them and without fore- members try to keep a handle on this of them) would have taken too long, so we thought, you will oftentimes find yourself ever-expanding issue. decided to leave them. These files were a painted into a corner. The farther you are never-ending source of confusion. Logic into the development cycle of a project, It Could Happen to You was tossed out the window, and we had to the worse it gets when you have to make develop a vast lookup spreadsheet just for sweeping changes to files. Often, other lthough much of what I’m going to tracking the data. team members are directly affected by A talk about is rooted in common While this is an example of a worst-case your changes. This can include program- sense, it still deserves to be explored. scenario, it exemplifies the issues well. ming, level design, and just about every Sometimes we get so tied up in the details With the proper structure and forethought, facet of development. that we can’t see the forest for the trees. we could have avoided a large expenditure Let’s take a look at an example and For a real-world example, let’s examine of art resources. walk through some of the problems and

MARK PEASLEY | Mark has been in the game industry since the late 1980s and is currently the art director for Gas Powered Games. Visit his web site at www.pixelman.com or e-mail him at [email protected].

www.gdmag.com 27 ARTIST’S VIEW

potential solutions: Your project is ers start making little dolls GUMBO’S REVENGE, a real-time 3D game. It that look like you and pin- has a 3D world that will be filled to the ning them to their cube walls. brim with objects, trees, and all of the nec- And they use way more push- essary graphical splendor to make it a big pins than they should. hit. As you begin to create the art assets Even though you can cre- for the game, the issue of organization ate identically named files in rears its ugly head. different directories, I’d Let’s take a standard tree object as a strongly recommend against case in point. The initial design calls for it. At some point in the art your trees to be of varying sizes, including process, you will be revisiting one meter, three meters, and six meters the files again, and it tall. There are also a couple of evergreen becomes a very confusing, and deciduous varieties. One of the first error-prone process if you are things you’ll want to do is to determine calling up similarly named what to call your file, and where to put it. files. Another reason might In establishing what to call your files and occur months down the directories, you might ask yourself some development road. An appli- questions. What thing is the first determin- cation might end up being ing factor in a directory-based file name? written that helps sort and Is it the size? The color? The type? Do I export your art data very effi- care? (Hint: answer “yes” to the last one.) ciently. These applications So let’s say you decide that it goes in can save you days of work, FIGURE 2. An example of how the addition of a zero can cause the following order: size, general type, but generally are more reli- directories to sort correctly. specific type, and so on. You determine able if you use unique identi- that there will be a lot of trees in your fiers. There are always workarounds to the eyes glaze over as he looks at your “logi- game, so you decide that the first order of problems you will face, but it is good prac- cal” file name. business is to set up your directory struc- tice to err on the side of flexibility. Now, take that one example, and multi- ture (see Figure 1). So bite the bullet and go back and rename ply it by a hundred, or a thousand. Do Now, everything is going along just fine the files with a more logical naming scheme, other assets in the game follow the same until you decide that you need 12-meter using the directory structure that you’ve cre- logical structure as the trees? How about trees. When you add the 12meter directo- ated as a basis for the file names. After cre- houses? Character files? Is it going to take ry, it situates itself at the beginning of the ating the first file called 01METER_DECID- you an hour to explain your naming other directories, following the standard UOUS_MAPLE_TREE01, you realize that scheme to someone? If so, can you make it alphanumeric sorting. some people might balk at a 30-letter file more efficient? Have you checked with the Well, now your directories are out of name. Some data truncating might be need- programmers to see if your scheme works order. Not a big thing, but a nuisance just ed to make the file more manageable, so you with the way they are writing the code? the same. So you go back and rename your cut the file down to 1M_D_M_T01. Know- It quickly becomes clear that you will first three directories 01meter, 03meter, ing you are on the right track, you blaze need to think this process through careful- and 06meter. This allows your files to sort through the rest of the files and update them ly and keep a close watch on it as the proj- correctly, and everything proceeds as it to your new scheme. ect moves forward. When done well, this is should — for awhile (see Figure 2). Once again, things are right in the one of the less visible infrastructure com- In your first directory (..\1meter\decidu- world of GUMBO. The art progresses ponents that allows the development ous\maple), you create four trees. Being the along swimmingly for another week process to proceed at optimal speed. When logical person you are, they get named: before you realize that you need to define done poorly, it can quickly drag the art TREE01, TREE02, TREE03, and TREE04. your trees further with light and dark ver- asset process into a quagmire of problems. Then, you move on to the oak trees, and sions. Your first forays into the new detail you name the first four trees . . . uh . . . level start to show some problems with “I’ll Take Technology for TREE01, TREE02, TREE03, and TREE04. your naming scheme. The file 600, Alex” Your logic is that they are in different 1M_D_M_T01_D looks O.K. until some- directories, so they can share the same one points out that the first “D” stands s with many things in this “new” busi- name without any problems. for “deciduous,” and the second “D” A ness of game development, the prob- After a couple more directories get filled stands for “dark.” So you rename it lems we face have often been dealt with with files of identical names, you realize that 1M_D_M_T01_DK. It all makes perfect before, only under different circumstances. you may be heading down the wrong path. sense until you hand the file off to the Take, for example, organizing a library full Your first clue occurs when the level design- new guy who started last week and his of books. It’s essentially the same problem,

28 january 2001 | game developer just applied to books instead of computer computer’s standpoint, a unique number Once you have waded through two or three files. Most of us have heard of the Dewey or letter-number combination is no differ- directories that are nothing but numbered decimal system used by libraries to organize ent from a long, descriptive word. All that files, it becomes impossible to remember their materials. Just so you know (and I had is generally required is that it be unique what the files represent. to look this one up too), it’s based on the from any other file. Are there distinct So why would you choose this method division of all knowledge into ten groups, advantages or disadvantages to using a at all? One reason might be if you have with each group assigned 100 numbers. The numbered system? The answer is, it files that are constantly being shuffled, 10 main groups are: 000 to 099, general depends. reassigned, or changed. If this occurs, it’s works; 100 to 199, philosophy and psy- A numbered system can work well, and often necessary to rename the files contin- chology; 200 to 299, religion; 300 to 399, is quite flexible, but it isn’t without some ually in order to maintain the integrity of social sciences; 400 to 499, language; 500 costs. One of the main disadvantages is the organization structure you have built. to 599, natural sciences and mathematics; that you have no way of visually sorting For example, let’s say you have a file 600 to 699, technology; 700 to 799, the the files in a directory without either see- called TOWN_INN_BUCKET.PSD. Under arts; 800 to 899, literature and rhetoric; ing them (via opening them up or thumb- a directory-driven structure, this repre- and 900 to 999, history, biography, and nails) or using a lookup table. sents a picture of a bucket, found in the geography. These ten main groups are in When given the chance, most of us are “Inn” subdirectory, which is located in turn subdivided again and again to provide likely to label a picture of a flower as some- the “Town” directory. Later on in the more specific subject groups. Within each thing descriptive, such as FLOWER1.JPG as development cycle, you realize that this main group the principal subseries are opposed to G32AL321.JPG. This is just bucket is much more applicable for use in divided by ten as well. common sense, since you want to be able to the barn, which is located in the country- O.K., now that we’ve had our history look at a directory of files and be able to side section of your game. If you move lesson for the day, let’s get back to the pick out your flower file easily. If the file is the file to the new directory, the filename problem at hand. Why couldn’t we just named something that has no recognizable doesn’t match the existing structure. apply the same technique to the issues of reference to your original file, it becomes Renaming isn’t difficult, but it takes a file names and be done with it? From the much more difficult to locate and identify. small bit of time.

www.gdmag.com 29 ARTIST’S VIEW

Let’s say that your bucket item needs to What Should I Use? create the final game assets. In the case of be more of a global type. So you create a Photoshop, a production file can often be “Global” directory, and break it down enerally, I try to stick with the 20 or 30MB in its nondestructive, uncol- into logical subdirectories. Again, you G basics. As a computer artist, you lapsed form while the final asset is under move the bucket file and because its name may not be well versed in programs that 1MB. Also, most artists keep several iter- is derived from the directory it resides in, don’t directly deal with creating art ations of files on hand. Animations are it needs to be renamed. While this is a assets. While this is fine for production- another good example. They are exported simplified case, changes like this can occur level positions, you will find that your from the 3D tool of choice, creating a on a daily basis as a project continues. software knowledge base needs to expand game-specific final asset. If, on the other hand, the file was origi- as you take on the responsibility of man- It’s easy to see that a lot of files need nally just given a unique number or letter- aging assets. to be considered when thinking of the number identifier, it could be shifted Spreadsheets are a great type of pro- safe backup of the artist’s development around easily without you having to worry gram to get familiar with. They are like environment. If it follows a logical, well- about renaming it. This can be very advan- the Swiss army knife of applications. I thought-out structure, this can be a very tageous if there are a lot of files prone to typically use Excel, mainly because it is easy thing to manage and maintain. If this type of evolution. compatible with just about everyone, and not, files can go for months or years The main disadvantage is that a lookup because I am developing on the PC envi- without being backed up, and only when table of some sort will have to be main- ronment, it is one of the base tools I have a hard drive fails or data turns up miss- tained and readily available as a cross-ref- at my disposal. It’s powerful, flexible, and ing do you realize the files are missing erence. Generally, this requires several easy to learn. It’s also available to all of from what you perhaps thought was a spreadsheets that must be constantly main- the artists on the team as part of their safe system. tained. In addition, error-checking is some- basic system software, so I don’t have to So what backup method should you times difficult to do since it is easy to concern myself with additional software use? As usual, it depends on your project. transpose characters that have no specific purchases. Choose a program that every- Most big development teams will have an logic to their structure. If you misspell one has access to; otherwise they won’t automated LAN backup of some type. FLOWER1.JPG, it’s easier to see and cor- be able to review, edit, or update your Data is backed up every day or two, and rect than if you mistype G32AL321.JPG. files without help. as long as you have your critical files on Once you get into the management side the network, you are safe. CD backup Make a Key or Two of the assets, you will soon find yourself burns that include your iterations and in the position of needing to supply data legacy files are a good idea. Like most ne of the first things I do when begin- to the person(s) responsible for tracking artists, I usually discover a particular file O ning a naming scheme is to start some the progression of your project. With a has something useful in it the day after I “living” documents. These are ones that properly organized spreadsheet, you can delete it. If you intend to burn CD back- are constantly updated as the project pro- find and present this information easily. ups, think about how best to organize gresses. They should be in a location that is Excel also allows linking to other spread- your directories. It’s a lot easier to copy readily accessible to the other team mem- sheets. One way to take advantage of this and burn one “backup” directory tree bers, which can be as simple as a shared capability is to create linked summary than it is to spend an hour gleaning the directory over a LAN, or it can be more sheets. If properly set up and linked, sum- files out of your working structure. tightly controlled by using some sort of mary spreadsheets can be made to update version control such as Visual SourceSafe. automatically from other spreadsheets. Plan Ahead, Stay Ahead A good first document to create is a key This is a great way to create files that are for others to decipher your naming scheme. always current (assuming the linked files s the person responsible for manag- This will be a requirement if you use a are maintained) and usually provide the A ing and/or maintaining art assets, numbered scheme. If it is a directory-based executive summary information needed you will find that the organization of naming scheme, then it isn’t required, but it without all of the detail. your data is an ongoing process. If you will certainly make life easier if it exists. set up a good system, it doesn’t have to Since most descriptive words you use in Safety Issues be a full-time job to update and maintain. your file are going to get truncated, you While file organization isn’t the most should have a document that everyone goes s my example at the beginning of glamorous part of game development, it is to when they are looking for the abbrevia- A this column showed, poorly organ- important, and can have a major impact tion of a word. Even if you think the word ized files can lead to some serious flaws on how well your project runs. Remember is so simple that no one could possibly con- in the backup process. Part of any good to keep it flexible, and keep it simple. q dense it incorrectly, you will be amazed. development structure includes the consis- Let’s take the word GOLD for example. Is tent backup of both the final “CD image” Discuss this article in it GLD, GL, or GD? If you leave it up to files and the production art files. Pro- Gamasutra’s Connection! www.gamasutra.com/discuss/gdmag interpretation, the chance for error is high. duction files are those which are used to

30 january 2001 | game developer REAL-TIME REFLECTANCE JAN KAUTZ, CHRIS WYNN,

Achieving Real-Time Realistic Reflectance

JAN KAUTZ | Jan is a Ph.D. student at the Max-Planck-Institute for Computer Science in Saarbrücken, Germany. His main research area is interactive realistic lighting and shading using graphics hardware. He can be reached at [email protected]. CHRIS WYNN | Chris is an OpenGL software engineer working at Nvidia Corp.’s technical developer relations group. You can ask him anything (BRDF and other- wise) at [email protected]. JONATHAN BLOW | Jonathan prefers the AK-47 and the Colt M4A1. He will use the MP5, though, if that’s what it comes down to. He reads e-mail sent to [email protected]. CHRIS BLASBAND | Mr. Blasband has more than 17 years of experi- ence in applying BRDF phenomenology to military and commercial applications. As president of Soreal Technologies, he is responsible for deploying Surface Optics Corporation’s technology into commercial off-the-shelf products. He can be contacted at [email protected]. ANIS AHMAD | Anis is an undergraduate student at the University of Waterloo, majoring in computer science. You can contact him at [email protected]. MICHAEL MCCOOL | Michael, who can be reached at [email protected], is an associate pro- fessor with the Computer Graphics Lab at the University of Waterloo, Canada. His research areas include real-time hardware-acclerated shading and illumination.

32 january 2001 | game developer JONATHAN BLOW, CHRIS BLASBAND, ANIS AHMAD, MICHAEL MCCOOL

ne of the primary goals of game development is to example velvet, copper, and others. This is called separable decom- successfully convince players that they are in a dif- position and is an effective and efficient way to incorporate physi- ferent world — this is particularly important for cally accurate reflection models and ultimately increase the level of 3D and first-person games where visual immersion realism in a game. The technique can be used in conjunction with may mean the difference between life and death, point light sources, directional light sources, light maps, shadows, Ovictory and defeat, or first place and second. In order to achieve this and fog, since each of these influences only the illumination compo- visual immersion, the lighting must be as sufficiently convincing as nent of lighting and does not affect the reflectance model. More- all the other elements in the environment. That is, the quality of the over, the technique evaluates reflectance on a per-pixel and not a geometric models and the lighting simulation should be good per-vertex basis, and it can support dynamic lights with no addi- enough to trick a player into suspending reality and believing that tional overhead. Finally, while the approach is general and allows he or she is in the fantasy world that months of development time for arbitrary reflection models, it is still capable of simulating were devoted to creating. Phong if desired. Figures 1 through 4 demonstrate examples done The increased fill rates and optional transform and lighting at interactive rates with our technique. engines that highlight the evolution of 3D accelerators have paved This month, we will cover the mathematics behind reflectance the way for increasingly complex geometric as well as how to acquire reflectance infor- detail. What once was unimaginable is now mation from real-world materials. Next commonplace, as games that utilize the poten- Of course, a real applica- month, we’ll detail our separable decompo- tial of these accelerators make their way sition technique and how to implement it through the production pipeline. The good tion wouldn’t use just, using multi-texturing. news is that this trend of increased polygon throughput is likely to continue in the future. say, brushed metal, but Scope of This Article Unfortunately, however, the quality of lighting has not improved at the same rate, and many rather brushed metal s we said, the process of lighting games still lack the visual authenticity neces- A involves both illumination and reflec- sary to provoke a truly compelling gaming that’s scuffed, rusty, tion. In this article we will concentrate on experience. Artifacts resulting from poor ver- point-source direct lighting, where illumi- tex lighting continue to abound in games, and dirty, has glowing green nation comes from a point positional or while the geometry improvements have helped directional source and is reflected by a sur- the lighting cause, our games do not yet exhib- alien mucus smeared on face directly into the eye. Even applications it many of the lighting phenomena observable that use sophisticated precomputed global in the real world. it, and has holes punched illumination should not neglect direct light- So what’s necessary to achieve realistic ing from the brightest light sources, since lighting? To answer this question, two areas in it where acid has eaten such lighting conveys the bulk of the infor- must ultimately be addressed: illumination and mation about the shape and surface quali- reflectance. Illumination determines the distri- through. ties of objects in the scene. bution of light striking the surfaces in the Many if not most current-generation ren- scene, and includes the effects of shadows and dering engines add interest to surfaces by indirect lighting. Reflectance determines how surfaces redistribute using color, bump, environment, and/or specular maps. While these the light that hits them. For realistic lighting, both the illumination techniques are very effective, they are still limited by the underlying and reflectance need to be simulated. reflectance models they modulate. Within the game development community, several current For simplicity, our examples will focus on materials with homo- approaches address the illumination problem. Point lights (with geneous surface properties; that is, each triangle in a model can rep- optional fog, distance, or shadow attenuation) are often used to resent only one type of material (such as metal or wood). Of determine the amount of light that arrives at a surface. Directional course, a real application wouldn’t use just, say, brushed metal, but light sources and light maps effectively serve this purpose as well. rather brushed metal that’s scuffed, rusty, dirty, has glowing green Unfortunately, sophisticated models of reflectance have not really alien mucus smeared on it, and has holes punched in it where acid made an appearance in games. In terms of reflectance, most games has eaten through. What we’re going to present is not merely to date use the Phong reflectance model or rely on strict intensity another technique to put in your bag of tricks, but a technique that modulation to determine how surfaces reflect the light that strikes will greatly enhance other effects when combined with them. them. While this is not a bad thing, Phong reflectance and intensity modulation are limited in the types of lighting phenomena they are Reflectance Models capable of simulating. Consequently, they are unable to reproduce the appearance that we observe of many real-world materials. n computer graphics, when we talk about materials or material This two-part series of articles focuses on the reflectance aspect I properties, what we are really talking about is the reflectance of lighting. We will discuss a technique that implements more gen- properties of a surface that define how light arriving at the surface eral reflectance models for a wide variety of surface materials, for is scattered. A reflectance model can be thought of as a material

www.gdmag.com 33 REAL-TIME REFLECTANCE

LEFT TO RIGHT: FIGURE 1. Metallic anisotropic material. FIGURE 2. Measured peacock feather: note color shifts at certain viewing angles. FIGURE 3. Analytical BRDF for gold with an additional diffuse texture. FIGURE 4. Measured wood with an additional diffuse texture. description that modulates the intensity of the light that arrives at reflectance when viewed from a distance, such as hair, fur, and the surface. As parameters, it takes the angles by which incoming mown grass. Even with a static light source and viewer, a surface light arrives at a surface point and the angles by which it must leave with an anisotropic reflectance will reflect differently when rotat- that point to enter the eye; as outputs, it gives us the manipulations ed around its surface normal. See Figure 1 for an example of an that should be done to the light to simulate the reflective properties anisotropic brushed material. of a material. Currently, the Phong reflectance model is used almost universally for “glossy” surfaces in real-time rendering. Phong The BRDF reflectance is easy to use because it is directly supported by existing graphics APIs such as DirectX and OpenGL. Moreover, in 3D he Phong reflectance model became popular because it was accelerators that include hardware transform and lighting support, T easy to compute and produced fairly attractive results. In the computation of Phong reflectance can be performed very rapid- order to develop more sophisticated reflectance models that do ly and does not burden the general CPU. not suffer from Phong’s problems, we need to define mathemati- Unfortunately, the Phong reflectance model is not physically cally what a “reflectance model” is. The abstraction used by com- realistic, and many real surfaces have reflectances that look noth- puter graphics researchers is the bidirectional reflectance distribu- ing like it. Furthermore, the current implementations of the Phong tion function, or BRDF. lighting model in OpenGL and DirectX both have some severe When light reflects off a perfectly smooth specular surface, the problems because they evaluate the reflectance model only at the angle of reflectance is equal to the angle of incidence. However, vertices of the polygon instead of at every pixel sample rendered. perfectly smooth surfaces don’t exist in the real world. Rather, This method of evaluating a reflectance model at the vertices of a surfaces tend to be quite complex at a microscopic level. For primitive and then interpolating the resulting colors across the example, a wood surface, no matter how polished and smooth it primitive is the commonly known Gouraud shading technique. may feel, contains millions of tiny fibers packed together. When Gouraud shading is fast and requires far fewer computations than light reflects from surfaces like these it scatters in many directions. evaluating the reflectance model at each pixel, but unfortunately it Depending on the type of surface, light will be more prone to can be problematic — particularly so for shiny surfaces in which scatter in certain directions. Directions in which a large fraction of the reflectance varies rapidly with view and illumination direction, the incoming energy scatters are usually seen as highlights. A and contains specular highlights that do not fall on a vertex in the BRDF models the probability that a photon from a certain incom- model. For example, if the object being lit is modeled using a ing direction will scatter in a certain outgoing direction, or will be small number of polygons, each covering many pixels, a rapidly absorbed by the surface. An example of such a distribution (for varying reflectance function can be undersampled, resulting in one light direction) can be seen in Figure 5. aliasing of the reflectance model. This can result in splotchy high- The BRDF can be used to compute, for a particular view direc- lights that may flash on and off as the object moves, which does tion, the outgoing radiance (which corresponds to what the eye not convey the desired impression of a shiny surface. Hence it is actually perceives) as a weighted integral over all incoming radi- desirable to have a technique that performs the lighting computa- ance at a particular surface point: tions on a per-pixel basis rather than on a per-vertex basis. ()θφ=ƒ( θφθφ )()()() θφ θ σθφ Finally, the Phong reflectance model is isotropic: the amount LLdoo,∫∫ ooii , , , ii , cos i ii , of reflectance depends only on the elevation angles; that is, the Ω angles that the view and light directions make with the normal. Here ƒ is the BRDF and L represents the radiance traveling in the General reflectance models are anisotropic: they also depend on direction given by the spherical coordinates θ and φ relative to the the azimuth angles that the view and light directions make with surface point. The elevation θ is the angle between a direction and some preferred tangent embedded in the surface and perpendicu- the surface normal, the azimuth φ is the angle of a direction around lar to the normal. In other words, anisotropic reflectance models the normal. The spherical coordinate system is shown in Figure 6. have an orientation about the normal, not just an elevation The subscripts o and i represent the outgoing (view) direction and angle. Examples of anisotropic materials include brushed metal incoming (light source) direction respectively. The notation dσ (the and most woven fabrics. Some materials, such as satin, are solid angle measure) just indicates that all directions on the hemi- extremely anisotropic. Other materials have a highly anisotropic sphere Ω should be weighted equally.

34 january 2001 | game developer ωωˆˆ+ If only point sources are considered, then light can only arrive where the halfway vector hˆ = io. The intensity of the diffuse ωωˆˆ+ from specific directions, and this reduces to the following io reflectance equation for K point light sources: part can be changed with kd, the intensity of the specular high- K light can be influenced with ks, and the size of the highlight can LL()θφ,=ƒ∑ ()()() θφθ , , , φ θ , φ cos θ be adjusted using the parameter N. We can rewrite this equation oo ooik,, ik k ik ,, ik ik , Eq. 1 k =1 to show the relation to the reflectance equation (see Equation 2): ωˆ ωˆ In the following, we will use normalized vectors i and o to rep- resent the incoming and outgoing directions, in addition to θ and φ ωωωωωˆˆ=ƒ ˆˆ⋅ ˆ LLn()o phong ()()oi, k ii()ˆ for elevation and azimuth angles. In addition to the incoming and outgoing ray directions relative N ˆ ⋅ ˆ to the surface, BRDFs often also depend on the position on the sur- knhs () ƒ ()ωωˆ , ˆ =+k face and the wavelength of the incoming light. For the purposes of phong oi d ⋅ωˆ ()nˆ i this article, we will deal only with the incoming and outgoing direc- tions, which reduces the total number of parameters to the four So basically the Phong model is nothing but a specific BRDF, angles. Rather than use the wavelength of light as a parameter, we which is fairly simple to evaluate. It should be noted that the normally will evaluate red, green, and blue components of the parameter kd is very often stored in a “diffuse texture map,” BRDF separately, and combine these values into a final color. and the parameter ks is often stored in a so-called “gloss map.” Reflectance Equation and Better Reflectance Models Phong Model omputer graphics researchers have developed many sophis- quation 1 can be understood more easily if we examine how a C ticated reflectance models that can better represent real sur- E raytracer usually evaluates this equation and how it relates to faces. Most of these models are derived directly from the under- the well-known Phong reflectance model. A raytracer traces rays lying physics of optics and mathematical models of light-surface from the eye point through every pixel of the view plane. Whenever interactions. To discuss even one of them in any detail would ωˆ a ray hits a surface at pointp , the normalized viewing vector o require an article of its own. We will, however, mention a few of ωˆ (pointing fromp to the eye) and the normalized light vector i the more interesting models available, references for which are (pointing fromp to the light source) are computed. The incoming provided at the end of this article. Fortunately, you don’t have ωˆ radiance Lk( i) from the kth light source is computed by dividing to understand the physics to use these models, and the separable the intensity of the light source by the squared distance fromp to decomposition technique we will present in next month’s article ωˆ the light source. The incoming radiance Lk( i ) is then multiplied uses sampled data and can handle all these reflectance models at with the dot product between the surface normal nˆ and the light real-time rates. ωˆ θ vector i , which corresponds to cos( i). The result is then multi- The Torrance-Sparrow model is a variant of a physically based ƒ ωωˆ ˆ plied with the BRDF()oi, , which is the radiance value per- reflection model for isotropic surfaces. It assumes that each sur- ceived by the eye. Rewriting the reflectance equation (Equation 1) face consists of tiny, randomly oriented facets, each of which is a using vectors and only one light source gives this: perfect reflector (see Heidrich and Seidel under References). The He model is based on physical wave optics. This isotropic model LLn()ωωωωωˆˆ=ƒ()(), ˆˆ()ˆ ⋅ ˆ is extremely powerful, as it can describe many surfaces from ooik ii Eq. 2 roughened rubber to polished gold. It is also complicated, difficult How does this correspond to the Phong model used by OpenGL, to implement robustly, and computationally expensive. Ward’s for example? The Phong model consists of diffuse and specular model uses anisotropic Gaussian lobes. Many other reflectance components and can be written like this (simplified): models can be represented to reasonable accuracy by summing multiple Ward lobes. The Poulin-Fournier model assumes micro-  N  LknknhL()ωωˆ =⋅ ()ˆ ˆ +⋅ˆ ˆ  () ωˆ , scopic cylinders cover the surface parallel to one another to model o  d is() k i anisotropic materials. nˆ ω ω ˆ i θ ˆ o i θo FIGURE 5. Reflectance lobe FIGURE 6. Visualization of for a sample reflectance φ the angles and vectors ˆ i function. t φ used: nˆ = normal, o tˆ = tangent, sˆ = secondary. sˆ

www.gdmag.com 35 REAL-TIME REFLECTANCE

Unfortunately, the above models aren’t directly suitable for hard- ware-accelerated real-time applications, as they don’t address the problem of implementation. However, measured data is available FIGURE 7 (above). SOC-250 in situ bidirec- for several materials (see Columbia-Utrecht Reflectance and Tex- tional reflectometer. FIGURE 8 (right). SOC- ture Database, and the Cornell University Program of Computer 200 laboratory bidirectional reflectometer. Graphics’ Measurement Data under References) and can be used instead of analytical models. This reflectance data can be used in light scattered in the hemisphere. It does so utilizing a movable light the approach we’ll discuss in next month’s article, and we’ll give source and sensor, making a measurement for each incident and some examples. A BRDF can also be generated from computer exit angle of light on the surface. This gives a true five-dimensional models of micro-geometry and bump maps (see Westin and oth- (four angles and wavelength) mapping of light scattered by a sur- ers under References). The second approach can be used to ren- face. Figure 7 shows a smaller BRDF system in use at the U.S. der objects with bump maps properly at a distance. Army’s Tank-automotive and Armaments Command (TACOM) for laboratory and field measurement. Figure 8 shows a second, and Acquiring BRDF Data much larger, fully automated system used in the laboratory at the U.S. Navy’s Carderock Division Naval Service Warfare Center urrently, commercial BRDF data is only sparsely available (CDNSWC) to measure larger samples. C and focused mainly on measurements of materials of mili- It is important in the design and use of these instruments that tary significance. Still, a great deal of research has been per- one has knowledge of the type of light being used to illuminate formed on acquiring BRDF data and there are companies today the material. Illumination sources for the measurements include that are building databases, selling instruments, and performing quartz halogen and blackbody sources (for examining BRDF BRDF measurements for commercial applications. characteristics in the infrared) and up to five laser sources to There are three principal means of arriving at BRDF measure- cover specific wavelengths in the visible (for example red, green, ments: two are currently in use, and the third is in the experi- blue). A number of detectors are employed to provide continuous mental stages of development. They are a goniometer, the newer measured data from the visible to the long-wave infrared. imaging bidirectional reflectometer, and an image-based BRDF The information measured by these instruments is a five-dimen- measurement derived from photographs of an object. sional matrix based on incident and exit angles of light from the The principle behind all of these instruments is that a sample surface and the wavelength of the illumination source. Figure 9 of material is illuminated by a known light source and the shows a three-dimensional plot of the BRDF for all exit angles θ φ amount of scattered energy is measured as a function of the ele- and just one incident direction ( i, i) = (50°,0°) of an Army green vation and azimuth angles of the light source, elevation and paint at a wavelength of 0.5µm (green light) as measured by one azimuth angles of the observer/detector, and the wavelength of of these instruments. As you can see, there are quite a few meas- the incident light source. Therefore, the data produced by these urements that must be made in order to accurately characterize instruments is truly five-dimensional. the BRDF of a material. While it sounds simple in theory, the actual practice of build- Imaging bidirectional reflectometers. A second type of instru- ing instruments to measure a calibrated BRDF is quite difficult. ment, the imaging bidirectional reflectometer, has been developed It requires a detailed knowledge of electronics, optics, and scat- to complement goniometers, and provides a more cost-effective tering theory. and convenient means of measuring BRDFs in the field with only Sample preparation is critical for many materials, and is quite a slight loss in accuracy. These new handheld BRDF imaging often overlooked by those making BRDF measurements. For exam- devices allow developers to measure BRDFs in real time at their ple, dirt placed in a pile will have quite different scattering proper- own facilities and without the need for a laboratory. ties from dirt that is thinly spread in the instrument cup. Material One such device is capable of simultaneously measuring both such as velvet can have very different scattering effects if placed in a BRDF and hemispherical directional reflectance (HDR), a meas- tightly stretched position versus loose or crumpled. The moisture ure of the total reflectance as a function of the incident illumina- content of the material is also important. A wet material will scatter tion angle of a surface. Using an imaging technique that takes into light very differently from when it is dry. account the elevation and azimuth angles of the light source, and Measuring the BRDF is as much an art as a science. The sam- an imaging array that essentially requires no moving parts as in ple must be properly prepared and situated in or under the the goniometer, this instrument fully maps the scattering from a BRDF measuring device. It is also critical that the person per- half-hemisphere above the surface with more than 30,000 angu- forming the measurements document the condition of the mate- larly resolved points and update rates to 60 measurements per rial when measured. second. The user just places the instrument against the surface to be measured and presses a button. The light source elevation θ BRDF Measurement Devices angle is variable from i = 0 to 85 degrees, while scattering is measured to nearly 90 degrees off normal. oniometers. The most well-known device for measuring the Each pixel in the “angular image” (hemisphere) formed on the G BRDF is a goniometer. A goniometer performs an accurate array corresponds to a small range of scattering angles relative to BRDF measurement by performing a systematic mapping of the the illuminated spot on the measured surface, as shown in Figure

36 january 2001 | game developer REFERENCES

Kautz, J., and M. McCool, “Interactive Rendering with Arbitrary BRDFs Using Separable Approximations,” 10th Eurographics Rendering FIGURE 9 (left). BRDF of Army green 383 at 0.5µm and 50o elevation Workshop, 1999. pp. 281–292. angle. FIGURE 10 (right). Angle image formed by the handheld HDR Heidrich, W., and H. P. Seidel. “Realistic, Hardware-Accelerated instrument. Shading and Lighting.” Proceedings of SIGGRAPH 1999. pp. 171–178. 10. If the detector response is known for each pixel, the images He, X., and others. “A Comprehensive Physical Model for Light may be interpreted as a quantitative measurement of the distri- Reflection.” Proceedings of SIGGRAPH 1991. pp. 175–186. bution of the reflected light. Alternatively, dividing by the inci- Ward, G. “Measuring and Modeling Anisotropic Reflection.” dent intensity of the illuminating beam, the image can be inter- Proceedings of SIGGRAPH 1992. pp. 265–272. preted as revealing the distribution of reflectance from the sam- Poulin, P., and A. Fournier. “A Model for Anisotropic Reflection.” ple, which is exactly what is needed. Proceedings of SIGGRAPH 1990. pp. 273–282. Image-based BRDF measurement. A third method, image-based Columbia-Utrecht Reflectance and Texture Database BRDF measurement, is a means for measuring the BRDF at visi- www.cs.columbia.edu/CAVE/curet ble wavelengths. Using photographs of an object and known Cornell University Program of Computer Graphics camera position, lighting, and geometry effects, the BRDF of the www.graphics.cornell.edu/online/measurements object’s surface is determined directly from the photographs. In Westin, S., J. Arvo, and K. Torrance. “Predicting Reflectance Functions essence, without specialized apparatus, game developers can use from Complex Surfaces.” Proceedings of SIGGRAPH 1992. the camera’s positioning and knowledge of the conditions sur- pp. 255–264. rounding the taking of the picture to derive some of the parame- Marschner, Stephen Robert. “Inverse Rendering for Computer ters describing the BRDF. Graphics”, Ph.D. diss., Cornell University, 1998. This methodology is currently under investigation (see Marschner under References) and could be very cost-effective, accepting some further loss in accuracy. It holds promise, but as yet no commercial systems exist, and it might require further validation. BRDF Measurements for Game Developers he imaging bidirectional reflectometer is the instrument best T suited for game developers. It is extremely user-friendly and requires little effort to operate. Simply place the aperture on top of the material to be measured, adjust the illumination angle, and push a button. The result is a matrix of 30,000 BRDF data points for that sample. The data is stored in a documented for- mat on the computer that comes with the instrument. It is then very easy to transfer the data to any computer. For those who do not wish to make their own measurements, there are companies developing commercial BRDF databases composed of many materials relevant for today’s games. Devel- opers can also hire one of these companies to develop custom BRDF databases for their specific applications. Some public BRDF measurements can also be found online, such as Cornell University’s and the Columbia-Utrecht Reflectance and Texture Database mentioned previously. Coming Next Month n this article, we have presented the necessary background for I the separable decomposition technique, which we will explain in detail in part two next month. This technique allows you to render realistic surfaces with arbitrary reflectance models. The reflectance models used can be either analytical or measured with one of the presented devices. q

www.gdmag.com 37 FEATURE ARTICLE

38 january 2001 | game developer DECISION MAKING chip burwell

CallingCalling thethe ShotsShots DecisionDecision MakingMaking forfor GamesGames

Here’s our game, DEPRAVED INTERN’S REVENGE, ready for Let’s get a license — Great! Now just add publication. here’s a list of what is 10 more levels and available. Just pick multiplayer. something.

38 january 2001 | game developer ou’ve heard it before: the story about some ple of categories that are particularly relevant to game compa- important decision that went terribly wrong. If nies. The first division will be the number of people who make you’re lucky, it just leads to angst and hours of the decision: either one person makes the decision, or a group extra work. If you aren’t so lucky, it leads to your makes the decision. The second division is the basis for making project being killed. the decision. The two categories of this second division are Sometime after the crisis is over, a meeting is held “political reasons” and “merit-based reasons.” Combining these in which everyone reflects on what went wrong. Usually two categories, we can create a two-by-two matrix, as seen in this amounts to passing the buck and looking to avoid Figure 1. blame. The meeting ends with comments about “learning from Sometimes a process might pop up that doesn’t fit these divi- our mistakes” and “we’ll know better next time.” Rarely does sions very well (you might just flip a coin, for example), and such a meeting get to the real root of the problem, though. other times there might be some blending of these processes, but What needs to happen in a case like this is for the group to for our purposes these categories will suffice. One exception is take a long, hard look at how the problem-causing decision was worth noting, however: the case where no decision making made. You need to talk about the process of decision making and process exists. People just put whatever they want into the game, figure out how to change the processes that led to that decision. no one decides what is good or bad, and when the schedule says For this article, I’ll divide decision making processes into a cou- the game is done, they ship it.

CHIP BURWELL | Chip is the owner of Gratuitous Games Inc., a small development studio currently working on a race game for PS2, Xbox, and Gamecube. Chip started in the industry as a sound guy but after a stint working on Project Reality at SGI, he moved into game programming. Recently, Chip has been studying drawing to develop his understanding of art. Learn more about Gratuitous Games at www.gratuitousgames.com, or contact Chip at [email protected].

Revenge isn’t skewing so hot this year.How about something more kid friendly?

ILLUSTRATIONS BY R.D.T. BYRD www.gdmag.com 39 DECISION MAKING

Have you guys had a chance to work on my “4-player, Keep in mind environment unmotivating. At a mini- that these divisions second-person perspective, first- mum, this leads to people not having a are hardly the only personal involvement with the project. categories you can person shooter” idea yet? Worse, it can lead to creative people use to identify deci- leaving and finding jobs elsewhere. But sion making processes. if you have someone who is extremely There is extensive literature on this topic talented and has excellent judgment, it (see For More Information for some would be a shame not to use them as good references), and a number of differ- your decision maker. ent theories. To discuss all the theories of Despite these shortcomings, there decision making would be beyond the are lots of times when having a single scope of this article, nor is this article decision maker is a real benefit. In a meant to be a synopsis of these theories. crisis situation, having a strong leader It should be a starting point for conversa- who makes clear decisions and gives tions among game developers about how straightforward instructions can be they work together. invaluable. Single-Person Group Decision Decision Making Making n cases where the “big cheese” efore discussing group decision Idecides, there is one person who has B making, I should warn you that I been designated the decision maker. used to believe that group decision Everyone knows who this is, and what- making was always a bad idea. My ever this person decides, that’s the way first job in the game business was as a it is. This method has a couple of distinct worse. In the end, much to the team’s sound and music guy. Because there was advantages. First, it’s relatively easy to get relief, the project was canceled. The lesson no “music director,” the decision about a decision made, and the group knows here is that, under the big cheese method, what music would stay in the game and whom to look to for its decisions. Because you live and die by your cheese. what would get cut was based on com- just one person is making all the decisions, There is another aspect of the big cheese ments from the project lead, the CEO, the there is a uniformity to the end results. method that is often overlooked, which is art director, the marketing department, Also, decisions can be made very quickly, the impact this method has on the people and various others. I found that any song since no meetings need to be called. who work under the big cheese. First, that might bother anyone was likely to But the biggest strength of the big cheese because decisions are always being made get cut. The songs that were chosen to process is also its biggest weakness. That for them, the people working under the big stay in the game were often the least is, the judgment of the big cheese. If the cheese don’t get experience making deci- inspired and most banal. right person is the big cheese, then this sions. That’s too bad, because there is After a while, I stopped writing music method can go well. But if the wrong per- something to be said for learning from and got more involved with game pro- son is the big cheese, it can be a disaster. your own mistakes. If your company is gramming. Working in small groups with On one game design I worked on, we trying to develop the talents of its staff, other programmers, I found that we could had a producer who was regarded as one this will be a big shortcoming. make good decisions together. Typically of the best in the industry. The producer’s Second, when all decisions are made the group suggested several different idea involved looking down on gameplay for them, creative people will find the ideas, debated their relative merits, and in a 3D environment. When we finally chose the best idea from first got a demo of the gameplay the group. DECISION MAKING STYLE MATRIX up and running, virtually every- Once I experienced this, I be- one on the team found it wasn’t Single decision maker using Group decision making using gan wondering why some groups much fun. The main issue was politically based decision politically based decision make good decisions and others that viewing the game from a processes processes don’t. At first I thought it was top-down angle, it was extreme- because programming decisions ly hard to tell what height your Single decision maker using Group decision making using tend to be objective, while others, character was at. But the pro- merit-based decision merit-based decision such as music decisions, are sub- ducer was unable to let go of his processes processes jective. But some programming original idea, and even encour- decisions are subjective, and I aged us to increase the height of FIGURE 1. A matrix of decision making processes relevant to game had seen programmer groups the game world, making things development. handle these decisions well, too.

40 january 2001 | game developer Here’s the 14th version of the background music. Like you asked, As time went on I became more I’ve cut out the bass, the guitar,and group? Your answer involved in managing and leading a probably depends team. More decisions were being the harmonica. on which subgroup placed on my shoulders, and I became you belong to. increasingly concerned with how our Alternatively, we company was making decisions. I Could you could restructure the way began reading about how organ- that different subgroups work together, izations function, and trying to relate jazz it up trying to find a way to create a true what I read to my experience. The key team. The first objective would be to element that kept showing up in both a little? trim the size of the group down to a my reading and my experience was the manageable team size. One person from nature of the group itself. Time and each subgroup could be designated to again this seemed to be the determin- represent that subgroup. These repre- ing factor in how successful a group sentatives would then have to meet, set was at making good decisions. goals, communicate, and work together over the life of the project. Is It a Group or Is It This is easier said then done, of a Team? course. Such a structure would be a radical departure from the way these ow is a good time to introduce subgroups currently interact, and N the distinction between a group would require that each representative and a team. A team is essentially a bring a high level of competence to the group with some special qualities. team. However, this isn’t impossible, These include: and “cross-functional teams” are rela- • Having good communications and tively common in other industries from sharing information on a constant group of people that decided what music aerospace to waste management. basis was going to stay in the game was definite- But the group’s ability to function as a • Having respect for each other’s abili- ly not a team. On the other hand, a small team will have a tremendous impact on ties and opinions group of programmers working together how successful the group is at making • Not allowing conflict to become per- often will qualify as a team. decisions. If the group becomes a team, sonal Recently I was involved in trying to get its members are likely to relate to each • Having a common goal for which a game to final. To do this, we needed the other in a cooperative way, trying to sort members share responsibility approval of the publisher’s testers, the through the challenges together, while • Being small enough in size (usually marketing department, the platform man- groups that are not teams are focused about 10 to 12 people) to interact ufacturer’s focus group, the team that cre- largely on watching their own backs. successfully ated the original arcade game, and a When properly implemented, team/ Keeping these qualities in mind, you might handful of other people. This is the classic group decision making can have several realize that a lot of groups described as case of a group not being a team. The big benefits. A team can combine its ex- “teams” are not in fact what we should group didn’t share a clear vision of what perience and judgment in a constructive consider a team. This distinction between the goals of the game were, there was way that offers significantly more experi- a group and a team can’t be overempha- poor communication with very little infor- ence and insight than a single big cheese. sized when it comes to decision making mation being shared, and there was little Also, when teams work together in a con- processes. respect between the groups for the opin- structive way, they can motivate each As you look at the traits of a team as I ions of others. Not surprisingly, a number other, delivering a product that far ex- just described, think about the impact of very poor decisions were made as each ceeds their individual capabilities. that each trait has on decision making. subgroup tried to use its influence to dic- Notice also that these traits are related in tate the final product. One of the main Political Decision a lot of ways. If you have the first two reasons that so many games fall apart Making traits, good communications and respect near the end of development is that deci- for one another, chances are high that sion making at this critical juncture is ost people are pretty familiar with you also have the other three traits. But if turned over to a group that is not a team. Mthis method in its most basic form you don’t have the first two traits, it’s How can we as an industry try to — we decide to do something because pretty unlikely that you have the other resolve this problem? In the above case someone whom we need to keep happy three. there are two possible scenarios. The first has suggested that it be done. The deci- Back up and look at the examples I have is to pick one subgroup and give them sion was made not because the suggestion cited so far. When I was an audio guy, the full decision making authority. But which was a good one (it might have been either

www.gdmag.com 41 DECISION MAKING

How do you feel good or bad), but simply because of about changing game The processes you use to make who suggested it. engines? decisions can often change over the Political decision making is much course of a project. At the beginning broader than and has lots of variations of a project, when you want to encour- on the situation I just described. Who age experimentation and give people hasn’t sat in a meeting that dragged on the opportunity to be creative, you and on until everyone agreed to a spe- might allow the group to make deci- cific decision, just so the meeting sions. But as the project approaches would end? (This is sometimes referred completion and you want consistency to as the “he who has the biggest blad- in design, it might be a lot better to der gets his way” strategy.) Similar is have only one person making decisions. the tactic of simply repeating your Likewise, the type of decision can solution over and over until you wear affect what process you should pick. down all the opposition. In a strict For a group to make good merit-based sense, it might be unfair to deem these decisions you need a set of rules or political decisions, but the key here is standards by which to judge the choic- that the decision is made because you es. Unfortunately there isn’t a universal are trying to appease someone (even if set of rules that will tell you what deci- you only want to appease that person sion making process to use. You’ll enough so that they will let you out of need to consider the advantages and the meeting). Sure! disadvantages of the different process- Fine! es, the specifics of your situation, and Merit-Based Decision what your goals are. If you want to Making Brilliant! use merit-based decision making, a set of rules or standards that you can use erit-based decision making involves and art creation. From my experience, a to evaluate the choices with is an absolute M weighing the possible solutions and team of programmers can come up with a necessity. If a group is making the deci- picking the best one of the group, based list of standards without much difficulty. sion, will the group agree to use those on which solution is best for the game. In But artists have a significantly harder rules, or is it more likely that politics this method, different people suggest dif- time creating a set of standards that will overrule? ferent solutions and their ideas compete to defines what “good art” is. This explains be the victor. why we often see programming teams Avoiding Political How you judge the merit of a solution making group decisions, but the art deci- Decision Making is extremely important, as the quality of sions are usually made by one person, the your decision will hinge on this. If you art director. That’s not to say that an art he curious aspect of political decision judge the merits of the solutions by who team couldn’t make group decisions based T making is that most people feel it is a proposed them, then you’re really making on a set of standards, but the more sub- poor way to make decisions in a creative politically based decisions. For merit- jective a decision is, the more difficult it environment. Yet it is surprisingly com- based decision making to be effective, you is to make group decisions. mon. Why is that? need to have a good, unbiased method of Chefs have an expression, “A fish rots evaluating the strengths and weaknesses Picking a Decision back from its head.” This is true for of competing solutions. There must be a Making Method organizations, too. If upper management set of rules or standards to rate the possi- is political, this will filter down to the ble choices. Whether a group or an indi- ow that we’ve identified the basic rank and file. But if upper management vidual is making the decision, these stan- N divisions of decision making process- encourages and uses merit-based decision dards should be clearly defined. es, let’s look closer at deciding which making, then the employees will follow How you define these standards is not method to use and then how to avoid or this example. I really don’t think this the issue, so long as everyone shares the promote particular methods. Which point can be emphasized too heavily: same standards. In all the successful method will work best will depend prima- management must set the tone by exam- teams I’ve worked on, we’ve never writ- rily on three factors: where you are in the ple. But that isn’t all that needs to happen. ten the standards down. We had good creative process, what type of decision you From a practical point of view, manage- communications as a team, and we regu- need to make (how subjective versus how ment must relinquish control of some deci- larly discussed the standards so that objective the decision is), and the people in sions in order to avoid political decisions. everyone understood them. the group (do you have a true team or just This is often a tough thing for management. Consider for a minute the two main a group, and is there anyone who is good At one company I worked for, the art direc- tasks of creating a game, programming “big cheese” material?). tor was in charge of the art, but the CEO

42 january 2001 | game developer would always come in near the end of the project and make lots of “suggestions.” COMMON TRAPS OF GROUP DECISION MAKING Knowing the danger of not accepting these “suggestions,” the art director always saw hen groups attempt to reach decisions to tell anyone until the game is almost at final. to it that they were implemented. In order W regarding game development, there But late changes can have disastrous conse- to avoid politics, the CEO is going to have are some pretty common traps that they can quences. Rather than being designed into the to relinquish control. fall into. Here are just some of them: game in a coherent way, they are slapped on But it’s not just the CEO. Consider again piggyback-style. This often introduces new • Expecting everyone to reach a consensus. my previous examples. In a typical game bugs and problems, causing final not to be Whenever a group decides that they will make development environment, the development reached. a decision by consensus, and their anticipation team is given suggestions or requests for is that a consensus means everyone, they • Letting it get personal. Members of a changes from the marketing department, expose themselves to one person holding out strong, effective team never let their differ- the publisher, the license holder, the test until they get their way. To prevent this, the ences become personal. If someone attacks department, and the children of the vice group should be prepared to make a decision your idea, remember that it is your idea that president of accounting. If management without every last person agreeing. A simple they’re attacking, not you. When developing doesn’t keep these groups at bay, decisions majority can often be enough. creative content, the risk of criticism being will almost undoubtedly become political. mistaken as personally directed is very high, In cases like this, it is crucial that manage- • The solution that offends the least. When so always be alert to the response your com- ment become proactive in setting up the game developers start bad-mouthing “decision ments can generate. decision making process. by committee,” this is what they usually object Other factors can contribute to politi- to. The best solution is often passed over • No uniformity to the end result. Whenever cal decision making, too. When agreeing because someone finds it objectionable. (This you are making group decisions or working as to a political decision you avoid taking happens more often in the case of art and a team developing content, be particularly alert on responsibility. On one game I worked design decisions than programming deci- to the potential that your end result will lack on, I really did not want to implement a sions.) The result is a decision that doesn’t uniformity. The clearer your guidelines are, the feature that had been suggested. But an offend, but also doesn’t make for a very excit- less likely it is that this will be a problem. assistant producer dragged me into an ing game. office and wouldn’t let me leave until I agreed to do the implementation — not • Too many cooks spoil the because he liked the feature, but because broth. All too often, game I wonder if it was low-risk to him. If the feature was- development suffers from too n’t well received he could shrug and point many people trying to control it’s time for me to take his finger at the person who suggested the the design of a game. Within control of the team? solution in the first place. the company, the development Another common reason to opt for the team, the marketing team, the political decision process is that it is often testers, and the executives all the easiest path. If you don’t agree to the feel it is their domain to “fix” politically correct solution you might trigger whatever they don’t like. a bloody conflict, or worse, you might not Meanwhile, from outside the get out of that meeting with your bladder company we often see the intact! Avoiding political decisions is seldom publisher and any license the easy road. In most cases, it’s up to man- holders also wanting to make agement to create an environment that does changes. The changes not encourage political decision making. requested can be good, but Management can help discourage this often the suggestions conflict practice in a number of ways. First, give with other aspects of the decision making authority to a specific per- game or are not thoroughly son or group. If it is a group, they should thought out. exhibit the signs of a team that I discussed earlier. Second, don’t allow other groups or • Last-minute changes. This individuals to interfere with the decision. trap usually goes hand in hand They should be allowed to make sugges- with “too many cooks spoil the tions, but only if they are prepared to have broth.” Whenever a large num- their suggestions discarded. Third, hold the ber of people or groups want to decision makers responsible for the end make changes, they often wait results. Equally important is for managers

www.gdmag.com 43 DECISION MAKING

to understand that when the time comes the project draws to an end, the leader to evaluate the employees, the evalua- then begins to assert more control, tions must reflect end results, not and makes more decisions. This sce- whether or not the employee agreed nario requires a leader who is capable with the manager. And finally, man- of working effectively in both styles, agement must ensure that people who first allowing others to make deci- are not the decision makers relinquish sions, and then subsequently taking control to those who are. control. It also requires that the team But what can you do if you aren’t in have enough respect for this leader to management? This depends a lot on relinquish their decision making role the organization. Unfortunately, if the as the project comes to the end. On organization is full of politics, the the other hand, if the leader doesn’t effect you can have is probably very trust the team’s decisions and is think- limited. On a small scale, talking to ing, “Oh, don’t worry about that, I’ll others in your immediate just change that later,” you’re proba- group about this issue bly headed for a full-scale disaster. can help. You might not That’s be able to change the the art Last Words organization, but you might be able to affect director. opefully in this article I’ve been your immediate situation. H able to shine some light on the processes that we use to make decisions. Encouraging Merit- But just raising awareness of these issues Based Decision is not my objective. This article is meant Making to be a starting point for people in game can also implement and benefit from any of development, a set of basic ways to look at arlier, I made a distinction between a these suggestions. what is going on in their organization, E team and a group. Nowhere does this which can then be a basis for establishing distinction become more important than Mixing Styles better decision making processes with better when you are trying to encourage group results. I would encourage you to think merit-based decision making. If the group is eep in mind that you don’t need to through some of the consequences and a team, it is usually not too difficult to K use only one style of decision making implications of these issues. From my expe- implement merit-based decisions. But if the in all situations. For instance, when the riences and from the comments of others I group is not a team, you will find it very project starts you could focus on con- know in the game business, we desperately difficult to get this process to work. structing teams, not groups, and having need to look at how we make decisions, and You can encourage successful merit-based the teams make merit-based decisions. As how the outcomes of these decisions affect decision making by observing a few guide- our companies, our clients, our products, q lines. First, create a set of rules or standards FOR MORE INFORMATION and our customers. that can be used to evaluate the choices. Consider writing them down and putting them in the technical design document. BOOKS Eisenhardt, Kathleen M., Jean L. Kahwajy, Also, in order to evaluate choices fairly, you Katzenbach, Jon R., and Douglas K. Smith. and L. J. Bourgeois III. “Conflict and Stra- need lots of accurate information to base The Wisdom of Teams. New York: tegic Choice: How Top Management Teams decisions on. Make sure your environment HarperBusiness, 1993. Disagree.” California Management encourages people to exchange and share Lencioni, Patrick. Obsessions of an Extra- Review Vol. 39 No. 2 (Winter 1997): p. 42. information. This will help keep decisions merit-based rather than political. Third, be ordinary Executive. San Francisco: Katzenbach, Jon R. “The Myth of the Top sure to allow everyone the chance to bring Jossey-Bass, 2000. Management Team.” Harvard Business their ideas to the table. In meetings, make ARTICLES Review Vol. 75, No. 6 (November–Dec- sure that one or two people don’t monopo- ember 1997): p. 82. lize the meeting. Finally, be willing to let go Eisenhardt, Kathleen M., Jean L. Kahwajy, of your idea when another idea rates better and L.J. Bourgeois III. “How Management Morely, Eileen, and Andrew Silver. ”A Film under the evaluation standards, and never Teams Can Have a Good Fight.” Harvard Director's Approach to Managing Creativi- allow any discussion to become personal. Business Review Vol. 75 No. 4 ty.“ Harvard Business Review Vol. 55 No. 2 Although these rules are meant for group (July–August 1997): p. 77. (March–April 1977): p. 59. decision making, a single decision maker

44 january 2001 | game developer www.gdmag.com 45 POSTMORTEM brian pelletier, michael gummelt & james monroe

Raven Software’s STAR TREK: VOYAGER — ELITE FORCE

n the summer of 1998, Activision had acquired licensing rights to make games using a number of Star Trek franchises. Their goals from the beginning were to create a broad selection of games and show the gaming community that Activi- sion could take the Star Trek brand and make high-quality games with it, better than other publishers had in the past. The preliminary game slate was set with a Ifirst-person shooter as one of the initial titles. Raven Software had been an external studio of Activision for a year, finishing up work on HERETIC 2 and diving deep into the development of SOLDIER OF FORTUNE. HERETIC 2 was near completion, and we would soon need another project to work on. With our experience developing shooters and a reputation for making quality games, Activision handed the Star Trek first-person shooter project to us. The game started out being based on an unknown Star Trek crew within the Next Generation franchise. For two months work was done on the plot and story line, with a test level of a Defiant-class ship made using the QUAKE 2 engine. The main factor in designing the plot of the game was that it had to be an action game, despite the fact that Star Trek isn’t known for action. To give meaning to the action, the idea for a Special Forces team soon emerged to drive the action for the game. Ultimately, because Activision already had two other games using the Next Generation license, the setting for our game changed to the Voyager franchise. Our excitement level was low at first, with the team feeling that Voyager was the least popular of all the Star Trek franchises. GAME DATA We soon realized that Voyager’s plot allowed us not only to make our game with much NUMBER OF FULL-TIME DEVELOPERS: 20 more creative freedom, but also to create from something no one else had used. This NUMBER OF CONTRACTORS: 13, including two inspired us to open the floodgates, continue on, and eventually realize that Voyager prerendered animation studios, additional was the best setting for what we wanted to do. We quickly adapted the plot we had at musician, voice director, casting director, and that point into the Voyager setting. This was much easier than we thought it would be, eight main Voyager actors and the Elite Force, or the Hazard Team as we called them, actually seemed to make LENGTH OF DEVELOPMENT: six months of pre- more sense as a by-product of Voyager’s situation. In January 1999, full production on production, 18 months of production ELITE FORCE began with a small team of 15 people that would grow to about 25 core PROJECT SIZE: Single-player and Holomatch: team members, with additional support from the SOLDIER OF FORTUNE team. 919,749 lines of code; 1,679 files. The single- Our main focus during production was not to think about the game as a Star Trek player game was largely controlled by scripting, product per se, but rather an action shooter that borrowed from the Star Trek uni- totaling 112,056 lines of code and 2,236 files. verse. This helped us focus more on what would be fun for players. To our surprise, RELEASE DATE: September 20, 2000 the Paramount approval process was much easier than we anticipated. We had heard INTENDED PLATFORMS: Windows many horror stories regarding Paramount’s strictness with their licenses, things like, 95/98/NT/2000, Macintosh, Linux, Playstation 2 “You can’t do anything new,” and, “It’s hard to get things approved because they’re so PROJECT BUDGET: Multi-million-dollar budget protective of the license.” What we experienced was the exact opposite. Paramount CRITICAL DEVELOPMENT HARDWARE: Average was more than accommodating in helping us create a fun game, and we were able to system: Dell Pentium II 550 with 128MB RAM, bend the rules a little along the way to help accomplish our goal. We created new Star- 18GB hard drive, GeForce 3D acceleration card, fleet weapons, a Voyager SWAT team, used the Klingons, and even added “classic” Star and 21-inch monitor. Trek to the Voyager setting. As long as an element made sense to the story and its pres- CRITICAL DEVELOPMENT SOFTWARE: Microsoft ence could be explained, it was no problem. Visual C++ 6.0, Microsoft Visual SourceSafe One of the biggest obstacles we had to overcome was that we would be making an 6.0, Borland JBuilder 3.5, 3D Studio Max 2, action game that had to appeal to both the hardcore FPS player as well as the average Softimage 3D, Photoshop. Star Trek gamer and fan. This was no easy task, and we spent a lot of time debating NOTABLE TECHNOLOGIES: Licensed the QUAKE over the game style being too much of an action game or more of a Star Trek game. 3: ARENA engine from (using Balancing these two aims was a constant battle during the course of production. We OpenGL); Icarus scripting system, BehaveEd knew we had to walk a fine line blending a shooter and a Star Trek experience if we scripting tool, Carcass skeletal system, Bink, were going to both make a successful game and overcome people’s perceptions that and motion-capture data from House of Moves. Star Trek games are not good games.

46 january 2001 | game developer What Went Right expanded animation system for all the dif- In the end, we actually surpassed our initial ferent animations our cinematics would ambitions as far as new systems and fea- Improvements to the QUAKE 3 require, we needed to create a load and save tures were concerned. 1.engine. Raven had worked with id routine from scratch, and the list went on. For example, our Icarus scripting system Software’s engines since 1992, but this was One of the things that made this possible was planned from the beginning and ended the first time we had to add a single-player was the decision early on to separate the up working out very well. The initial setup game to an id engine. Normally, we had the multiplayer and single-player executables. was finished relatively quickly and the re- luxury of starting with a full single-player At this time, QUAKE 3 was still about eight mainder of the work was mostly just tying code base and just adding things such as months from completion, so we started on the commands to the game and AI. How- breakable brushes, new AI, navigation sys- single-player and would worry about multi- ever, for the first seven or eight months, tems, and so on. But this time we had licen- player when we got the final code base. We only a couple of programmers were doing sed a multiplayer game and had to put in were able to make drastic changes to the any scripting, as they were still refining the many systems we took for granted. We single-player game and shortcut the net- commands and there was no GUI for it yet. needed AI and navigation appropriate for working, allowing us to get away with a lot It wasn’t until the fall of 1999 that we single-player enemies (not multiplayer bots), of things that would have just done very made a GUI and the designers could finally as well as teammate non-player characters bad things to networking. With this new start scripting. The system ended up con- (NPCs) and cinematics. We needed an freedom, we revamped even more systems. tributing a huge amount to the detail,

BRIAN PELLETIER | Brian has worked at Raven Software for over eight years and was the project leader for STAR TREK: VOYAGER — ELITE FORCE. Besides the two founders, he has worked for Raven longer than any of its 50 employees and has taken on many roles there, from artist to lead artist and managing the art department. His game credits include ten of Raven’s games, and he was project leader for HERETIC 2. Contact him at [email protected]. MICHAEL CHANG GUMMELT | Mike is a writer/game programmer at Raven Software. He has worked on various elements of game pro- gramming such as AI, navigation, effects, animation, world interactivity, weapons, multiplayer modes, and scripting on HEXEN 2, HEXEN 2: THE PORTAL OF PRAEVUS, SIEGE, HERETIC 2, and STAR TREK: VOYAGER — ELITE FORCE (for which he also wrote the dialogue script). Contact him at [email protected]. JAMES MONROE | James was the lead programmer for STAR TREK: VOYAGER — ELITE FORCE. Starting his career at , he soon moved on to Rogue Entertainment as lead programmer on STRIFE, an action/RPG using the . His Raven credits include pro- grammer on MAGESLAYER and project leader for the HEXEN 2 mission pack, PORTAL OF PRAEVUS. He can be contacted at [email protected].

www.gdmag.com 47 Extensive photographic reference was used to get as close to the exact likeness as possible for Voyager’s interior. Here, the photo reference of the bridge of Voyager is on the left and the game screenshot is on the right.

uniqueness, and complexity of the game, up that value to choose the speaking frame. all, our game was going to be compared to and without it ELITE FORCE would have This setup required no extra effort when the Voyager TV show, so there was even been a totally different game. adding sounds, and would work automati- more emphasis on storytelling. The story Another big technology decision we had cally for any foreign languages used. had to be engaging and reminiscent of to make was with Carcass, our new skele- Another system we revamped was the what a Voyager episode would be, and we tal model format. It was a huge undertak- cinematic system, which had to be power- had to make sure our story had a lot of ing to switch over to the new format, but it ful and flexible enough to give our cine- depth and interest for the player, to give really saved us in the end. At first we were matics that Star Trek “feel.” The camera them the feeling that they were partaking using the same model format as QUAKE 3, system itself wasn’t that hard to imple- in an episode of the show. Since one of but it quickly became apparent that we ment, and it worked out well. First, the our main goals was to have an away-team were surpassing that format’s capabilities, scripter/designer would set up the blocking accompany the player for the missions, it so we looked for a solution. id had already of the NPCs through Icarus. Then they was even more important that the story be laid the groundwork for a skeletal model, could go into the game and let the scripted solidified up front. A lot of story is con- which seemed like it would work for us. event play out, pausing it whenever they veyed during the missions, so we had to Starting with that basis, we completed it wanted to save a camera position to a file make sure the levels were paced out well and developed it into the final format we that could be imported into the map. Using and the level designers knew up front called Carcass. With it, we reduced tenfold Icarus commands, they could make the what story content their levels contained. the amount of memory a single model took camera zoom in and out, change the field We were able to pace the story through- up. Without the Carcass format, we would of view to simulate close-ups and wide out the game so that players would be have had to cut back many animations, shots, move along a track, dynamically fol- continually rewarded with exposition. As and we would have lost the complex detail low a subject, fade in and out, shake, and they completed more missions, the over- in our cinematics. so on. This allowed us to set up our arching plot of the game would slowly Another technology that was successful amount of cinematics as quickly as possible form in their minds. was our lip-synch system, which really and still allow for some fine-tuning and With our tight schedule, we wouldn’t added realism to the facial animations. We detail (such as the “walk and talk” with have time to redo parts of the game if did some research, looking into phoneme Tuvok and Munro, and especially all the they didn’t work out, so it was crucial for recognition, but finally settled on a quick gestures and expressions the NPCs them- all the people involved to work together volume analysis. We planned this system to selves would do to add to their characteri- on the story line toward one common make it very easy to use. Once the mouth zation and the believability of a scene). goal. With a complete walkthrough of the animation art was made for each character, levels written, the level designers could the system used the appropriate frame Complete plot and story right concentrate on the looks of the level and without intervention. The code automati- 2.from the start. From the begin- accommodate for where the cinematics cally scanned for peak volume of sounds ning of production, ELITE FORCE had a and story segments were going to take when loaded, and compared against that detailed story line, and every level of the place. Because our story line never whenever a sound was played on the voice game was written out in story form. We changed during production, we were able channel. Then the animation system picked also had standards we had to meet; after to proceed forward uninterrupted, and

www.gdmag.com 49 POSTMORTEM

ABOVE. Storyboards were created as guides for the in-game cinematics, helping to speed up production of more than 50 cinematic sequences. never had to scrap any levels due to plot to bring the expensive Voyager cast back to deliver the line too quickly or slowly to restructure. This was key, as we had a fair- for pickup lines. match any hard-coded timing. ly small team charged with creating a lot The script finally came together after We also had a system for automatically of content in a short period of time. The many revisions and, once it was approved reading the dialogue script itself and turning majority of the dialogue was written after by Paramount, the actors were lined up it into .PRE files that would let the game all the levels were finished, but this too very quickly and the voice recording was precache all the dialogue for a level and went smoothly because the walkthroughs done in about a month. We were then able simultaneously assign the caption text to it. were updated from the finalized levels, and to put the final lines into each scene, replac- Included in this was automatic localization then the dialogue was written from them. ing our temporary dialogue without having and dialogue adjustment for the player’s to adjust the timing or change the scripts. gender. All of these things together enabled The dialogue. The team was This was due to the fact that Icarus could our game to have captioning, localization, 3.excited about the concept of play- pause execution of a script until a sound file gender-specific dialogue, precaching, lip- ing with a team of NPCs in an FPS. This led finished playing, so dropping in a new line synching, and almost no pickups. to the definition of the different characters of dialogue automatically adjust- In the end, the dialogue turned out very of the Hazard Team early on. However, the ed the timing of each scene. This well and our performances were good actual script for the game didn’t begin right also meant that lines would gen- (Paramount even let us away, since that had to wait for the final erally flow better in translation, make final casting game flow design to be finished. Our writer since they wouldn’t have (also one of our programmers) started in September 1999 and finished the first draft in March 2000. While he was writing the script, we were making all the cinematics and needed some temporary voices. We had employees record the lines and then dropped them into the cinematics to give us a feel for the pacing of each scene. This allowed us to tweak the dia- logue while sav- ing us from having

RIGHT. Voyager's Hazard Team, created by Raven to help accentuate the action for the game.

50 january 2001 | game developer ABOVE. Storyboards also referenced the game’s dialogue script, which was more than 400 pages long — twice the length of a movie script. decisions on all the ELITE FORCE–specific starters, the QUAKE 3 level editor is made to The artists spent much time working on characters). The story and dialogue added create levels at a fairly big scale. When we the textures for the environments, getting a great deal to the game and contributed built the bridge of Voyager, we were all their reference from many sources to heavily to the feeling of actually being in astounded by the detail that we achieved, make sure everything was exact. Having an episode of Star Trek. but when we put a normal-sized character access to Paramount’s Star Trek reference on the bridge, he was incredibly tiny. The library was key in getting reference for Re-creating the look of the bridge was huge, yet it was built like you carpets, chairs, upholstery, computer pan- 4.Star Trek universe. Raven has would build any normal QUAKE 3 level. We els, and more. We sometimes scanned in always tried to push graphics boundaries realized that we had to build the levels on a the photo references themselves for the and painstakingly create beautiful settings much smaller scale than what we were used textures. Watching episodes of the show for our game worlds. Star Trek was no to. It took seven attempts at rebuilding Voy- on tape was also instrumental in deter- exception, and challenged us not only to ager’s bridge until we attained the proper mining what things looked like. We used a create a beautiful gaming environment but proportions between the characters and the total of 1,033 textures to create the look also to create it in a likeness that is known level. We tweaked the scale until it looked of Voyager’s rooms and hallways. Working worldwide. It’s one thing to make arbitrary- perfect and the player and other characters together, the level designers and artists looking levels in a never-before-seen world, could move around with ease. Once the created the best-looking Star Trek envi- but when trying to re-create the look of scale of the levels was set as a standard, we ronments in any game to date. Voyager we came across many difficulties continued forward with the other Voyager Just like the challenges we faced build- that we hadn’t expected. For rooms with little rework needed. ing the environments, creating Voyager’s

ABOVE. Menu screen for choosing your player character in Holomatch gameplay.

51 POSTMORTEM

ABOVE. Fighting aliens in the stasis ship, which was created with 90 percent curved surfaces. TOP RIGHT. Save your teammate from the Borg, one of the many multiple outcome events. BOTTOM RIGHT. Your teammates fighting alongside you, with Telsia blasting Etherians. characters and crew presented the challenge in a real place. We also had to create an other company has ever tried to make an of re-creating something that already exist- away-team to fight alongside the player. FPS game with up to five teammates work- ed. We used many references from the Star After all, what is Star Trek without an ing alongside you throughout entire levels. Trek reference library to help us re-create away-team? In the final stages of developing the team- these real people. Each actor had a series We created our NPCs using a few differ- mates, we weren’t sure if they were going of photos of him or her as their character, ent things. The Icarus scripting system to work out; they had so many problems, which we used to help get just the right allowed us to have precise control over spe- and every time we would fix something shape of the head, and we even used the cific actions. The NPC Stats system allowed another problem would crop up. photos themselves (with Photoshop touch- us to create many characters with various Just getting them to follow you was no ups) as textures on the polygon heads to looks. The Squadmate system gave us the easy task and was something we kept achieve the likenesses. There are limitations tools to enable the teammates to work with tweaking right up to the final days. Sure, to any technology, and working around the the player, and we used a waypoint or we could get them to follow the player, but limitations is where we succeeded. The pathfinding system to make our NPCs nav- the game took place in tight hallways and heads could only have 150 polygonal faces igate through a complex environment. All small rooms so players would bump into and the textures for the skins could only be of these systems together created the artifi- them. They wouldn’t get out of the way 512512 pixels. The fine craftsmanship cial intelligence for our NPCs. We used and would constantly get stuck on each required to work with so little and still scripting with the pathfinding to make the other. Also, having them follow the player achieve the right look for the characters is crew of Voyager come to life, and we could everywhere made them seem less like intel- a testament to our artists’ skills. For exam- tell them exactly where to go and what to ligent characters, so sometimes we had ple, designing the Hazard Suit in the Voy- do without too many unknowns to cause them stand their ground or take up a posi- ager style took many attempts, but we problems. They did exactly what we as tion while the player went exploring. Then finally got something everyone was happy designers wanted them to do. we had the constant problem of the team with and looked natural to Star Trek. The teammates, on the other hand, have not following players at all, even though to act according to what is happening with they might need them later on. When we Creating smart NPCs. To create the player. Since players can do anything did get it working, someone found a new 5.a Voyager game that resembles they want while playing the game, this way to break a level with a teammate. what you would see in a TV episode, we means a lot of unknowns for how the Elevators and teleporters added to the had to create a working spaceship filled teammates should react. The teammates risk of teammates being left behind. We with its busy crew, and make it believable could have easily been a hindrance to the were getting worried that we wouldn’t enough so players would feel like they are gameplay, and now we know why no even be able to get them to walk through

52 january 2001 | game developer POSTMORTEM

TOP LEFT. The AI of the Borg had them adapting to your weapons like their TV show counterparts. BOTTOM LEFT. Exploding architecture helped in strategizing your attacks. RIGHT. The Klingons’ AI allowed them to crouch and run for cover. an entire level, and we would have to mies attack the player more, so the player ed a real lack of cooperation between resort to something drastic. Luckily, we would feel threatened by them, and the level design and enemy AI, and forced the did get them to work in the levels. They teammates helped but didn’t do all the designers to rewrite their scripts constant- may have run funny or jumped down long work. It’s funny now to hear people say ly to match the changes in the underlying elevator shafts to catch up with the player, that the teammates were stupid because game systems. With more programmers but at least they stayed in formation they hardly killed any enemies, or that working on AI and navigation early on in through the whole level no matter what the enemies were dumb because they the development, these kinds of last-min- the player was doing. attacked the player more than the team- ute changes and back-end design could Of course, once there were enemies we mates. If they only knew how tiresome have (hopefully) been avoided. had to worry about friendly fire. We the gameplay would have been had we wanted the team to react intelligently to not balanced it the way we did. From Ghoul models to regular being shot, but we didn’t want to punish 2.models to skeletal models. It the player for shooting them accidentally. What Went Wrong was a big decision to switch to the new After a lot of trial and error, we decided skeletal models. In the beginning, we that teammates would retaliate against a Not enough programmers. For were using what was to become SOLDIER player only if the player had shot them 1.the first half of development, there OF FORTUNE’s Ghoul system (see “Raven repeatedly outside combat. In combat, was mainly only one programmer working Software’s SOLDIER OF FORTUNE,” Post- they’d still react to friendly fire, but on scripting, enemy AI, teammate AI, mortem, September 1999, for more on couldn’t be killed, and would never turn pathfinding, and the animation system. This Ghoul). When we received the QUAKE 3 on the player. programmer was also writing all the dia- code, we tried to integrate Ghoul into the Then came the problem of trying to logue, and it became necessary for him to new code, but found it to be too differ- balance the teammates’ involvement in relinquish other programming duties in ent. It just didn’t fit in with the new opti- combat. Once we put enemies in the lev- order to finish writing. Unfortunately, we mized rendering pipeline QUAKE 3 provid- els, we found that the teammates were so didn’t have any extra programmers to help. ed. So we switched over to regular QUAKE good that they killed most of them, leav- Eventually we got a programmer from 3 models. ing little for the player to do. To balance a different project to start working on There was a lot of learning going on at this, we had the teammates shoot less game code. He completely rewrote the this time. When we get new code, it doesn’t often, but then they got attacked con- navigation system, which took time away come with operating instructions, and it’s stantly by enemies, turning the gameplay from creating the AI for all the enemies, often not complete. We went through a lot into “shoot the aliens attacking your which didn’t end up being completed of growing pains adopting the new format teammates.” Eventually we made the ene- until the game itself was done. This creat- and figuring out its requirements. When

54 january 2001 | game developer POSTMORTEM

TOP LEFT. The Voyager 3D model used in prerendered cinematics is the actual one used for the TV show. BOTTOM LEFT. Other models were designed by Raven and made by the company making the prerendered movies. RIGHT. It was important to make highly detailed sketches, since another company was making the models from them. the option to go skeletal came up, we had hind it had ever written a scripting system would completely stop the game in its to weigh the benefits of the new system before. The designers didn’t even get their tracks. Up until the last minute, we were versus the risks and time it would take to hands on the scripting system until about frantically trying to find every case in switch over. While we did the right thing eight months before the game was done. which a script would just stop execution. and embraced the new technology, we They did pick it up quickly, but not without In the end, we did manage to catch them had to write a new set of tools to handle a lot of effort and time involved. all, except for two cases that were caused the new formats and learn new proce- One of the major problems designers had by people turning their detail levels up dures to get our animations out of when scripting was the constant changes to too high and causing the game to drop to Softimage 3D and into 3D Studio Max. the underlying systems that the Icarus com- very low framerates, which could in turn We had a lot of squashed creatures and mands relied upon. They’d script an NPC mess up the scripted events. It turned out bizarrely stretched limbs along the way, one way and it would work fine. Then the pretty well in the end, but all the effort but it was well worth the trip. Unfor- following week, something in the naviga- that went into constantly revising the tunately, by the time we got it working tion, AI, or animation systems would scripts could have been put to other, right, we were past our alpha date, and change, and the script would be broken. more productive uses. because of all the different changes the This was a source of major frustration models had gone through by that time, among the designers and definitely impeded Adjusting to new QUAKE 3 tech- we didn’t have enough time to fully their productivity. Ideally, those systems 4.nology. The biggest level design implement a good AI system for the ene- would have been finalized before the headache in working with technology mies, and had to settle with what we designers had to start scripting. that is still being developed is that it’s could do in the time we had. Within Icarus itself, there was one major constantly changing. We started building flaw that should be addressed. Icarus can our levels way before the QUAKE 3 engine Underestimating the amount start a command and wait for completion, was near completion, and this caused 3.of scripting work needed. As but it does not have a built-in system for scheduling problems every time we got a we mentioned previously, our Icarus letting the command (or “task”) time-out new code build. We built our levels one scripting system was a huge plus. But we and continue or take another route. There way with the tools and knowledge we also encountered a lot of problems with was no failsafe if, somehow, a command had at the time, and then when a big scripting. never completed. Given the sheer complexi- change was made to the QUAKE 3 code, Not only had no one ever used this sys- ty of our scripting, these kinds of showstop- the level designers had to spend a few tem before, none of the programmers be- per problems showed up constantly and days altering each of their levels to keep

56 january 2001 | game developer up with the changes in the code and how it We were able to cut most of the levels Final Thoughts handled surfaces, lights, and architecture. in half and make two separate levels out This happened numerous times during of them, but then all the level designers e started out with a lot of great development, and we often went months had twice as many levels to work on, and W ideas, and almost all of those ideas without new code drops. The level design- this could have caused some major sched- were implemented in the game with the ers would continue to work on levels in uling problems. Unfortunately, to keep up exception of a couple. That’s certainly an order to make progress, and then when we with the schedule, large parts of the levels achievement in this industry. finally received new code, we had to go were deleted and redesigned, which result- We made the game we set out to make back to all the levels that had been done ed in much smaller levels that could be and are very happy with the end result, so and spend a month getting them up to date. traversed quicker, and ultimately made for it was hard to think of the things that This month was not accounted for in the a shorter game. went wrong. Even though we had many schedule, and therefore a month of designer problems, we worked around them and time was simply lost. This happened more Mission stats never got finished. ultimately finished the game, which makes than once and was a big factor in keeping 5.The only major thing that didn’t get us feel like we did everything right. Then us behind our original schedule. into the game that we originally planned we heard comments from fans and game Another part of adjusting to the QUAKE 3 for was our end-mission statistics. The fea- reviewers who didn’t like certain things technology was realizing that our levels ture made it into the game in the form of about the game, and all the memories of couldn’t be as big as QUAKE 2 levels. The basic stats when you died, but it was working through all the obstacles came wonderful thing about the QUAKE 3 engine planned to be much more, and would have back, and we thought, “If they only knew is that you can have many more polygons really added to the game. The end-mission how many problems we had to work in the view at one time, allowing for more stats would have improved the replayabili- through to get the game to its final state.” detailed levels and rooms, and of course ty of the single-player game and given It’s working through those development curves. Without this engine we wouldn’t more emphasis to the interactive and mul- obstacles that makes a game successful. It’s have been able to create such accurate-look- tiple-outcome events. The main goal with also gratifying to hear from fans and ing Voyager rooms and locations. the stats was to grade players’ perform- reviewers that the game was successful When we started building levels, we ance when they completed a mission; for both as a fun game and as a Star Trek made them as we did using QUAKE 1 and 2 example, giving a score of 100 percent for game. For us, that means many more technology. We had expansive levels that a perfect mission. A number of medals things went right than wrong, and the looked awesome and showed off what the would also be awarded to players based team was talented enough to work QUAKE 3 engine could do. Then, some- on what they did during the mission. At through the things that went wrong and where near the middle of our development, the end of the game, all the scores and make a game that is being enjoyed by we realized that the file size of most of our medals would be added up for one final thousands of people. levels was huge, running 11 to 15MB each, game score. ELITE FORCE was a very difficult project when they should have been about 6MB. The stats would have made a signifi- cycle with a really long crunch mode, but This was a problem, since we’d planned for cant gameplay feature, letting players what game is any different? Yet we had a the file sizes to be 10MB or less out of a know at the end of a mission whether lot of extra obstacles to overcome, includ- total memory budget of 64MB. The levels they could have saved someone or done ing the perception that all Star Trek games were the normal game-world size of a something differently to get a better suck and that meant ours would too. It QUAKE 2 level, so what was the problem? score. This would have made the interac- seemed like we were destined to fail before It turned out to be the high polygon (or tive events mean something more, we even started. Working with one of the triangle) count used to create a much emphasizing the fact that they two biggest science-fiction franchises in more intricate and detailed environment. are interactive; events the world added to the pressure. But We realized that although QUAKE 3 can that players didn’t Activision supported us all handle more polygons in the view at one even know could be the way from upper man- time, the file size for the level had not changed would have agement to a top-notch mar- increased much from a QUAKE 2 level. We been presented to them keting and PR staff. Paramount had a dilemma; either we could bring the after the mission, mak- was surprisingly helpful, and file size down by taking out all of the ing the game world proved to us that they care detail that made the QUAKE 3 engine supe- seem that much more about the quality of the games rior and keep the physical size, or we alive. With this feature made and would do everything could cut the size of the level down, mak- not in the game, the possible to ensure that quality. ing it smaller yet highly detailed. Since we multiple outcome events With a dedicated and very tal- were making a world that could readily didn’t mean anything more ented team of individuals, we met be compared to a TV show, we opted to than just a “cool” factor, our challenges and succeeded in making keep the detailed environments of the Star instead of being intrinsic to the what is being called the best Star Trek Trek universe and cut the level size down. gameplay and adding to replayability. game ever made. q

www.gdmag.com 57 SOAPBOX jarrett jester

Viva la Différence Making the Most of the War Between Artists and Programmers

ow do you make a great art files will be thrown away. Many pro- The problem is that most programmers game without killing each grammers are not by nature social or inter- tend to come in late in the day and work other? You’re a talented active, so the artist must knock down the late at night. Many even come up with the artist, who is creative, barriers of communication to find out what lame, “I was working at home last night social, and has a thorough may or may not be the proper procedure until three in the morning.” They don’t knowledgeH of the latest technologies used when developing poly count or bitmap size. feel the need to interact with other team to make games. You’re working with a tal- During this period, it’s common for pro- members, even though they are building ented programmer who never comes out of grammers to assume huge amounts of art the very tool that someone else is going to his room, wants to rewrite everyone’s will be thrown away. The end result is a use to implement features. Without advice code, and doesn’t interact well with others fair amount of finger pointing and a large from designers or artists, many tools end on the team. The hours are long, the tech- amount of time and money lost. up being totally useless, and not used for nology is changing faster than you can buy Input leads to output. The norm in the their intended purpose. An artist has to it, and you’re working on opposite sides of industry is to work flexible hours. This visually produce a large body of work that the brain. With the rising de- usually means you should feel bad if you can be criticized by every member of the mands of the game industry are only working a forty-hour company, including the receptionist. The and the next-generation plat- week. The amount of hours programmer, on the other hand, can put forms, the team concept is cru- that both programmers together code that sometimes even his cial for game development. Yet and artists work is peers can’t understand, and is hardly here are individuals who are incredible. ever criticized by other team members complete opposites of each for the quality of the tool or the other, trying to work amount of time it has taken him to together toward a com- finish a specific tool. Most tools are mon goal — to ship “works in progress,” and are a great game. usually rewritten later to Getting off on the accommodate the exact right foot. At the needs of the game. If the beginning of a project, programmers communicat- artists are developing ed more effectively with the the look and feel of the rest of their team while cre- game, while the program- ating the tool, however, mers are working on the fewer rewrites would be engine as well as tools that needed, and cleaner code with artists will need to implement fewer bugs would be the rule. their shells, shape building, level Constantly changing soft- building, animations, and special ware and hardware are also effects. It’s during this phase of adding to the amount of hours production where things can and that artists and programmers usually do go wrong. There is a work. To learn new soft- tremendous amount of pressure ware, artists at most on the artists to get the companies are project off on the right required to put in foot. If there is no inter- extra hours of action between the artist their own time. and the programmers Learning entirely during this period, tons of continued on page 63

64 january 2001 | game developer SOAPBOX

continued from page 64 quality of their game. People with overly individuals who interact together, take direc- new software is only half the problem, similar skill sets tend to let their egos get tion well, leave their egos at home, and who however. Artists spend a large amount of in the way of their interactions with the are rewarded equally for their time. time adjusting to new interfaces on rest of the team, and the results are games I have worked with some of the best upgrades of software they had previously delivered late and of lesser quality. programmers in the game industry. By far mastered. Furthermore, many artists are Leveling the playing field. It’s no secret the best programmers to work with were beginning to take scripting classes to use that, on average, most artists are well not the ones thought to have the cleanest with programs such as 3D Studio Max. underpaid compared to their programmer code, but the so-called hackers who could Changes in software and hardware like- counterparts. This is a fact, even though make the game work and look good. wise put added pressure on the program- most artists in the industry have college These were also the programmers who mers to come up with new and fancier degrees or some kind of art training before worked the fastest and were fun to work game engines and plug-ins. Next-genera- they are hired. The gaming industry has with. They work long hours, are social tion platforms seem to be more artist- far and away rewarded programmers with enough that you can interact with them, friendly with higher poly counts, higher much higher wages than artists. Many and come up with great product. Some of resolutions with 24-bit color, and every- artists I have worked with have become the best artists I have worked with are thing in real time. designers just because of the higher salary not “techies,” but know enough about The constant with even the new plat- they could earn. One producer summed it certain tools to create great-looking game forms, however, is that the artist and the up best by saying, “To get a good artist graphics. It does, however, take a variety programmer still need to work together nowadays, all you have to do is kick a tree of kinds of people to make a great game. toward common goals. To build art tools, and one will fall out.” Clean code makes for a good foundation. exporters, terrain editors, and the like, it Every year since I began working in this Creative, innovative, and talented artists takes input from both the artist and the industry, art has become more and more the and animators help make that code come programmer to make the proper tools. critical path. The skills needed to work for a to life, good game design and scheduling There may be a handful of individuals out top game company have increased tenfold. finishes the job, and if you’re lucky every- in the gaming world who have top-notch More and more artists are learning to script, body lives to ship the game. q art, math, design, and programming skills doing lower-level programming, taking film all rolled into one, but I haven’t met that classes, and so on. Artists are becoming JARRETT JESTER | Jarrett is art director for person yet. It would be great to hire art more tech-oriented in part to play a larger Pipeworks Software Inc. and has been in the techs who could do it all, but I’m not sure role in the creation of a game and thus computer game industry for ten years. Before how a team of individuals with the same increase their earning potential. This discrep- that, he was an art director at Dynamix, a exact skills would work together. A greater ancy in wages also plays a huge role in the Sierra company, in their game simulation de- variety of artists with different skills can interaction between the artists and the pro- partment, and worked on such titles as ACES only improve the outcome of a final prod- grammers. It often seems that because the OF THE DEEP (a submarine simulation), RED uct. It is much the same with program- programmer is the higher-paid employee, he BARON II, and CURSE YOU! RED BARON. He mers. The more expertise a programming or she doesn’t have to ask the artist for also worked on ACES OF THE PACIFIC, ACES team has with combined 3D, AI, physics, advice or direction. The reality is of course OVER EUROPE, RED BARON, and a variety of tool-building, and so on, the higher the that the best tools and games are created by adventure games.

www.gdmag.com 63