FEBRUARY 2002

GAME DEVELOPER MAGAZINE GAME PLAN 600 Harrison Street, San Francisco, CA 94107 t: 415.947.6000 f: 415.947.6090 Publisher

✎ Jennifer Pahlka [email protected] LETTER FROM THE EDITOR EDITORIAL Editor-In-Chief Jennifer Olsen [email protected] Managing Editor Tor Berg [email protected] Production Editor Olga Zundel [email protected] The Joys of Self-Regulation Art Director Audrey Welch [email protected] Editor-At-Large hat kind of kid itself against errors of fact in public opin- Chris Hecker [email protected] were you? Did ion, such as the persistent and pernicious Contributing Editors Daniel Huebner [email protected] your mom have to misperception that videogames are pre- Jonathan Blow [email protected] nag you endlessly dominantly made for and played by chil- Hayden Duvall [email protected] Advisory Board to clean your dren. When Australia’s Office of Film and Hal Barwood LucasArts room, your constant refusals erupting Literature Classification devised its first Ellen Guon Beeman Beemania W Andy Gavin Naughty Dog into all-out wars? Or perhaps you were videogame rating system in 1994, “...con- Joby Otero Luxoflux cheerful and obedient, always cleaning cerns were expressed about the interactive Dave Pottinger Ensemble Studios George Sanger Big Fat Inc. your room as you were told. Sometimes, nature of computer games and the possible Harvey Smith Ion Storm if you did it without your mom having to adverse effects on children, who were seen Paul Steed WildTangent ADVERTISING SALES ask, she might give you a cookie. as the primary target audience for comput- Director of Sales & Marketing The game industry got its cookie in er games.” (OFLC Discussion Paper, “A Greg Kerwin e: [email protected] t: 415.947.6218 December when the Federal Trade Com- Review of the Classification Guidelines for National Sales Manager Jennifer Orvik e: [email protected] t: 415.947.6217 mission issued its latest report to Congress Films and Computer Games,” 2001). Later Senior Account Manager, Eastern Region & Europe on “Marketing Violent Entertainment to guidelines established a 15-and-over rating Afton Thatcher e: [email protected] t: 415.947.6224 Account Manager, Northern California & Southeast Children,” a follow-up to a report submit- for some games, but decreed — in a tri- Susan Kirby e: [email protected] t: 415.947.6226 ted in September 2000 which criticized umph of ambiguity — “the stronger com- Account Manager, Recruitment Raelene Maiben e: [email protected] t: 415.947.6225 marketing practices in the music, film, and puter games are banned.” (OFLC Account Manager, Western Region & Asia videogame industries. The conclusion was “Guidelines for the Classification of Craig Perreault e: [email protected] t: 415.947.6223 that since the first six-month follow-up Computer Games,” 1999). Sales Associate Aaron Murawski e: [email protected] t: 415.947.6227 report released in April 2001, the film and The same week the FTC released its ADVERTISING PRODUCTION videogame industries have continued to updated report in the U.S., copies of clear- Vice President, Manufacturing Bill Amstutz improve their rooms’ tidiness with respect ly mature-themed games such as GRAND Advertising Production Coordinator Kevin Chanel Reprints to diverting their marketing of violent- THEFT AUTO 3 and GHOST RECON were Stella Valdez t: 916.983.6971 themed or otherwise objectionable enter- reportedly being whisked from store GAMA NETWORK MARKETING Senior MarCom Manager Jennifer McLean tainment away from minors. (The music shelves in some Australian jurisdictions, at Marketing Coordinator Scott Lyon industry, apparently, is still running away the height of the Christmas shopping sea- Audience Development Coordinator Jessica Shultz from Mom, screaming and slamming son, in order to undergo reclassification. CIRCULATION doors, and seemingly oblivious of the fact The head of Sony Computer Entertain- Group Circulation Director Catherine Flynn Circulation Manager Ron Escobar that Mom usually wins in the end.) ment Australia can tell a reporter for the Circulation Assistant Ian Hay

The self-regulatory efforts of the game Sydney Herald Sun that half of Playstation Game Developer Newsstand Analyst Pam Santoro is BPA approved. industry’s trade organizations, in particular 2 owners are over 30 years old, yet the SUBSCRIPTION SERVICES the Interactive Digital Software Associa- country’s regulatory body concluded just a For information, order questions, and address changes tion and the Entertainment Software few years earlier that there was no need t: 800.250.2429 or 847.647.5928 f: 847.647.5972 Rating Board along with its Advertising for a mature rating for games as there was e: [email protected] INTERNATIONAL LICENSING INFORMATION Review Council, are commendable for for film, because games were for children. Mario Salinas willfully assuming responsibility for indus- Clearly there is a lot of confusion coming t: 650.513.4234 f: 650.513.4482 e: [email protected] try marketing practices while rightfully out of and real money evaporating into CMP MEDIA MANAGEMENT President & CEO continuing to defend our First Amendment this non-self-regulatory system. Gary Marshall Executive Vice President & CFO John Day rights. What they’ve so deftly realized is Lessons abound about the virtues of President, Technology Solutions Group Robert Faletra that when you address one critique pur- successful self-regulation and the perils of President, Business Technology Group Adam K. Marder posefully and with measurable success, yielding control to outside interests. The President, Healthcare Group Vicki Masseria President, Specialized Technologies Group Regina Starr Ridley you fend off outside agencies who would U.S.-based industry has fortunately been President, Electronics Group Steve Weitzner regulate this industry without its best busi- rewarded with praise for its efforts so far, Senior Vice President, Business Development Vittoria Borazio ness and creative interests in mind. but now is not the time to rest on our gos- Senior Vice President, Global Sales & Marketing Bill Howard Senior Vice President, Human Resources & Successful self-regulation also helps to samer-thin laurels, nor will it ever be. Communications Leah Landro dilute criticisms lobbed at other aspects of Vice President & General Counsel Sandra Grayson our trade. But we’re not out of the public- Vice President, Creative Technologies Philip Chapnick opinion woods yet. The most important thing for our indus- try to do now is to continue to defend

2 WWW.GAMANETWORK.COM SAYS YOU A FORUM FOR YOUR POINT OF VIEW. GIVE US YOUR FEEDBACK...C

Game Engines, or Are imprecision), we can consider to avoid if you’re precomputing mipmaps They? and NetImmerse members of a same using elaborate filters (such as the article family which, for historical reasons, we describes). You might as well get gamma object to Andrew Kirmse and Daniel can call engines. You will always have correct, too. I Sanchez-Crespo’s classification of closed engines, which will offer a faster If you’re smart, you do all this with at NetImmerse and Alchemy as “game time to market, and toolkits, which give least 12 bits of precision per channel, to engines” in “Test Drive: On the Open us greater flexibility. In the end, all these avoid banding (Jim Blinn talks about this Road with Two of Today’s Most products are nothing but close relatives, precision problem with gamma conver- Powerful Game Engines” (December, so the incurred imprecision in the nam- sion in his books). 2001). They don’t qualify as engines at ing is, in my opinion, justified. Eric Haines all; they’re component sets. via e-mail

Anonymous Kudos for “The Inner JONATHAN BLOW RESPONDS: Actually, in an via e-mail Product” upcoming column, I talk about gamma correction. Rumor has it that the next DANIEL SANCHEZ-CRESPO RESPONDS: The have just read Jon Blow’s first “Inner chip design from A Major 3D Accelerator term “game engine” is pretty slippery. IProduct” column (“Mipmapping, Part Maker has deep enough channels and a Traditionally, it has referred to “closed 1,” December 2001). I am currently on a versatile enough RAMDAC or page copi- solutions,” which allowed the developer game project and the information he has er that you can just keep the frame buffer to concentrate on content creation. In supplied is more than enough to get my in light-linear space and exponentiate this respect, NetImmerse and Alchemy team thinking on how we could imple- everything after the whole frame is should be better called “game develop- ment a better mipmapping algorithm. drawn. This has good connotations for ment toolkits.” Both Andrew and I took lighting (in other words, it becomes basi- care that this idea was clearly stated in Steve Marth cally free to actually do lighting at the our reviews. via e-mail proper falloff rate). Still, this semantic precision is a dou- ble-edged sword. Being “traditional” Don’t Forget to Gamma Teaching Games engines, Quake & Unreal should allow Correct teams to concentrate on content, right? enjoyed Celia Pearce’s “Learning Still, when Valve used the Quake 2 ’m so glad to see that Jonathan Blow’s ICurves: The Present and Future of engine to create HALF-LIFE, some compo- I“Inner Product” column has picked Game Studies” (Soapbox, December nents were reworked or written from up the technical torch at Game Dev- 2001). scratch. Does that make Quake 2 less of eloper (“Mipmapping, Part 1,” Six years ago I proposed a videogame an engine? Now, consider HIRED GUNS, a December 2001). programming course to Paloma College, game built on top of Unreal. What’s so Besides the ringing mentioned in the a community college in San Marcos, interesting about it? Well, it’s a real-time article, another effect usually ignored by Calif., which I have been teaching part- strategy game, clearly not what the peo- game programmers (and almost every- time for the past five years. We recently ple at Epic had in mind when they coded one else) is the effect of gamma correc- decided to expand our program by offer- their software. The whole interface was tion (or lack thereof) on PC monitors. ing two new courses. The first will be replaced, and I can guess lots of AI/logic Since I didn’t see this effect mentioned in offered this spring semester: “An code needed some major reworking. the article, here’s a brief rundown. Overview of the Videogame Industry.” Should we change the naming of those Imagine your base texture is a checker- The second class to be started next year packages in that case? board, 22, two black and two white will be a game programming course. We Most teams working on classical game squares. The pyramid derived from this will be offering a videogame specialist engines are in fact using a toolkit texture is a 11 gray, usually stored as certificate, but hope to expand it to an approach: analyzing the available com- 0.5. However, the answer should really A.A. degree in videogame programming. ponents and reworking those that need be more like 0.73, if you factor in it. Should we totally drop the “engine” gamma correction for CRT monitors Ed Magnin term if even the most representative (LCD monitors screw up the equation via e-mail products violate the definition? Lots of usually, as their response is different). precision can make it impossible to clas- Who cares? Well, in this case, if you use Let us know what you think: send e-mail sify items into groups, as each item has 0.5 then the object is far away and to [email protected], or write to specific features that make it unique. appears dim, and as it comes closer, it gets Game Developer, 600 Harrison St., CSan Francisco, CA 94107 Being practical (and, yes, adding some brighter. Not a huge deal, but it’s so easy

4 february 2002 | game developer INDUSTRY WATCH JTHE BUZZ ABOUT THE GAME BIZ | daniel huebner

Christmas console launches. The Sony set a new price for Playstation 2 revenue of about $30 million in the U.S. month leading up to the all-important at the end of November, but the new rate market, well below the targeted $80 to holiday period saw didn’t extend to $90 million, and interest among Japanese the start of the sec- North America, at consumers has also been weak. ond round the ongo- least for the duration ing console wars, as of 2001. The 15 per- Konami group net profit plunges. and Gamecube cent price reduction Konami announced a drop of 78.3 per- finally made their was credited to cent in group net profit in the first half long-awaited debuts reduced production of the company’s fiscal year. Most of of just days apart. costs rather than as a the deficit was attributed to profit short- While both new con- response to console falls for the company’s Yu-Gi-Oh card soles initially seemed launches from com- game. Group net profit dropped to to sell out as quickly Microsoft proclaimed HALO the best-selling petitors Nintendo and $20.74 million from $94.64 million for as stores could stock console launch software for the holiday Microsoft. the six months through September, them, in the weeks shopping season. despite total sales rising nearly 20 per- following the launch- Bleem emulator cent to $725.48 million. Growth in sales es it was difficult to decipher the num- gives up. Bleem, the company that made of its videogames business, however, bers to conclude who actually had the Playstation emulators for PC, Macintosh, could not offset a sharp decline in oper- better launch. and Dreamcast, has shut its doors after ating profit in its card game business. Nintendo claimed that sales of nearly protracted legal battles with Sony over 600,000 consoles in the first 15 days of copyright infringement. Sony first sued Interplay reports few bright spots in Gamecube availability made the launch Bleem over its products in May 2000. third-quarter financials. Interplay the most successful console debut ever. Bleem counter-sued, claiming Sony was reported net revenues of just $4.2 million While Microsoft had just half as many exercising an illegal monopoly over the for its fiscal third quarter, a drop of 87 units ready for launch and hadn’t publi- videogame industry. percent from last year. The net loss for the cized its sales numbers at press time, the period was $20.6 million, a disappointing company claimed the most successful Nvidia replaces Enron on S&P 500. result after reporting net income of $0.1 launch title for Xbox, asserting that The sudden demise of energy firm Enron million in the same period last year. Most Bungie’s HALO was out-selling Nintendo’s Corp. was good news for chip maker of the drop can be attributed to failing to LUIGI’S MANSION. Both companies hoped Nvidia. Standard & Poors announced at ship games; Interplay didn’t have any new to have more than 1 million consoles in the end of November that Nvidia would titles in the third quarter and had shipped consumers’ hands by the end of the year. replace Enron in the prestigious Standard just seven for 2001 as of mid-December. & Poors 500 Composite Index. Interplay released a total of The other consoles. Sega was moving 26 titles in 2000. q the final Dreamcasts out the door after Square CEO quits after poor show- cutting the price on remaining consoles ing by Final Fantasy. Game software from $79.95 to maker Square UPCOMING EVENTS $49.95. New pricing announced that president has moved the dis- and chief executive officer CALENDAR continued machine at Hisashi Suzuki would D.I.C.E. SUMMIT a brisk pace, pushing resign after the company HARD ROCK HOTEL Dreamcast sales past reported its worst-ever loss Las Vegas, Nev. the 10 million mark. for the first half of its fiscal February 28–March 1, 2002 Cost: variable Said Sega’s Peter year due to a disappointing www.interactive.org Moore of the too- showing by Final Fantasy: late sales surge, SUPER MONKEY BALL proved to be a pop- The Spirits Within. Square GAME DEVELOPERS CONFER- “Ironically, we now ular Gamecube launch title. reported a group net loss ENCE 2002 wish we had more.” of $106.8 million for the SAN JOSE CONVENTION CENTER Sega’s post-Dreamcast recovery is six months ended September 30. Chief San Jose, Calif. moving along slowly, as the company operating officer Yoichi Wada was sched- March 19–23, 2002 posted a $169 million loss in the six uled to take the top position on Cost: $195–$1,950 (early-bird discounts months ended in September. Sales were December 1, while Suzuki remains as the available) down 18 percent from the previous year. chairman. The film generated box-office www.gdconf.com

6 february 2002 | game developer PRODUCT REVIEWS XXTHE SKINNY ON NEW TOOLS Newtek’s Lightwave 3D 7b by sergio rosas

ewtek’s latest release of its 3D modeling and ani- mation package is crammed full of good- ness. So what do you get Nfor the upgrade price? You get some new features, some great enhancements to the established ones, and an occasional sim- ple but elegant refinement. Motion Mixer. Finally, Lightwave 3D gets its very own nonlinear animation system. Lightwave users have been wait- ing for a long time, and it’s finally here: Motion Mixer. With this tool, you can define a character and then build a library of its motions. Once you’ve iden- tified the motions (such as a run cycle and a walk cycle) you can edit them together and easily blend from one to another. Additionally, Motion Mixer allows you to set pre- and post-behaviors for motions (such as repeat and oscil- LIGHTWAVE 7B. Motion Mixer is Lightwave’s long-awaited new nonlinear animation system. late), scale, load, and save entire hierar- chies of motions. It also has a nice You can make a massive change, preview Sprites. Some might not consider this motion mapper tool that lets you load it in real time, and if you like it, you can feature to be a big deal, but coming from motions from a different character. apply it to the scene. It also has a time- game land, sprite-based particles are a Motion Mixer is a great tool, but after line, just like the scene editor, where you huge deal to me. Both hypervoxels and I used it for a little while, it left me want- can move and size motions. You can volumetric lights have sprite options ing more. Unfortunately, Motion Mixer make custom workspaces and save them now. There’s nothing to it, just click the restricts its motions to a minimum of five with your scene. You can sort by any sprite checkbox and let Lightwave take frames. This means that you can’t work property and use its powerful filter for over. It renders the sprite version of your with simple poses. Motion Mixer also the items list. It took me all of two sec- hypervoxel internally and assigns it to lacks the ability to load in standard onds to figure out and love this feature. each particle. (Of course, you can also motion capture files. Nevertheless, if you I really wanted this feature when I had a assign your own texture if you want.) still do character animation in Light- scene with 78 lights that needed lens This is a very useful option for game wave, this feature alone is worth the flares. Just for fun, I loaded that old developers. You can see the particle price of the upgrade. scene up and was sorely disappointed to sprites animating in layout in real time. Spreadsheet editor. Another great new find that the speadsheet editor doesn’t Even though it’s not exactly the sprite feature in Lightwave is the spreadsheet do lens flare properties. In short, the that being rendered, it’s great for tweak- editor. This view looks similar to the spreadsheet editor adds some extremely ing timing. When rendered, both the scene editor, except that you can expand useful functionality, but you still might voxel and volumetric light sprites look it spreadsheet-style with tons of item have to resort to a text editor every once just fine, even when flying through them. properties. All of these properties can be in a while. And they render a lot faster than in pre- selected en masse and tweaked. You can reset them all to a new value or add/sub- SERGIO ROSAS | Sergio is currently acting as lead artist for THIEF 3 at Ion Storm. tract/multiply an offset to every one. He can be reached at [email protected].

www.gdmag.com 9 XPRODUCT REVIEWS

sentation that makes them a snap to use. Everything about the internal particle system feels a lot more integrated than in previous versions — they even interact with motion designer soft bodies. Graph editor improvements. With every new version of Lightwave, the layout graph/curve editor gets better and better. This time Newtek added an OpenGL interface, which the company claims is able to do hundreds of curves at once. It does feel much smoother and faster than it ever did before. Another new feature that’s a great time-saver, the graph editor will now open with the curve for the cur- rent item selected. Unfortunately it doesn’t open all of the curves if you have multiple items selected. Some other enhancements include match footprint, key reduction, curve filtering, and key bins. Modeler enhancements. Compared to LIGHTWAVE 7B. Sprite options for hypervoxels and volumetric lights make these viable effects for the Layout interface, the Modeler got very game animators. few new features. Newtek added a round- ed box primitive and a more useful curve vious versions. This makes hypervoxels emitters also got a bunch of new nozzle tool. The new face collapse command lets actually usable for me. types, such as sphere, cone, and object you select adjacent polygons and collapse Rendering speed. Speaking of speed vertices. Newtek also added a bunch of them all to a single point. This is a real increases, Newtek added quite a few new wind types, such as turbulence, vor- time-saver for optimizing models. You can with Lightwave 7b. Besides being able to tex, and explosion. The wind types are also now airbrush between morphs. use sprites to speed up hypervoxels, you powerful and have a great visual repre- (Neat, but it’s no Artisan.) Additionally, can also bake a hypervoxel cloud to get great rendering speed increases. Radiosity got a new “backdrop only” setting that renders faster even if it does- n’t look quite as good. Also, a new “shading noise reduction” global illumi- nation option can make the low-end area light and radiosity settings look less grainy while rendering much faster than the higher settings. Enhanced particle system. Lightwave comes with an integrated particle sys- tem, and (although it might not be as good as the third-party systems) it’s get- ting much better. With this release, the particle engine got interparticle colli- sions, particle respawning, and collision spawning. This means that you can sim- ulate rain — each particle spawns little splash particles when it hits the floor. You’re now able to attach an object or hierarchy to a particle, so you can make giant meteors crashing into each other LIGHTWAVE 7B includes Sky Tracer, a powerful and elegant feature for creating atmospheric and breaking into tiny pieces. Particle effects.

10 february 2002 | game developer XXXXX excellent XXXX very good XXX average =XXdisappointing X don’t bother being able to save a single layer as an Sky Tracer 2.0. Sky Tracer got a facelift code base without trampling on each object and to flatten all layers will come for Lightwave 7b. It’s now fully integrat- other. Most systems fall into one of two in handy to game animators. ed into Viper and seems easier than ever camps: either a low-cost solution, such as LScript Commander. This new tool to use. It has a great Suns feature, which Microsoft’s Visual SourceSafe, or a mas- keeps a list of all the behind-the-scenes lets you type in the month, day, year, sive system requiring a team of experts to commands that are executed when you’re geographical location, and time, then it keep it running, such as Rational’s clicking around the Layout interface. You instantly pops out a great looking sky. It ClearCase. Accurev is trying to carve a can create macros easily by copying and also has a Baker feature that easily niche for itself between these two pasting selected commands into the work exports a skybox — another old plug-in extremes. area and hitting the Execute button. You made usable for game developers. I was able to get my trial copy up and can also install your own macro button Toon shading. For those of us who like running within minutes of downloading it. from there. LScript Commander is not as stylized renders, Lightwave 7b ships with The server setup was simple and painless. slick its Maya or 3DS Max counterparts, BESM (Big Eyes Small Mouth), a great I had slightly more difficulty when work- but it’s a start. shader for cartoon rendering. It has ing with the client side, but that’s plenty of great options such as unlimited undoubtedly because the client is where zones of shading and variable blending the greatest amount of functionality is LIGHTWAVE 7b XXXX between zones. Each zone has opacity, located. My test case was to take my cur- brightness, and saturation settings. rent game project and copy it to Accurev. STATS Specularity options, gradient overlays, More than 2,000 files were uploaded into NEWTEK edge options, and much more make this the system in a matter of minutes, my first 5131 Beckwith Blvd. my favorite toon shader. indication that Accurev is extremely fast. San Antonio, TX 78249 Soon after this, I was able to get complete (210) 370-8000 To Buy or Not to Buy? source for my client machine with all the www.newtek.com basics, including difference, history, and PRICE ightwave 7b has some very useful checkout control. My next task was to $2,495 (upgrade price is $495) L and long-awaited new animation fea- time basic operations, and what I found SYSTEM REQUIREMENTS tures that might seem a little rough was impressive. From checkouts to history Windows: Windows 98/ME/2000 (Service around the edges to some. Those accus- differences, Accurev performed standard Pack 2)/NT 4 (Service Pack 6a), TCP/IP tomed to other character animation functions many times faster than the network protocol installed, 128MB RAM. packages will probably not be tempted to Visual SourceSafe equivalents. Macintosh: PowerPC Processor (G3 or make the switch. Still, these new features, However, where Accurev really shines is higher recommended), Mac OS 9 or Mac along with all the great refinements made in its solutions to the subtle “gotchas” OS X (recommended), 384MB RAM for to existing features, are a must-have for that often slow production when one uses Mac OS 9, 128MB RAM for Mac OS X. veteran Lightwave animators. In the low-budget software. One of the classics is All systems require 32MB available hard realm of special effects, Lightwave’s when a programmer checks in a large drive space, CD-ROM for installation, hypervoxels are top notch and continue group of files at the same time that anoth- and a minimum screen resolution of to refine. The addition of sprites makes er programmer is getting the latest code. 800600 pixels. Lightwave game developer friendly. For The person getting code will only receive the low-polygon modelers, this version of part of the total check-in, which in most PROS Modeler has few new features, but it cases will render the build unable to be 1. Motion Mixer nonlinear animation tool continues to be the best polygon modeler compiled. Accurev disallows this by keep- 2. New spreadsheet editor for the money. If you are doing UV map- ing transactions such as large check-ins 3. Sprite-based hypervoxels and volu- ping in Lightwave, you should upgrade from applying publicly until it is complete. metric lights to 7b. For anyone doing cinematics, or A more severe test that I ran was to for rogue contract artists, I would make begin a check-in of multiple files and CONS this my tool of choice. To cut a long then disrupt the transaction by pulling 1. New features (Motion Mixer, spread story short, the “b” in Lightwave 7b the plug on the Accurev server (a little sheet editor, vertex paint) seem discon- stands for “bang for buck.” extreme, but I’m testing reliability here). nected and inconsistent with the rest of I know from experience that losing the package ACCUREV 3.0.1 power during a Visual SourceSafe trans- 2. Motion Mixer nonlinear animation tool by michael saladino action can be a dangerous event, result- can’t use single-frame poses evision control software is the ing in corruption of the database. 3. No motion capture import R safety net that allows multiple pro- Accurev, however, was able to survive grammers to work together on the same nicely. When I restarted, everything was www.gdmag.com 11 XPRODUCT REVIEWS

functioning and the check-in process it the Swiss Army knife of audio applica- including frequency and phase, of acoustic could be restarted on the client with no tions. And for professionals from master- and equipment signals. Add the Capture loss of data. ing engineers to sound designers, it’s like and Analysis system to record and open My only serious concern with Accurev having a toolbox full of ultra-accurate sound files directly into Foo, and you can is its interface design. While certainly meters, an expensive oscilloscope, and begin to see how incredibly intricate this easier to use than industry standards waveform displays built into your Mac. software package is. such as ClearCase, it still lacked the sim- There are two versions of “Foo,” as it The program runs well on a PowerPC plicity of Visual SourceSafe. The suppos- is commonly called, including the $400 604e chip at 180MHz, but I’d recom- edly simple matter of bringing new files standard version and the $800 Spectra mend a G3 or G4 for heavy-duty work. into the database was something that Foo Complete. Each version is capable of It’s very easy to set up as a plug-in inside kept me stumped for far too long. Not high-resolution metering and measuring of Pro Tools or Digital Performer (RTAS surprisingly, I found it easier to integrate spectral analysis, phase correlation, and MAS audio systems, respectively), SourceSafe with Microsoft’s Visual waveforms, power, envelope, and spectral but can also be opened as a stand-alone Studio. And while a cursory inspection of histories, as well as a number of highly application. Setting up Foo to take audio the software might remind you of configurable input/output configurations inputs from your Mac I/O, CD, or other SourceSafe’s look and feel, its internals for matching or comparing audio signals. input source is no harder than it would are definitely different and do require While the standard version of Foo is be with your favorite DAW. With suffi- time to learn. I found that by the end of extensive on its own, the complete version cient processing power, multiple instances a couple hours of testing, I was begin- adds quite a few top-end features that can be opened simultaneously to monitor ning to feel more comfortable. augment its already impressive functions. a mix or any number of individual tracks Accurev 3.0.1 is available for There’s a world-class signal generator that within your DAW program. Window Windows 95/98/M/NT 4.0/2000/XP and performs Pink and White noise, Burst, Sets, which are customizable and can be an impressive host of other, more obscure FFT, and direct-to-audio signal generation assigned to a hotkey for quick access, platforms. The evaluation version is not at 24 bits and with up to nine simultane- offer a snapshot feature of every para- time-limited, but is limited to two users. ous sine wave sweeps. A Transfer function meter for instant recall or retrieval as a Accurev will provide interested parties measurement system can handle equip- preset. And a new Link feature keeps all with a price quote for extended licenses. ment and test verification, acoustic correc- of your parameters from any set of For my next project, I will certainly tion, and time-alignment for studios or instruments and meters associated with as experiment more with Accurev to deter- labs, and takes direct measurements, many groups of instruments as needed. mine whether it would be a worthwhile change. From my initial tests, it’s a prom- ising new option for software developers no matter what the size of the project. XXXX | Accurev 3.0.1 | Accurev www.accurev.com

Michael Saladino is senior programmer at Presto Studios in San Diego. METRIC HALO’S SPECTRA FOO by gene porfido etric Halo appeared on the audio M radar a few years ago with a daz- zling new program called Spectra Foo. “Spectra who?” you ask. That’s Spectra Foo and it’s an RTAS and MAS plug-in with an incredible array of functions that make it as easy to remember as its name. Since its introduction, Spectra Foo has become the Macintosh standard for every imaginable audio-monitoring or test-job function one could dream of, and it has SPECTRA FOO gives sound engineers a stable and feature-laden toolbox for analyzing digital matured well in later versions. Some call audio.

12 february 2002 | game developer XPRODUCT REVIEWS

Spectra Foo is a name worth remem- proprietary performance-modeling tech- With more and more games taking bering if audio has any importance in nology. Performance modeling focuses on advantage of interactive MIDI-based your life. Whether your mastering the emulating the nuances of human instru- music production, a tool that can aid in next Pink Floyd record or just making mentalists through computer technology. the production of realistic musical per- sure your game’s sound effects are Rhythm ‘n’ Chords models rhythm guitar formances via MIDI is a welcome addi- panned and in phase, this is an applica- performances specifically. Creating realis- tion to any game audio professional col- tion that will come in handy in more tic guitar parts by hand via MIDI can be lection. This plug-in can help raise the ways than you’ll ever imagine. Count on an extremely time consuming activity. production value of a piece while still superlative support from Metric Halo’s Rhythm ‘n’ Chords alleviates MIDI musi- allowing for the advantageous small file Dan Metivier, along with the company’s cians from having to stress over those all- size associated with MIDI. incredible (and growing) lineup of excep- important guitar parts. Knowledge of the guitar helps, but is tional audio software and hardware, and Musiclab delivers the plug-in directly not required. The interface is similar to a you’ll soon be singing the praise yourself. from their web site, and here are four jazz chart. You select chords from a list This is what great software is all about. different versions for download. Rhythm of supplied voicings and enter them into XXXXX | Spectra Foo | Metric Halo ‘n’ Chords Lite is a free download avail- the measure. Then you either select a www.mhlabs.com able as a demo. Rhythm ‘n’ Chords 2 rhythm pattern from a library or use one Standard, Rhythm ‘n’ Chords Pro, and that’s been custom created. The arpeggia- Gene Porfido has been making music Rhythm ‘n’ Chords Pro Gold all support tion time of the strum, chord voicing, for over 25 years and game sound design an increasing number of features. and tone can all be adjusted quickly via for nearly a decade. He is currently an Musiclab also offers libraries of strum- an easy-to-use interface. Chord voicings, independent sound designer and compos- ming and picking patterns programmed for example, are spelled out on a minia- er in San Francisco. by a team of engineers and musicians for ture graphical keyboard, so even those use with the Rhythm ‘n’ Chords plug-in, with no exposure to guitar playing can MUSICLAB’S RHYTHM but most of the libraries are included create the right harmonies. You can even ‘N’ CHORDS 2 with the Gold version of Rhythm ‘n’ control the amount of muting without by todd m. fay Chords. There are currently 18 different having to switch to a different guitar hythm ‘n’ Chords is a plug-in for libraries featuring popular styles such as patch. This is done using Rhythm ‘n’ R Cakewalk and Steinberg’s Cubase jazz, oldies, blues, rock, world, and funk. Chords’ virtual sliders. There is also a series sequencers that takes advantage of These libraries provide musicians with manual play feature that allows the plug- starting points for creating in to be used with a keyboard. This way, rhythm guitar parts in a chords can be voiced by playing them on particular style. the keys while the plug-in plays through For those of you seeking the user-selected rhythm patterns. This the ultimate in guitar per- feature is especially useful for those who formances, there is still like to spend time with their hands on only one tried and tested the keyboard and off the mouse. method for capturing truly Note that Rhythm ‘n’ Chords is only inspiring work — that is, available for use in Cakewalk and of course, recording a gui- Cubase products and only on the PC. tarist. For the musician Like everything else in computer music working on a budget or production, you win some and you lose composer working on a some. Except in this case, players with- preproduction version or a out access to this plug-in maybe losing recording, however, this out big-time. Unless you’re a master gui- plug-in can be a real time- tar player with access to a MIDI guitar, I saver. After using Rhythm strongly recommend you pick up this lit- ‘n’ Chords to lay the tle beauty right away. groundwork for the XXXX | Rhythm ‘n’ Chords 2 rhythm guitar parts, the Musiclab | www.musiclab.com arranger is free to further “humanize” the content. Todd M. Fay (aka LAX) is an audio The plug-in makes it possi- consultant and content creator working RHYTHM ‘N’ CHORDS offers an interface that will be familiar to ble to create hours’ worth in and around the games industry. E-mail musicians. of work in mere minutes. him at [email protected]

14 february 2002 | game developer PROFILES TALKING TO PEOPLE WHO MAKE A DIFFERENCE

Warren Spector’s Sid Meier!

n the world of game development, Sid much of your time is spent conveying a vision to a Meier is as close as one can get to team, or melding various team members’ spins on the being a man who needs no introduc- game into a seamless whole, or just dealing with tion. Since co-founding Microprose in team and studio management issues? 1982, Sid has designed and pro- SM. Actually, I enjoy programming and I don’t grammedI dozens of games that have been enjoy management, so I’m generally the lead pro- heralded as nothing less than revolutionary, grammer on at least one project. ingenious, and influential to all who follow in WS. How do you explain your success? You’ve prob- his footsteps. Sid lends his experienced hand ably worked in a greater variety of genres than any- to Firaxis Games as chairman and creative one else in this business — science fiction, historical director of the recently released CIVILIZATION sims, pirate games, espionage adventures. Do you III and the upcoming SID MEIER’S SIM GOLF. think your greatest successes were driven by the This month’s questions were provided by appeal of a specific genre or fiction, or were there , who has designed numerous gameplay differences that made the difference, critically acclaimed games for , Sid Meier: Happiest when sales-wise? , and Ion Storm. Warren programming. SM. I don’t really know how to predict the suc- is currently executive producing Ion Storm’s cess of a game. In hindsight, it might seem that upcoming DEUX EX 2 and THIEF 3. doing CIVILIZATION was a no-brainer, but at the time it was a Warren Spector. What are Sid Meier’s inspirations? Do you play real departure for Microprose. At the time, strategy games a lot of games? Do you look to the cultural zeitgeist? Do you were considered boring and complicated. I write games that I specifically and consciously look outside the universe of games think I would like to play and hope there are some other peo- for fresh insights and ideas? ple out there who will like them as well. Sid Meier. Most of my game ideas trace back to my child- WS. How tight is the link between genre and gameplay? In other hood, to things that I became fascinated with at some point words, can the same mechanics be applied to a sci-fi game as to during my childhood. Pirates, airplanes, trains, history, and the a historical sim? Does genre dictate gameplay and game mechan- Civil War were all interests of mine at one time or another. ics, or do the mechanics come first and then the genre? WS. How do you start the game design process? Do you typically SM. We pick the game topic first and then worry about the have a moment of gameplay in mind? Or maybe a story or fictional mechanics. CIVILIZATION started out as a real-time game and context? Maybe a single game mechanic you think would be cool? A switched to turn-based. PIRATES! was a combination of story- particular fantasy you want to allow players to experience or an telling, adventure, and action. I tried three different approach- overall experience you want them to have? A mood you want to es to the DINOSAUR game — turn-based, real-time strategy, and evoke or a message you want to convey? Where does a design start a card game approach — before finally giving up. for you? WS. A lot of folks in my studio look at some elements of ALPHA SM. In starting a design I focus on two key moments. The CENTAURI in particular as a model for some of the things we hope to first time a player starts the game, he or she needs to be quickly do in future immersive simulation games. Do you ever look at drawn into the game. At the end of the game, the player should other people’s games, regardless of genre or game style, and see have a sense of having come a long way since the beginning to some of your own ideas embodied in them? Conversely, do you ever a satisfying conclusion and be tempted to play again. ask yourself why more game developers don’t adapt your ideas to WS. How much documentation do you do before beginning to their own work? In other words, how do you feel your games have work? Are you a preplan-as-much-as-possible guy or a prototype- influenced the development of games and gaming? and-revise guy? I’ve always heard the latter, but I want details! SM. I think there is a continual sharing, borrowing, and SM. There’s really no preplanning when we start a new building upon game ideas among the design community. As game. We build the game using stuff we already know, with long as each game also introduces some new ideas and innova- the idea that our players will already know this stuff too, and tion, this is one of the strengths of our industry. Certainly the they’ll be able to jump right in. Later we do research to add standardization of interfaces and controls has made games easi- depth, create scenarios, and get the details right, but not until er to play. I still love to play games. I hope other designers will we have a fun game. continue to create great games so that I can play them, and WS. How much “real work” do you do these days, and how occasionally borrow an idea or two. q

16 february 2002 | game developer INNER PRODUCT jonathan blow

Mathematical Growing Pains

his month, I’m going to talk about (these happen as your parameters cross as the way to talk about lines had how to represent lines and planes, from one if scenario to another) may impacted my effectiveness in making T the sorts of linear entities that cause subtle but disturbing things to games; the alternate representation programmers manipulate all the time. occur. See the pseudocode in Listing 1 removed those blockades. In high school I was taught that the for an example. equation y = mx + b is a groovy way to These problems go away when you Extending Lines to 3D represent a line in 2D. The equation is make a simple mental adjustment and useful because m represents the slope use ax + by + c = 0 as your line equation. fter a while, I’d made enough 2D and b is the y-intercept — that is, the This is like the slope-intercept equation, A games and decided to try 3D. line intersects the y-axis at (0, b). This but before a division has taken place; if When I first tried to formulate line representation is good if you don’t have you divide ax + by + c = 0 by b (the b equations in 3D, I got confused. In 2D, a lot of higher math experience and you from this equation, not the b we were ax + by + c = 0 had been the best thing just want to draw a line on a piece of talking about before), you get the slope- since sliced bread, so clearly I wanted to graph paper: b gives you a starting intercept form. The slope and intercept extend that equation to 3D. The obvi- point, and m gives you the direction to shoot toward infinity when b is near 0, ous candidate is ax + by + cz + d = 0. I go from there. meaning the line is vertical. So ax + by + knew from reading books that this was Years passed, until one day I was pro- c = 0 is more robust because it doesn't the equation for a plane. Extending my gramming some pretty advanced 2D divide by b. line equation to 3D requires adding z in games; by then I had used y = mx + b for As a bonus, the surface normal of the somehow, right? How else could I possi- visualization so often that I thought of it line is (a, b), and the distance from the bly add a z that would make any sense? as the primary way to talk about lines. line to the origin is c. You can easily The problem is that ax + by + c = 0, So I tried to make systems that represent- read these features out of the equation, which I’d thought was an enlightened ed lines with two floating-point numbers, and being a game developer, you’re way of representing a line, is not a line m and b. more likely to care about these things equation at all — and neither is y = mx But what happens when a line is ver- than the y-intercept. Though we now + b, for that matter. It’s a plane equa- tical? Its slope is undefined. In that situ- need three floating-point numbers to tion, and it only worked because lines ation, in high school, you’d just write talk about our line, a, b, and c, that and hyperplanes in 2D are the same x = k, which seemed simple enough. But extra number buys convenience and thing (where my temporary definition of with games, you have to think about software reliability. The software a hyperplane is “that which divides more complex situations, like lines that becomes more reliable because the pre- space into two halves”). are smoothly rotating from frame to cision of our computations is more There is an equation that works for frame. And you’re writing code that isotropic. In other words, it doesn’t all lines regardless of the space’s dimen- uses limited-precision numbers, so your matter so much what direction the line sion. It is L = p0 + vt, where L represents computations become numerically ill- goes in. the set of points comprising the line, p0 conditioned when the lines are steep, To sum up, my learning of y = mx + b is an arbitrary point known to lie on the because m is such a huge number. To fix this problem, you put a bunch of if JONATHAN BLOW I Jonathan is a game technology consult- statements into your code to change the ant living in San Francisco. Film that influenced this article: computation based on what neighbor- Mulholland Drive, the GREATEST FILM EVER. They can pretty hood the slope is in. That’s not desirable much stop making movies now. It’s time to work on games. Jon’s from a software engineering standpoint, e-mail address is [email protected]. and the computational discontinuities

18 february 2002 | game developer line, v is the direction vector that the LISTING 1. An example of how a singularity in mathematical representation affects code. line travels in, and t is the time parame- ter. When we get used to thinking about lines this way, we build up intuition that struct Line { is valid no matter how many dimensions float slope, y_intercept; // 'slope' == m, 'y_intercept' == b we’re dealing with. We say that this is bool is_vertical; // or else declare this, meaning the above are invalid the parametric form of the line, as vary- float x_value; // used only if the line is vertical. ing the parameter t will give you every }; point in L. If n is the dimensionality of bool intersect_with_vertical_line(Line *vertical, Line *non_vertical, float *x_result, your space, then this equation requires float *y_result) { 2n numbers’ worth of storage if you’re *x_result = vertical->x_value; being lackadaisical, or 2n – 1 if you’re *y_result = non_vertical->slope * vertical->x_value + non_vertical->y_intercept; being hardcore. return true; } Simultaneous Equations? bool intersect_nonvertical_lines(Line *line_1, Line *line_2, float *x_result, float *y_result) { o why is ax + by + etc. the equation // Hope this denominator is not small. S of a hyperplane and not a line? It’s *x_result = (line_2->slope - line_1->slope) / (line_2->y_intercept - line_1- because it takes n degrees of freedom (rep- >y_intercept); resented by the coordinate variables x, y, // Choice of line_1 below is arbitrary, hope we're well-conditioned. *y_result = line_1->slope * (*x_result) + line_1->y_intercept; . . . ) and, by binding them together with return true; the equal sign, places one constraint on } that system of variables. This linear con- straint removes one dimension; it flattens bool intersect_lines(Line *line_1, Line *line_2, float *x_result, float *y_result) { the space in the direction of the gradient if (line_1->is_vertical) { of the equation (this gradient is the same if (line_2->is_vertical) return false; thing as the normal of the hyperplane). return intersect_with_vertical_line(line_1, line_2, x_result, y_result); The resulting space has n – 1 dimensions: } in 2D, you get a line; in 3D, a plane; and in 4D, you get a 3D hyperplane. if (line_2->is_vertical) { Suppose we didn’t want to use the return intersect_with_vertical_line(line_2, line_1, x_result, y_result); parametric form for a line in n dimen- } sions. Instead, we could represent the line return intersect_nonvertical_lines(line_1, line_2, x_result, y_result); by starting with the full n-dimensional } space and squashing it n – 1 times, because n – (n – 1) is 1, the dimensionali- ty of a line. We can do this using n – 1 We then need to break out some some epsilon of 0, reduces the dimen- linear equations simultaneously. advanced linear algebra to deal with the sionality of the matrix and solves a Simultaneous linear equations are the situation. Naive game programmer code, reduced-dimension problem. But picking same thing as a matrix. So we’re storing just consisting of a big hand-derived vec- suitable epsilons is not easy, and numeri- an n by n – 1 matrix, which uses a lot of tor equation worked out on paper, will cal discontinuities are introduced by the storage space, and furthermore, it’s not end up dividing by 0 somewhere and if statement. guaranteed to behave nicely. Suppose two freaking out. More experienced program- All this should sound familiar from an of our equations try to squish the space mers might use a matrix equation, but engineering standpoint — it’s the kind of in the same direction. After the first black-box matrix methods get screwy thing we were doing with y = mx + b equation acts, there’s nothing left for the too; we end up with a situation where when the line became vertical, and all second one to do; so the second equation the determinant of a matrix is 0 and we the same problems arise. Cases of deter- doesn’t reduce the space by a dimension want to invert it. The matrix has no minant 0 are often called “degenerate,” (in fact, it leaves it unchanged). After all inverse. Badly written code tries to invert but I think they are quite natural and our n – 1 squashings, the remaining enti- it anyway, and thus produces inaccurate inability to deal with them indicates ty will have one more dimension than we results or NaNs. Better matrix code takes weak methodology. expected; instead of a line, it will be a stock of the situation with an if state- Imagine that you have three different 2D plane. ment and, if the determinant is within planes, all passing through the origin, www.gdmag.com 19 INNER PRODUCT

rotating freely in 3D. You want to find In 2D, rotations occur around a central improperly, in subtle ways. the intersection of those planes. Most of point, and maybe we think of a nonex- We are usually taught only about the the time, they intersect in a point; but if istent axis sticking out of the plane to cross product in 3D. But what is the two of the planes coincide, then all three help us visualize this. But a much more cross product in four dimensions and intersect in a line; and if all three coin- reasonable way to think of rotations is higher? Does the concept even make cide, the answer is a plane. to speak of the “plane of rotation” sense? Because two linearly independent To solve this intersection problem rather than the axis. In n dimensions, vectors determine a 2D plane, it is possi- using beginner’s linear algebra, we write any rotation occurs within a two-dimen- ble for us to interpret the results of the a matrix equation p = A–1d that finds the sional plane, and the object rotates cross product in n dimensions as the solution; but hard-coded into this equa- “around” however many dimensions are subspaces we were rotating around just tion is the assumption that the answer is left in the space. In 2D space, you rotate a few paragraphs ago: in 2D, the result a point. When the answer is not a point, around a zero-dimensional subspace, a is a scalar; in 3D, a vector; and in 4D, a A has determinant 0, so the equation is central point. In 3D, you rotate around 2D-planar thing. unsolvable. But what’s the big deal? a one-dimensional vector subspace. In Following this scheme, when we take Sometimes planes are coplanar, just like 4D, you rotate around a two-dimension- the cross product in 3D, we think of it as sometimes lines are vertical. Why should al planar subspace. (In 3D, the surface returning a vector result. Unfortunately, that be a problem? The problem goes normal of the plane of rotation is the this result is wrong, and we see this in a away when we stop treating matrices as axis vector we are used to thinking few places. A prominent symptom is that black boxes that we want to invert, and about. In higher dimensions, using this “surface normal vectors” can’t be trans- instead start decomposing them and definition of rotation, it’s no longer true formed in the same way that plain vanil- looking at their intrinsic properties. The that you can reproduce an arbitrary ori- la vectors can; if you are transforming QR and singular value decompositions entation with only one rotation.) vectors by some transformation T, you become useful to us at this point. I tend to think of rotation as “the thing need to transform normals by (Tt)–1. that binds together any two dimensions Beginning 3D programmers may not run Common of our space.” In 3D, we have three into this problem, because if T is just a Mathematical canonical planes of rotation: the xy plane, rotation, its inverse is equal to its trans- Misconceptions which binds things that leave x to enter- pose: (Tt)–1 = T. ing y, and likewise for yz and xz planes. This difference in transformations is started this article with the question of Any rotation occurs within a 2D plane necessary because the cross product is Ihow to represent a line. As 3D pro- that is a linear combination of these three weird. We are providing two vectors as grammers we get past these problems canonical planes. In 4D, there are six arguments of the cross product, and early on, if only because we can’t do such canonical planes. those vectors determine a 2-plane if they lines in 3D otherwise. About the varying David Hestenes (see For More Infor- are not colinear. But the cross product representations of a line, I want to devel- mation) uses a different terminology from implicitly returns to us the dual of that op an analogy: they are like other con- what I use here; he speaks of “simple plane, its normal vector. So we think cepts that we work with from day to day, rotations,” which occur within two we’re talking about a vector, but we’re rooted in the core of our thinking, that planes, and “arbitrary rotations,” which really talking about a plane through the are misleading in 3D and don’t even can reproduce any orientation in the origin. The plane occupies whichever two work in higher dimensions. I’ll now space. I find this terminology unappeal- dimensions its normal vector does not; describe the biggest ones, the axis of ing, since in some higher-dimension because of this, transformations can rotation and the cross product. spaces, such as 4D, a non-simple “rota- affect the plane in ways that we would tion” may have no eigenspace — that is, not see if we considered its normal vector The Axis of Rotation no “axis” of nonzero dimension around in isolation. which the rotation pivots. So I find it To ensure that we always pick the right hen learning 3D math, once we hard to visualize the thing he calls a transformation, we can say that the out- W get past the inconvenience of “rotation.” But your mileage may vary. put of the cross product is a thing called Euler angles, we find that all rotations a form, which one might think of as a can be represented by an axis vector, The Cross Product transposed vector. The form interacts about which we rotate, and an angle, with matrices in all the ways you’d expect representing the magnitude of the rota- he cross product is a fundamental a row vector to behave. Smart physicists tion. Perhaps we visualize a rotation as a T piece of 3D math that we use all the have been dealing with the differences wheel turning on an oriented axle. time. But we were taught incorrectly what between point-like and plane-like things The problem is that the whole concept the cross product is and how it works, for a long time; eventually someone of “axis of rotation” only works in 3D. with the result that we often use it invented Einstein index notation, which

20 february 2002 | game developer INNER PRODUCT

helps demystify things. Jim Blinn (see For this algorithm, which only takes mesh FOR MORE INFORMATION More Information) wrote two articles geometry into account, operates on 3D Blinn, Jim. Jim Blinn’s Corner: Dirty Pixels. that discuss the Einstein notation from a vectors; it uses 3D plane equations that Morgan Kaufmann, 1998. graphics programmer’s point of view. But are derived and evaluated using the this whole tensor algebra approach gets cross product and the dot product. But Dorst, Leo. “GABLE: A Matlab Geometric pretty complicated, so some new-school to take vertex color and texture coordi- Algebra Tutorial.” physicists are evangelizing Clifford alge- nates into account, we need to general- http://carol.wins.uva.nl/~leo/clifford/ bra (also known as geometric algebra) as ize the algorithm to higher dimensions. gable.html a method of simplification. We hit a wall when we try to move the Clifford algebra defines the “wedge algorithm to higher dimensions, because Garland, Michael, and Paul S. Heckbert. product” of two vectors in a way that is each face of our mesh imposes a two- “Simplifying Surfaces with Color and similar to the cross product, but it dimensional constraint on the quadric Texture Using Quadric Error Metrics.” returns a nonvector result; that result is error metric. When we’re in three dimen- Proceedings of IEEE Visualization, 1998. a plane-like thing called a bivector. You sions, this constraint can be represented http://graphics.cs.uiuc.edu/~garland can take the wedge product of a bivector as the hyperplane ax + by + cz + d = 0, and another vector to get a volumetric which we’re used to playing with. But Hestenes, David, and Garret Sobcyk. Clifford Algebra to Geometric Calculus: A Unified Language for Mathematics When we get used to thinking and Physics. Kluwer Academic Publishers, 1987.

about lines and planes parametrically, Hill, Jr., F. S. “The Pleasures of ‘Perp Dot’ Products,” in Graphics Gems IV, ed. we build up intuition that is valid Paul Heckbert. Academic Press, 1994.

no matter how many dimensions Lounesto, Pertti. “Clifford Algebras and Spinors.” London Mathematical Society we’re dealing with. Lecture Note Series #239. Cambridge University Press, 1997. trivector, and so on. The Clifford prod- when we go up to five dimensions (three uct of two vectors gives you a result con- spatial dimensions plus two texture coor- algorithm works no matter what dimen- taining both scalar and bivector parts; it dinates per vertex), we no longer have sion you deal with, and you never have to is the dot product and cross product all such a tidy hyperplane equation to repre- get confused or change your mode of wrapped together. This unification sent what’s going on. Each face of the thought. You also end up with a shorter enables us to do things that make life mesh defines a 2D plane, but now a 2D derivation than that used in the Garland- easier, like dividing an equation by a plane is just a small strand in the 5D Heckbert paper. vector or a plane. space, so we need to represent it paramet- So the traditional tools of 3D vector In some references, the 2D version of rically. This is exactly analogous to the math definitely hinder us in these kinds the cross product is called the “perp-dot way ax + by + c = 0 stopped working for of pursuits, and broader approaches can product” (see F. S. Hill’s Graphics Gem in lines when we jumped from 2D to 3D. help us. I must emphasize that Garland- For More Information). Pertti Lounesto’s Another way of looking at the prob- Heckbert is not an obscure algorithm; book describes higher-dimension cross lem is this: in 3D we usually get a plane it’s one of the best, simplest, and most products that are different from the one from two vectors by taking the cross widely used methods of performing I’ve mentioned here. product. But if we’re not conversant in mesh simplification. q advanced linear algebra, it is unclear how Why We Should Care to perform this process in 5D. So be sure to eat your multi-dimensional Wheaties. About N-Dimensional ACKNOWLEDGEMENTS Generality In their paper, when the time comes to elevate above three dimensions, Garland Thanks to Chris Hecker for redirecting the ecently, to generate levels of detail and Heckbert shift gears away from the overly negative energy that originally per- for humanoid character meshes, I hyperplane approach and re-derive their R meated this article concept, and for some was implementing Garland-Heckbert algorithm differently. But if you start with pointers regarding matrix decomposition. Quadric Error Simplification (see For an all-encompassing approach (such as More Information). The basic version of Clifford algebra) from the beginning, the

22 february 2002 | game developer hayden duvall ARTIST’S VIEW

Making Trees Work

ow many times as an the minimalist angularity of PONG and and all its flat friends under its huge, artist have you wished the harsh, blocky SPACE INVADERS behind polygonal feet. The irresistible bulk of an that you were working on us, heading for the world of graphical industry ready to move on, backed by TETRIS? Those small, col- beauty that glimmered on the horizon. the widespread availability of the hard- ored blocks, slotting Videogames slowly made the transition ware necessary to do the job at an Htogether — simple, Spartan, square. It from the symbolic, where the sports car affordable price, moved games and their in our racing game looked like it had graphics to the next level. been drawn by my three-year-old brother, And here we are. By the time I finish to the representational, where a Ferrari writing this article, there may well have had at least a passing resemblance to the been another wave of graphics cards vehicle it was portraying. Figure 1 shows released, capable of real-time volumetric three transformations videogame cars refraction with a dedicated subprocessor have gone through over the ages. specifically created to deal with dynamic Suddenly, games were no longer judged nasal hair deformation. By the time my simply on how much fun they were; they cup of coffee gets cold, the next genera- also had to look fantastic. Teenagers tion of consoles may well be on the shelf, across the globe found themselves hud- promising to draw things so fast that the dling together around a single copy of a only way to prevent your TV from melt- magazine they’d smuggled into school, ing is to immerse it periodically in liquid breathing heavily, and letting out the nitrogen. Today’s game players want occasional sigh of rapture. This time, more than a yellow circle with a mouth however, it wasn’t Marlena (21, enjoys being chased around a maze by ghosts. skiing and topless volleyball) stoking the They want their games to be set in a fires of their desire, it was a game. The world they can believe in. centerfold had stepped aside; the pinup Whether a game is trying to re-create a had given way to the pixel. location that is real or it takes place in a As with most things technological, the world of fantasy, more often than not increase in graphical quality continued to certain elements of the environment FIGURE 1. Formula 1 cars through the ages. grow exponentially. A palette of 256 col- occur in both. Rocks are usually rocks, ors soon became one of over 65,000. whether they’re on an ancient Egyptian may not be creative nirvana, but at least Screen resolutions grew and animation battlefield or in the lair of the mighty you know where you are with a square broke free from the confines of a simple demon Aarath’ak the Unhelpful. Whether — four sides, four corners; you can’t loop. And then 3D hit us. Like a stam- you find yourself snowboarding in the really go wrong. Other shapes are some- peding herd of hyperactive rhinoceroses, Rockies, or racing through the valleys of what less forgiving, and those that relate the 3D revolution trampled the sprite the planet Sprag-Thurman VIII, a tree to the real world are usually amongst the most awkward. HAYDEN DUVALL I Hayden started work in 1987, creating airbrushed artwork for the games industry. Over the next eight years, Those Were the Days Hayden continued as a freelance artist and lectured in psychology at Perth College in Scotland. Hayden now lives in Bristol, England, with s we rocketed out of the 1970s and his wife, Leah, and their four children, where he is lead artist at A through the 1980s, toward the 16- Confounding Factor. bit wonders of the early 1990s, we left www.gdmag.com 25 ARTIST’S VIEW

(excepting certain localizing factors) is As is often the case, some of the first roots are generally underground, but basically a tree. questions to ask have to be: What kind particularly with larger, older trees, of world are we building? Will players roots have a significant presence above I Hate Trees have full access to the whole landscape, ground. or will they be limited to certain prede- Trunk. This fairly straightforward cen- rom the outset, we have a few prob- fined areas? How much space will a tral mass of the tree typically starts fat, F lems when it comes to trees. First, level represent, and what percentage of ends thin. just like most things that nature creates this is likely to be exterior space? Will Branches. Mainly quite random, but for us, trees were never designed to be trees generally be used to beautify the some species, such as firs, have surprising- modeled economically in three dimen- background during bouts of tightly ly uniform (fractal) branching structures. sions. The whole branching concept is scripted action, or will they most likely Bark. There is enormous diversity be used to break the monotony of large, from species to species. open plains? Do trees have a more Leaves/needles. Again, these are important role within the gameplay? hugely diverse in shape, as well as rela- Will their placement be carefully inte- tive size, when compared to the parent grated with the level design as cover to plant. be used by players when they creep So that, more or less, is a tree. No around, stealthily to avoid detection by problem. Couldn’t be easier. Familiarity the enemy? Do they provide a hiding with the subject when trying to re-create FIGURE 2. Two different species of tree. place from which the Giant Spleen- it, whether in paint, plaster, or poly- Beast of Gaarg will charge at the end of gons, is bound to make the process easi- death to even the most robust polygon the level? er, isn’t it? Unfortunately, a faithful re- budget, and that’s before we get to the Obviously, approaching any element creation of something as complex as a leaves. Second, besides the fact that each of a game’s visuals in isolation from its tree will, by the time you’ve scattered specific species of tree is distinct from context is like painting a portrait over trees across your level, most likely have every other species, every single tree is the telephone. Chances are, you’re going your engine cowering in a corner, beg- always, in itself, unique. And finally, a to have to do it again. In this respect, ging for mercy. In this instance, as is tree is very rarely found in isolation; the items of primary concern are: Are often the case when considering graph- more often than not it will be in a group, the trees themselves likely to be under ics for a game, achieving realism will and these groups (clump, copse, woods, close scrutiny by the player? What level involve a certain element of stylization or forest), are going to be outside, which of detail will strike the best balance and a level of approximation that fits is usually quite a large place to fill. between quality and speed? within the restrictions of your particular Figure 2 shows the differences between It is entirely possible that your engine project. two different species of tree. is able to apply some form of dynamic There is a clever solution to this level-of-detail adaptation to geometry, Cheap and Cheerful problem: simply set your game in a sub- which gives you extra breathing space marine. There are no trees in sub- when it comes to limiting your model’s efore you create a single vertex, it is marines. Or how about space? A space complexity. However, regardless of what B helpful to divide the trees up into combat game will remove any need for hardware manufacturers around the two groups: generic, or filler trees, and trees. Just as long as you don’t land on world would have us believe, you and I those that will have a more prominent a deciduous planet, that is. However, both know that unless your engine place within a level, the feature trees (for chances are that neither of these scenar- draws its power from the Dark Prince want of a better name). A filler tree, as ios will fit with your current project, himself, economical design is what the name suggests, is most likely used in and so a strategy to deal with trees will we’re after. numbers to break up empty background definitely come in handy. space, and to create a more attractive, What Makes a Tree? detailed exterior. The feature tree is gen- Context erally the setting for some important efore we set about building one, it’s action, whether gameplay or cutscene, o begin with, it is worth looking at Bworth having a quick look at what and as such the player spends more time T how trees fit in with your game makes a tree. Chances are, you’re pretty looking at it. Because the feature tree is a design. This may seem like overkill, but familiar with the basic tree. Bear with more central part of any scene you are it will ultimately affect the choices you me, however, while I break it down into creating, its level of detail, while depend- make about the best way to approach a few basic elements: ent on engine limitations, is considerably building your trees. Roots. Depending on the species, higher than that of the filler tree.

26 february 2002 | game developer and the following are four methods that this method include the relative ease are worth considering. with which an alpha channel can be cre- ated, as well as the level of control the Hand Painting artist has over the exact positioning of the features within the texture. and painting is useful if your visu- Hals are adopting a particular style, Scanned Illustrations

ften overlooked as unsuitable FIGURE 3. Asymmetrical trees with rotation. Osource material, paintings and illus- trations of trees can be a very useful It is unlikely that you have either the starting point for textures. O.K., if you time or the resources to create a vast choose Van Gogh’s Poplars on a Hill array of individual trees that mimic their (Figure 4) as inspiration, you may find uniqueness in the real world. It is impor- yourself struggling to make use of his tant, then, to design your filler trees to mad wavy lines, but there are some work well as a set that can be distributed examples that are more friendly. Illustra- as well as possible to create the illusion tions of different tree species, found in of variety. Scale variations and rotation botanical encyclopedias for example, are (as long as the trees are not symmetrical) often highly detailed and accurate. The can be mixed with vertex coloring as advantage of this kind of image is that well as light and shadow variations lighting is often very diffuse, without the across a landscape to increase the appar- hard shadows that can make photo- ent number of different trees that have graphs unusable. Also, the foliage is gen- been created. Figure 3 shows three asym- erally on a white background, which metrical trees with rotation. makes it easier to separate out than a Once you’ve chosen your basic species busy photo. of tree (and here I mean, fir, palm, decid- uous, and such, not Chamaecyparis law- Photographs sonia), you can create the object that will form the trunk. For a filler tree, this scanned or digital photo is easily should have as simple a shape as possible A the most common source of tex- (a triangular cross-section should be per- tures, and perhaps the most difficult fectly adequate in most cases), with the part of the process of turning a photo number of branches kept to a minimum into a useful foliage texture (see Figure and no secondary branches needed. Most FIGURE 4. Van Gogh’s unhelpful poplars. 5) is generating an alpha channel. A of the work for this kind of tree can be solid mass of leaves will be of limited done in texture. Detailed branch and leaf and it’s especially worth considering if effect when trying to give the impression structures can only be represented eco- you plan to work at a resolution of 128 of complex branching, and so it is nomically in texture, and this is especial- dpi or lower. You can create leaves and important to use transparency within ly true in the case of the filler tree. branches in most decent paint packages the texture to create the shapes that are Foliage

he extreme economy of the past, with T two crossed polygons displaying a complete tree in texture, may be some way behind us. However, using a combi- nation of solid geometry for the trunk and major branches and some crossed FIGURE 5. Photo to texture (stages one through four, from left to right). planes representing the foliage can pro- vide an adequate compromise. and use features such as cloning and far too costly to build into the geometry. Creating a useful texture for this part image hoses to distribute elements such Supposing you have a fairly standard of the tree is of particular importance, as leaves in a variety of ways. Benefits of photo of a leafy canopy, the question www.gdmag.com 27 ARTIST’S VIEW

then becomes how best to select only In the end, finding the best way to the areas that are to be left visible, so make trees is a bit like finding the best that the others can be masked out. I way to bake bread. There are a million may be wrong, but Photoshop doesn’t different recipes. Clever use of texture, yet come with a “choose a good selec- coupled with economical modeling, can be tion of leaves” tool. The problem is that the best compromise between detail and most selection methods can’t discrimi- practicality, and while the process may be nate between the leaves and branches awkward, getting the right result is cer- FIGURE 6. Render plus alpha channel equals that you want to keep and those which tainly well worth the effort. q texture. will leave the texture too cluttered. Unfortunately, as with so many things in life, for a completely satisfy- ing result, you’ll have to do the job yourself. Selecting by color and altering the fuzziness, or creating a threshold layer and adjusting the levels, may pro- vide a rough starting point for selec- tion. Still, you’ll have to refine these characteristics manually. Rendered Images

useful addition to the essentially A two-dimensional source material mentioned thus far is the rendered tree. Most major packages have a selection of tree-generating programs with names like “Tree Master Plus” and “Auto Foliage 500.” While each is dif- ferent, they all produce similar results that are too detailed to be used as in- game geometry but can be extremely useful for creating textures. Perhaps the most appealing aspect of this approach is the automatic generation of an alpha channel when the image is rendered, which both saves time and increases accuracy (see Figure 6). Whichever method you use to create the textures, assembling the geometry on which they will be mapped in order to create the appearance of a tree’s canopy must be done carefully and take into consideration the way in which the trees will be encountered. If, for instance, the trees will be viewed from beneath, the orientation of the geometry containing the branch and leaf textures needs to take this into account. The same holds true for the trunk geometry; extra detail can be worthwhile around the lower trunk and root region if players are likely to spend their time in this area.

28 february 2002 | game developer MEMORY MANAGEMENT brian hixon, daniel martin,

Play by Play: Effective Memory Management

ack before Al Gore for machines. The same BRIAN HIXON | Brian has a B.S. in invented the Internet, principles would apply to C++ and math/computer science from Carnegie back when 64KB was Windows programming, but the details Mellon University. After losing his mind more memory than any are likely different. from playing too many computer games, computer would ever Tiburon took pity on him and gave him a need, there was a time when memory job in 1998. Brian is a lead programmer for B Growing Your Own managers didn’t exist. But gradually, new MADDEN PS2, Gamecube, and Xbox. computer systems came out with larger o you know that memory managers DANIEL MARTIN | Daniel has a B.S. amounts of memory (Figure 1). Game are great, but what’s wrong with just and an M.S. in computer sciences. After wast- S designers discovered ways to eat up RAM using malloc and free? They are part of ing years of his life outside the gaming indus- faster than any system could dish it out. the standard C library, so they should be try, he saw the light and joined Tiburon in It became obvious that managing all this the best, right? One major problem is 1998. Today, Daniel is a lead programmer data with a simple static memory map that you don’t really know what they are for MADDEN PS2, Gamecube, and Xbox. was too much work. Programmers need- doing. If you write your own memory ROB MOORE | Rob has a B.S. in elec- ed a way to create memory maps that manager, you can generate statistics, add trical engineering. After working on graph- could change dynamically at run time debug code, and add advanced features ics chips and APIs for the and depending on the state of the program. that might not be found in the default Gamecube, Rob decided to see why game Thus, the memory manager was born. memory manager — features like han- developers were always griping at hardware For an excellent introduction to how a dles, heap compaction, and virtual mem- guys. He joined Tiburon in 2000 and now basic memory manager works, check out ory. The ultimate weapon of game pro- it all makes sense; currently he is Tiburon’s www.memorymanagement.org/articles/ grammers is context. You know the chief technical officer. Send comments on begin.html. This article will assume this needs of your game and can tailor the this article to [email protected] basic knowledge and focus instead on memory manager accordingly. GREG SCHAEFER | Greg has a B.S. things to think about when writing your Developing a successful memory manag- and an M.S. in computer science. Greg own memory manager and point out er requires addressing five different issues: spent many years working on telecommuni- some of the problems you may ease of use, performance, memory over- cation and network applications prior to encounter in using a memory manager. head, fragmentation control, and debug- joining Tiburon in 1998. He now leads This discussion is based on our experi- ging support. Unfortunately, these attrib- MADDEN PC network development. ences in writing and rewriting the mem- utes are all interconnected, and optimizing RICHARD WIFALL | Richard has a ory manager for MADDEN NFL 97 to one can result in substandard results for B.S. in electrical engineering. He got started MADDEN NFL 2002. This article is also another. The memory manager designer in the game industry on 16-bit consoles. slanted toward the C language as written must govern a delicate balancing act.

30 february 2002 | game developer rob moore, greg schaefer, and richard wifall

At a lower level, memory manager were the easiest solution. Therefore, we next fit. By organizing the free blocks as design also requires paying attention to simplified the latest MADDEN memory a linked list, best fit has consistent O(n) platform-specific requirements. In addi- manager by removing handle support performance, while first fit and next fit tion, it may be possible to utilize hardware and optimizing the pointer support. have worst-case O(n) and on average support to assist the memory manager. O(n/2). By organizing the free blocks as Performance a size-sorted binary tree, best fit has Ease of Use worst-case O(n) and on average O(n log erformance must be addressed both n). By organizing the free blocks as a ith respect to a memory manager, P in terms of speed and consistency. A balanced binary tree, best fit has consis- W the ease of use consideration memory manager that is fast most of the tent O(n log n). Garbage collection really comes down to a single question: time but slows down dramatically at applies only to memory managers with Should the memory manager support unpredictable times is unacceptable in a handle support, and generally involves a pointers, handles, or both? When design- gaming environment. Therefore it is fairly significant performance penalty ing a memory manager and dealing with important to understand the issues that when it occurs, as it essentially makes a the problem of fragmentation, the use of contribute to performance. From the copy of the entire memory heap during handles can be very appealing. Unfortu- memory manager user’s point of view, compaction. nately, while handles provide a straight- two operations forward solution to the fragmentation will impact the problem, they are much more difficult to game: allocations use than pointers. A memory manager and recycling. that supports only handles is essentially Allocation pushing its internal complexity back onto performance is the user. determined by While supporting both handles and allocation poli- pointers is possible, the resulting memory cy, free list man- manager is more complicated than one agement, and that supports a single method. MADDEN the use of gar- used to support both handles and point- bage collection. ers until an analysis showed that pointers The most popu- were being used 99 percent of the time. lar allocation Not surprisingly, when given a choice, policies are best programmers used pointers, since they fit, first fit, and FIGURE 1. Main memory growth for console game machines. www.gdmag.com 31 MEMORY MANAGEMENT

managed. If it is stored externally, you Fragmentation Control STATIC vs. DYNAMIC MEMORY must know the maximum allocated and free blocks in advance and set aside emory fragmentation is a condition STATIC MEMORY memory for this state, but address spaces M that occurs over time as memory is Pros. Fast that are not directly CPU-addressable can allocated and released and isolated free Cons. Difficult to maintain be managed. blocks form. This is not usually an imme- Memory can’t be easily reused MADDEN previously used external stor- diate problem, but as more fragments age for the memory state, but this form and they get smaller, the opportunity DYNAMIC MEMORY required additional overhead because it for an allocation failure due to fragmenta- Pros. Objects can be designed to only use was impossible to predict accurately the tion increases. Eventually, if fragmentation memory resources when the object maximum number of allocated and free gets severe enough, an allocation may fail exists blocks. We had to include a “safety fac- because no single free block is large Can support higher level concepts tor,” which turned directly into wasted enough to accommodate the request even like virtual memory memory. The new memory manager uses though the total amount of free memory Easier to support threads internal storage as shown in Figure 2, is (Figure 3). Therefore, a good memory Cons. Fragmentation thus avoiding the entire issue. All alloca- manager needs to either take steps to limit Additional overhead tions are 16-byte aligned and each block the amount of fragmentation that occurs has 16-byte overhead. By limiting alloca- or be able to consolidate fragmentation tions to a minimum of 16 bytes, every periodically through garbage collection. Recycling performance is based on free block is guaranteed to have this much An allocation failure is often a lethal list management and the use of free block storage available. Therefore, when an error for game code and must be avoided coalescing. Free block coalescing requires allocated block is released, those 16 bytes at all costs. While it is generally fairly the ability to locate the blocks immediate- can be used to organize the block into easy to determine the maximum memory ly preceding and following any arbitrary the free list. required by an application, fragmenta- block. Some memory structures, such as It is worthwhile to digress slightly and tion can make such a calculation mean- boundary tag (see Donald Knuth’s consider the management of non-CPU- ingless. Allocation policy, free block coa- Fundamental Algorithms under Refer- addressable memory. Because consoles lescing and multiple heaps all play a part ences for more information on the bound- are designed for low cost and high per- in minimizing fragmentation. ary tag), allow this in O(1) time, while formance, they sometimes incorporate Free memory coalescing is a straight- those that don’t require an O(n) scan of special-purpose memory that is not forward technique for limiting fragmenta- the free block list. The current MADDEN directly CPU-addressable. For example, tion that attempts to merge a newly memory manager uses boundary tags to the Gamecube has 16MB of auxiliary released memory block with its neighbors. allow O(1) access to previous/subsequent memory (ARAM) that supports only If the block immediately preceding or fol- blocks and organizes the free list as an DMA access. A memory manager that lowing the newly released block is also unbalanced binary tree. The result is allo- stores its state internal to the memory it free, merging the blocks together results in cation and recycling performance both in is managing cannot be used in such a single, larger free block. This particular the O(n log n) to O(n) range. cases, while a memory manager that technique is almost mandatory, as without stores its state externally can. it, fragmentation occurs very quickly. In Memory Overhead While it may seem appealing to use addition, this limits the size of the free list external state storage in order to support to the minimum number of blocks, which emory overhead is the cost we all kinds of memory, our experience with generally has a positive performance M have to pay to manage memory, MADDEN has shown this to be a mistake. impact on allocation. Since this technique since each allocation will cost some Memory that is not directly CPU- has no impact on how the memory man- memory. Memory overhead is an impor- addressable is normally used only for ager is used externally, it is incorporated tant consideration, especially if the mem- special types of objects, due to the com- into most memory manager designs. ory manager will be handling a large plexity of using the memory, and often The choice of allocation algorithm has number of objects. The first decision is contains only a small number of objects. a definite impact on fragmentation. whether the memory map state should be Therefore, MADDEN now uses a single, Unfortunately, because the size and timing stored internally or externally to the general-purpose internal storage memory of allocations and releases vary for every memory being managed. If it is stored manager for all CPU-addressable memo- application and are often different from internally, then the maximum number of ry and an additional, customized exter- run to run of an application, it is impossi- allocated blocks does not need to be nal storage memory manager for any ble to say that a particular algorithm is known in advance, but memory that is special-purpose case, such as the always better or worse than another. not directly CPU-addressable cannot be Gamecube’s ARAM. However, in general, it has been found

32 february 2002 | game developer that “best fit” algorithms tend to exhibit though there are generally practical limi- prior to every allocation and release (in a the least fragmentation. See Johnstone and tations on the number of heaps that can debug build), certain forms of memory Wilson’s “The Memory Fragmentation be effectively utilized. corruption can be detected quickly. Problem: Solved?” in References for more Also, the memory map contains ASCII information on the impact of allocation Debugging Support debugging information that can be viewed techniques on fragmentation. from within the debugger. Prefixing every A technique that requires more ne of the main benefits of writing a allocated block with a text string indicat- involvement from the memory manager O memory manager is the ability to ing the module and line number of the user is to allocate blocks with similar add capabilities that are not provided in caller that allocated the memory greatly lifetimes close to each other. If the life- the supplied memory manager. By adding assists when debugging after a crash. time of a memory block is known when some debugging features you can make Naming the memory blocks is a neces- it is being allocated, the allocation algo- sure that you are managing the memory sity. Imagine going to a store where every rithm can attempt to place it by other rather than stepping in the heap. item was in a plain box that only had its blocks with a similar lifetime. When To avoid stepping in the heap, you’ll UPC code and box size printed on it. these blocks are released, they will be need to be able to see the heap. Adding Finding the item you wanted to buy merged into a single large free block. information and tools to help visualize would be a big challenge. Likewise, if you The problem is that this requires the memory usage can be a big help when have a list of memory blocks that only caller to specify both the lifetime of each managing memory. This can be done in a contains their address and size, locating block as well as the total size of the number of ways. memory blocks is going to be difficult group of blocks of similar lifetime. As a The debugging techniques used by the unless you give those memory blocks result, a simpler version of this tech- MADDEN memory manager include the names. Using the source file name and line nique is usually implemented through ability to audit memory usage, collect number where the allocation occurred the use of multiple heaps. By allocating usage statistics, check for consistency, would be a good start. In C, this can be blocks with similar lifetimes within their and follow the memory map from a accomplished quite easily through the use own heap, a similar effect is achieved, debugger. Auditing is really nothing more of macros and the C preprocessor. than being able to mark a group of Now you can recognize your blocks in –12: header pointer blocks when they are allocated and later a crowd, but it sure would be nice to –8: type (head) check to see if they were all released. know who they hang out with. By –4: data length Usage statistics, such as maximum num- adding a group label or flags, you can 0: header data +n: data length ber of allocated and free blocks, as well group your allocations at the conceptual as maximum allocated memory, are valu- level rather than being limited to group- –12: header pointer able for evaluating the memory utiliza- ing your blocks by source file. This way –8: type (used/free) tion of the application. you can know that a memory block that –4: data length Consistency checking goes through the was allocated is really being used by your 0: user data memory map and makes sure there are no main character, even though the actual +n: data length detectable errors in it. This means verify- memory allocation occurred in your tex- –12: header pointer ing block sizes, checking boundary tags, ture library. –8: type (used/free) ensuring matching block counts, and so Figure 4 shows an example memory –4: data length on. By performing consistency checking dump as seen by a (slightly drunk) 0: user data debugger. Including debugging informa- +n: data length 256 used bytes tion in textual form within the memory ... map allows you can make sense of it 32 free bytes from the debugger. For example, if you –12: header pointer 512 used bytes had an invalid address access at –8: type (used/free) 0x007cfea4, you could find that address in 64 free bytes –4: data length the debugger and page around it to see 0: user data 96 used byte that it occurred in the Joystick Driver +n: data length library and that the memory in question 80 used bytes –12: header pointer was allocated by pJoyDrvr.c at line 225. –8: type (tail) 32 free bytes With all this information available, –4: data length (0) you will need to find ways to view that 0: data length (0) FIGURE 3. Although 128 free bytes are information that can help you when available, the largest possible allocation is managing your game. A linear list of FIGURE 2. Memory structure image. only 64 bytes due to fragmentation. memory blocks can be useful for spotting www.gdmag.com 33 MEMORY MANAGEMENT

potential memory fragmentation, while a Filling memory with recognizable pat- Most console hardware has alignment list of memory blocks sorted by name can terns can be extremely useful. We use a requirements that, not so surprisingly, dif- be useful when you have memory leaks. different pattern for unallocated, allocat- fer from platform to platform. Many plat- If you do find a memory block that has ed, and freed memory. This way, we can forms require anywhere from 4- to 64- leaked, you will know from its name tell in the debugger at a glance what the byte alignment for buffers in graphics ren- exactly where the allocation occurred. With situation of a particular piece of memory dering or file IO. Each type of hardware group labels you can print out compact is. When someone forgets to initialize might need the memory manager to be memory maps that show how each con- memory they allocated properly, the tweaked to better fit the needs and abili- ceptual module in your code is using “allocated” pattern shows up. ties of the platform. Often this informa- resources. By tracking this throughout the You can also have functions that scan tion can be passed to the memory manag- project, you can easily spot modules that free/unallocated memory and make sure er using a heap setup structure. are using more or less memory than you that it all still matches the prespecified Finally, you should be wary of third- had budgeted in your original design. patterns. If it doesn’t match, some code party libraries that may use malloc and You can also create functions to out there is incorrectly writing to free, effectively bypassing your memory check whether groups of memory allo- memory locations that it doesn’t own. manager’s interface. The printf function cations have been freed. This can help Finally, make sure that you set up an in the PS2 standard C library uses malloc prevent memory leaks if you know that extra heap for debug memory and put and free; our solution was to write our in certain situations some groups have all this extra debug information there. own printf function. no allocations. You want your game memory to be as Keeping track of worst-case situations similar as possible between a debug and Hardware Support is also important. Have the memory final build. manager save the lowest amount of free n most modern computers, the issue memory it has ever encountered (update Platform Specifics O of fragmentation has been greatly this every time an allocation occurs). If reduced by the use of a hardware-based you are using some sort of node system memory manager presents a logical paged memory manager unit (PMMU). to keep track of your memory blocks, A view of memory in the same way Obviously, the fact that virtual memory keep track of the highest number of that a file system provides a logical view provides an application with lots of nodes that the memory manager has ever of a disk drive. Most often, memory addressable memory means that even an used so that you know if you are close to managers are concerned with managing inefficient memory manager can be used. running out of memory blocks. dynamic RAM of some sort. Some con- However, the more interesting point is Sentinels added to the beginning and sole makers like to make things more that the PMMU without any secondary end of memory allocations can help interesting by providing a relatively large storage can dramatically help with frag- detect overflow situations that would main memory but also scattering other mentation. The PMMU takes a very large normally corrupt other data in memory. smaller chunks of RAM around the system. address space (larger than the physical If the sentinels don’t check correctly The memory manager allows us to RAM it represents) and maps it onto when the memory is freed, then some abstract away the physical details of the physical memory. Obviously, this map- code has been bad. memory subsystem and deal instead with a ping is not one-to-one, but rather it maps nice, logical model of a subset of the memory space onto a memory. For exam- “working set” of memory pages. ple, on the PS2 we The key impact of using a PMMU in don’t necessarily terms of fragmentation is that when a need to know that memory block is released, any portion of the first megabyte of that block completely spanning one or RAM is reserved for more PMMU pages can be remapped by the operating system. the PMMU. The result is actually two It’s enough that the forms of fragmentation: address-space memory manager fragmentation and memory fragmenta- knows. By abstract- tion. While this effect might seem to ing away some of the make a bad problem worse, it actually details of the physi- simplifies things. Because the PMMU cal memory system, provides a large address space, the our game can address-space fragmentation can be FIGURE 4. Memory blocks with debug information as viewed in the become more plat- largely ignored. Instead, the allocation debugger. form independent. algorithm concentrates on minimizing

34 february 2002 | game developer memory fragmentation by first attempt- of course, a caveat. Depending on the memory. If the game does run out, it will ing to utilize the unused portions of allo- amount of fragmentation and the size of crash and optionally dump some memo- cated memory pages (pages that contain X * Y, it is possible that the application ry info. With a special build, we display some allocation but are not completely could find itself in the situation where an some partial information about the full) before remapping unused memory allocation of X * Y fails due to fragmen- memory manager and the game state so pages back into memory. tation, whereas X allocations of Y would that we can determine if it ran out of have succeeded. We also try to discour- memory because of fragmentation or Managing Your Memory age this practice when possible, as there other reasons. Manager is code-maintenance overhead. One way to help avoid memory frag- Getting on the Field emory managers are like most real- mentation is to always free memory in M life managers. You have to keep the opposite order from which it was hen talking about memory man- them under control, or else they tend to allocated. In fact, if you were always able W agement, programmers often wander off without adequate information to allocate and release in such an order, resort to words more often associated and make strange decisions. Your memo- you would never have memory fragmen- with cow pastures than games. Terms ry manager sometimes needs your help to tation. Realistically, it’s not possible to like heaps, stacks, and chunks are stay on the right track too. Let’s look at follow this practice all the time, but thrown around like flies buzzing around some common problems that can occur doing it as much as possible will help. you-know-what. To see how important a and how to work around them. Memory fragmentation is going to memory manager is to a game, you have Fragged again. One of the major side occur, and at some point you will proba- to get past the abstract poo. A good effects of hand grenades and memory bly run into a situation where it causes a memory manager allows you to have managers is fragmentation. Previously, problem in your game. You might more animations, more characters, more we discussed fragmentation in the con- have fragmentation that is occurring in textures, more sounds — in short, more text of designing the memory manager to one part of your game that is causing a of everything that your game-playing avoid or reduce the effects of fragmenta- memory allocation to fail in a totally customers love. tion. However, there are also some appli- unrelated area. Fragmentation might even In this article we have described some cation-level techniques that can reduce manifest itself as a situation where your of the issues that may come up in writing fragmentation. game will fail only when arriving at part and using your own memory manager. The use of static allocation (memory of your game through a specific path (that After years of writing and rewriting defined within a module with storage allo- causes the fragmentation). If you don’t memory managers for the MADDEN cated within the application image) avoids have some advanced form of garbage col- series, one piece of advice that bears the memory manager completely and thus lection, you are going to have to use other, highlighting is simply to make sure you avoids fragmentation. Of course, this more crude methods to limit this problem. schedule adequate design time on this usage really only makes sense when a sin- One possibility is to change the code very important piece of your system; gle object will be represented and when that is causing the fragmentation to use a you’ll be glad you did. q the lifetime of that object is approximately different allocator so that it doesn’t cause the duration of the entire application. In fragmentation. A common way to accom- REFERENCES such cases, static allocation can provide a plish this is to have an allocator that allo- The Memory Management Reference benefit by limiting utilization of the cates from the other end of memory. Beginner’s Guide: dynamic memory manager to those mem- Depending on your game, fragmentation www.memorymanagement.org/ ory objects that are truly dynamic. can become more problematic over time articles/begin.html Another strategy that relies entirely on (especially if your allocations don’t have Johnstone, Mark S., and Paul R. Wilson. the memory manager user is to perform close locality of lifespan). You can use “The Memory Fragmentation Problem: submanagement of memory based on brute force to minimize these effects, such Solved?” In Proceedings of the specific program knowledge. For exam- as shutting down and restarting code International Symposium on Memory ple, if a module knows that it needs to modules between levels as a brute-force Management. ACM Press, 1998. pp. allocate X objects of size Y, it may be far garbage collection technique. 26–36. www.cs.utexas.edu/users/ more efficient for the user to allocate a Release builds. When running a wilson/papers/fragsolved.pdf single block of X * Y bytes and perform release build, there isn’t any debugging Knuth, Donald E. The Art of Computer its own management within that larger information in the game, as it will con- Programming, vol. 1, Fundamental block. By reducing the number of blocks sume extra memory. But you still need a Algorithms. Reading, Mass.: Addison- that the memory manager has to deal way to know where the game runs out Wesley, 1973. pp. 435–444. with, the user has generally made the job of memory. For MADDEN, we assume in of the memory manager easier. There is, the code that we will never run out of www.gdmag.com 35 USING SYMBOLS david freeman

Four Ways to Use Symbols to Add Emotional Depth to Games

AX PAYNE. ELITE But first, let’s look at some of the funda- are working hard to advance emotion in FORCE. THIEF. ICO. mental issues relating to the role of emo- gaming. Those creating games with sto- DEUX EX. ODDWORLD. tion in games. ries and characters without investing in MEDAL OF HONOR. putting emotional depth into their games BALDUR’S GATE. The Why Put Emotion into will find themselves further and further Mmore recent FINAL FANTASY games. More Game Stories? behind, and their games will be eclipsed. and more developers are pushing the And, the better game visuals get and the game design envelope, forging new enter- his is an important discussion, and more games look like films, the more tainment experiences and art forms that T probably one that deserves its own people will want to compare them to draw on the roots of traditional gaming, article. But, in a nutshell, other than the films. Thus, weak writing and shallow but also partake of more sophisticated inherent joys of creating a rich work of emotional experiences in games featuring storytelling and characterization. art, the reasons also boil down to poten- stories and characters will increasingly As the production values in games tial profits. stand out negatively in consumers’ minds. continue to soar, the trend toward equiv- First of all, many more people watch Many of the challenges that designers alent advancement in storytelling is film and television than play games. Most face in creating emotionally rich game inevitable. For game designers involved will never be lured into playing games experiences have already been addressed in creating each successive advancement, until games begin to offer the emotional in other media. Traditional screenwriters, these are exciting times. range and depth of the entertainment that deprived of the game designer’s ability to Remember in Braveheart when Mel they’re used to enjoying. Also, a more actually insert an audience into a film, Gibson charged into battle holding a involving game experience means better have figured out perhaps thousands of handkerchief his wife gave him before word of mouth and more buzz. The press ways to induce emotional involvement. she was murdered? That handkerchief is likes to write about these kinds of games, Game designers will want to test the a symbol. This article will explore four which results in more sales. Seeking out applicability of these techniques to their different ways to use symbols to evoke better profits also means staying ahead of new games and modify them so they’ll emotional response from an audience. the competition. Certain game developers work within an interactive experience. A big part of successful communica- DAVID FREEMAN | David contributed to the script for THE MATRIX sequel game tion between a writer and his or her (in production at Shiny Entertainment). As a writer and producer, David has had scripts audience is writing outside of the audi- and ideas bought or optioned by MGM, Paramount, Columbia Pictures, Castle Rock, and ence’s conscious awareness. No one many other film and television companies. David teaches “Beyond Structure” expects the game player to pick out every (www.beyondstructure.com), a popular Los Angeles–based screenwriting class, which has sound used in a game’s sound design, nor been taken by writers from many top films and television shows, as well as by many well- every instrument utilized in a piece of known game designers. He welcomes your thoughts on this article at music, nor every tiny shadow. So too, an [email protected]. extraordinary amount of what a writer

36 february 2002 | game developer Illustration by Ben Fishman does is designed to affect a game player that, with very little effort, you can easily Symbol Type #1: emotionally but not be consciously and precisely enhance the depth of your Symbol of a Character’s noticed. This article will focus on the use scenes and plots. Condition or Change in of symbols, which are almost always When you create a symbol, you’re not Condition employed in a way so that they’re just on trying to create an intellectual puzzle in the edge, or preferably just outside, of a which the player tries to figure out what his use of symbols is what I call a game player’s conscious awareness. A the symbol means. Such an intellectual T scene-deepening technique, because workable rule of thumb is that no more exercise would work directly against the you use it in a specific scene and might than 25 percent of the players who come goal of increasing emotional immersion. never use the same symbol again. Its use upon a symbol should be consciously Instead, symbols, when employed artful- can be either visual or verbal, meaning aware that it actually is a symbol. ly, should evoke emotions — even that there must be either something The five arenas of “deepening.” I use the though, when you do your work well, visual on screen or something said by phrase “deepening techniques” to most players won’t consciously notice the one of the characters that reflects what describe all those writing techniques that symbols that you use. It’s not necessary an on-screen character is going through impart a sense of depth to a piece of dia- for a game player to notice a symbol in emotionally. logue, a character, a relationship between order to be emotionally affected by it. Example #1: Visual. In a particular two or more characters, a scene, or a It’s certainly O.K. that a small percent- episode of Star Trek: Voyager, Captain plot. Other words that mean something age of players who consciously notice Janeway (Kate Mulgrew) finds herself in similar to deepening include poignancy, your symbol might stop and think about an extended battle with the captain of a soulfulness, layers, and emotional or psy- the symbol’s meaning or meanings. But rogue Federation ship. The captain and chological complexity. When people talk it’s only acceptable if, at the same time, crew of that ship are killing harmless about these things, they’re talking about the symbol generates in those players an aliens in order to use the chemicals in the what I call emotional deepening. Symbols emotional experience as well. Following aliens’ bodies to propel their ship. But are always a deepening tool. the guidelines in this article will help Janeway herself becomes so obsessed One game designer who has taken some ensure that this is what the player actu- with stopping the rogue captain at any of my story and writing workshops point- ally experiences. cost that she crosses the bounds of ethics ed out that to focus on more subtle or Another advantage to using symbols in and good judgment and imperils her sophisticated techniques such as the use of game design is that games often offer an crew. This conflict generates a series of symbols is putting the cart before the opportunity that films do not. In film, arguments with Chakotay (Robert horse. Many game designers might benefit symbols, when used artfully, enhance Beltran), her first officer. from learning more basic techniques for emotional depth. As we’ll see, when used A metal plaque with the words creating rich, complex, and compelling in games, symbols can not only perform “U.S.S. Voyager” falls off of Voyager’s characters and natural dialogue. This is this function, but can also be used or bulkhead during the battle with the true. But one nice thing about symbols is given a function in gameplay as well. rogue ship. This plaque is a symbol that www.gdmag.com 37 USING SYMBOLS

the spiritual core of Voyager — includ- ing the moral codes of the Federation, the Starfleet tradition of honor and humanity, and the moral center of the people who uphold these codes and tra- ditions — has been damaged. It’s a sym- bol of Janeway’s and Chakotay’s condi- tions or changes in condition. The plaque falling off of the bulkhead affects us emotionally. If viewers make only an intellectual connection between the plaque and the abandoned Feder- ation values, then the writer hasn’t been artful enough in his or her creation of the symbol. Example #2: Visual. The 1957 war film Bridge on the River Kwai won many Academy Awards and still stands up as a masterpiece. Alec Guinness plays Colonel Nicholson, who commands a group of British soldiers captured by the Japanese and forced to work as slaves in a POW camp in Burma. I won’t reiterate the con- In Sony’s ICO, the main character’s quest to save a beautiful girl with mystical powers contains voluted plot, but in short, due to his ego, symbols that engage the player’s emotions and affect gameplay. Nicholson has his men help the Japanese build a strong and beautiful bridge. In As was the case with the Voyager with Ricky a few nights earlier. Ricky effect, he has helped the enemy. But, near example, most people in the audience pulls out a bag of dope and explains that the end of the film, during a battle at the wouldn’t consciously notice this element. it’s “. . . top of the line. It’s called G-13. bridge, he has a powerful revelation, and And yet it would still contribute to the Genetically engineered by the U.S. gov- says, “What have I done?” depth of the audience’s emotional experi- ernment. Extremely potent. But a com- At that exact moment, he reaches up ence. It’s a strange moment for a writer pletely mellow high, no paranoia.” and touches his commander’s cap. This is when he or she realizes that a great deal LESTER: “Is this what we smoked last a symbol of the character’s condition or of writing involves trying to create emo- night?” change of condition. His touching the tional effects that no one will consciously RICKY: “This is all I ever smoke.” cap is a symbol of his changing back to perceive, perhaps ever. Why is this a verbal symbol of a char- becoming what he once was — an hon- Example #3: Verbal. Perhaps you saw acter’s condition or change of condition? orable British soldier. the provocative film American Beauty, in Because Ricky, unknowingly, has just An explosion goes off nearby that which Wes Bentley plays Ricky Fitts, a described himself. Ricky had been a pas- knocks him to the ground, wounded by teen without fear of social pressures, who sionate young man, until his father, as shrapnel. When he stands up, his cap lies has an honest appreciation for the beauty punishment, had him committed to a on the ground, but he’s too dazed to all around him. He seems, in some ways, mental institution for two years, where notice immediately. He reaches for the to be enlightened. he was heavily drugged. This experience top of his head and realizes that the cap Contradicting his supposed enlighten- broke his spirit. So Ricky himself has is gone. He then bends down and picks it ment is the fact that he sells drugs, is been government-engineered, and his up off the ground. His reaching toward completely emotionally detached, and is fake serenity (his mask) is that of a his head for the cap, and then his picking fascinated by death. In fact, his veneer of “completely mellow high.” But like all it up off the ground, again is the same serenity is what I call a “mask,” or a chemical highs, the effects aren’t real. kind of symbol, signifying that he’s false front. (Masks, in all their various Example #4: Verbal. Sometimes, in the become the honorable man he once was. forms, are very sophisticated character- television business, you need to write a He puts his conversion into immediate deepening techniques.) sample script just to show that you can action. As he dies from the shrapnel At a certain point in the film, Lester adapt your writing style to different wound, he directs his fall onto a dyna- Burnham (Kevin Spacey) drops in on shows. I recently wrote a sample X-Files mite detonator, which in turn blows up Ricky to buy some dope — in particular script. In the story, Mulder no longer fits the bridge he had so painstakingly built. the really potent stuff that he’d smoked in professionally with Scully and

38 february 2002 | game developer Doggett. He had always been driven in Hypothetical game example #1. Let’s FLBW. If you pointed it out, the charac- his paranormal quests by the search for say we have a sword-and-sorcery game ter would probably disagree; in fact, the truth about his missing sister. But, in which, during a fight to save some they’re usually quite oblivious. It’s with that case solved last season, he no villagers, the wisest and most beloved unlikely, for instance, that Han would longer has a dream or ambition to push village elder is killed. The villagers are have agreed with you if, at the start of him forward. stunned. A cloud could pass in front of the film, you accused him of being In the middle of a conversation with the sun at that point, throwing a shad- unable to function as part of a team. It’s Scully, Doggett, and Skinner, Mulder ow over the village (during either a cine- unlikely Luke would have agreed if, at notices Skinner’s office clock. Checking it matic sequence or gameplay). The shad- the start of the film, you accused him of against his own watch, he says, “Is that ow would symbolize the villagers’ sad- having no idea who he was. clock right?” ness — and perhaps yours as well, if A character’s path of growth through No one responds to the question — the you had found the old man endearing his or her FLBW is a rocky one; quite conversation merely proceeds. (Quite fre- (and you would have, if the character often the character resists growing. A quently, in dialogue, not every statement was rich enough and the dialogue was character’s path of growth through the or question gets a response.) Why the compelling). FLBW is called a character arc. In throwaway line about the clock? It’s a Hypothetical game example #2. After many stories, some of the most com- symbol of Mulder’s condition or change in great effort and many struggles and bat- pelling emotional moments are wrapped condition. In this case, it symbolizes that tles, you have attained the highest rank a around a character’s process of he’s out of sync, or out of step, with all warrior can attain. At that moment, an wrestling with and eventually growing the others. In effect, his time has passed. eagle flies diagonally overhead in the sky. through his or her emotional fear, limi- Will anyone reading the script con- It’s a symbol of your lofty achievement. tation, block, or wound. sciously note that line of dialogue? It’s important to reiterate here that it Some writers insert a symbol into the Unlikely, any more than they would note doesn’t matter if no one consciously story that represents the character’s arc. Wes Bentley’s line in American Beauty notices the impact of these symbols. They That is, as the character changes and about the government-engineered pot. As deepen the experience nonetheless. grows, the symbol changes right along with the other examples, the symbol with the character. Therefore, a symbolic operates outside of the audience’s con- Symbol Type #2: subplot is a plot-deepening technique scious awareness. Symbolic Subplot because it continues throughout all or Game example. In the game ICO, a boy most of the plot (unlike the symbol of in a faraway land helps lead a beautiful sually at least one of the characters the character’s condition or change in girl with mystical powers out of a tower- U (although sometimes more) in a condition, which ing castle where both are trapped. He story has what I call an emotional fear, occurs in a single bravely overcomes many terrifying obsta- limitation, block, or wound. Quite often, scene or a small cles in his journey, which is more focused this person is the lead character, on freeing the girl than himself. although not necessarily. Near the very end, he gets a magical In the first Star Wars movie, sword that crackles with a kind of spiri- Luke Skywalker had to learn tual electricity. This is a symbol of the who he was (a Jedi knight), boy’s condition or change in condition. It Han Solo had to learn symbolizes that he’s attained a level of responsibility and how to act power; the demonic creatures that once as a member of a group attacked him now flee him and the (instead of operating solo), sword. And it symbolizes that he now Princess Leia had to learn to belongs with the girl, for the electricity be vulnerable in love, Obi- that the sword exudes looks exactly like Wan had to learn he could the mystical energy that the girl can still make a difference, and wield when she needs to, and which has C-3PO had to learn the same magical abilities. courage. Each of these char- Since the boy uses the sword to acters was forced to con- accomplish his final tasks, this is what I front their respective fears, call a usable symbol. It serves double limitations, blocks, and duty by both working to deepen the wounds (FLBWs, for short). emotional experience and also playing a Usually, the character role in gameplay. doesn’t know he or she has an www.gdmag.com 39 USING SYMBOLS

part of the plot). problem would be an article in Example #1. In the new Star itself, if not several. Trek series, Enterprise, one of the Furthermore, it opens up anoth- crew, Ensign Hoshi Sato (Linda er problem. On one hand, how Park) is a woman with extraordi- do you tempt players into see- nary linguistic abilities. In one of ing themselves in a role and the early episodes, she’s having a making decisions appropri- hard time adapting to life on a ate to that role? On the other starship. She wants to go home, hand, how do you allow players to back to Earth. play the game the way they want to She has brought a pet along with her play? — a yellow slug. The slug isn’t doing well Still, this is one direction in which aboard the ship. Environmental conditions story-based games are moving. For threaten its health. Michael Douglas plays a character who instance, let’s take Raven Software’s By the end of the episode, after discov- wrote a great novel decades ago and is action-adventure game STAR TREK: ering how much the crew needs her, she now a washed-up creative writing profes- VOYAGER — ELITE FORCE. The game tries has made her peace with being in space. sor at a prestigious liberal arts college. to create a character arc for Alex, the She drops the slug off on an Earth-like His life’s a mess. He’s depressed, and he’s main player character (what I call a planet, where it will survive just fine. been working forever on a sprawling “first-person character arc,” since the Thus the slug is a symbolic subplot. novel that he hasn’t shown to anybody. person who’s supposed to undergo emo- The slug not doing well in space equates The symbolic subplot is the novel he’s tional change is the player). The attempt with Sato not doing well in space. The writing. The novel is analogous to his to cast the player as the Alex character, slug being put on a new planet and doing life. We learn that the he’s been working thereby helping the player to experience well there thus equates with Sato surviv- on the book for decades. Then we learn character growth during the story, is ing and thriving away from Earth. that it’s a sprawling jumble, with plot- done through a variety of methods: With a symbolic subplot, the audience lines going off in all directions but no observation of a character’s behavior and can stay abreast of a character’s progress focus, just like his life. It comprises tons speech during cinematics; watching how in his or her character arc just by check- of details without a unifying thread, just other characters respond to the player ing up on what’s happening with the like his life. character; hearing the words coming out symbol. Just as in the case with the sym- Further along in the film, the pages of of the player character’s mouth (what I bol of a character’s condition or change his manuscript — the only copy he has — call “self auto-talk”), spoken in Alex’s in condition, a symbolic subplot may or are blown to the wind (symbolic of his voice and with his personality; and the may not be consciously noticed by the life falling apart). Later still, when some- player’s changing responsibilities as the audience or game player. one asks him what the novel was about, game progresses. Let’s revisit the example from the he can’t answer — meaning he has no While these first-person character arcs Enterprise episode. In this case, unlike idea what his life is about. By the end, are a fascinating and critical area of dis- most, we are quite aware that the slug is once he feels his life has again assumed cussion, I’ll bring the subject back to a symbolic subplot, for the doctor on meaning and direction, he starts a new where we began. How can a designer board the ship even points this out to novel, a novel that has power and focus. use a symbolic subplot to deepen a plot Ensign Sato. While speaking to her, he Using this technique in games. Trying to by echoing a player’s first-person char- compares her difficulties to those experi- build in a character arc for your player acter arc? enced by the slug. opens up a can of worms, because in a Let’s imagine a game in which the This bit of dialogue violates the guide- symbolic subplot, the changes in the sym- player is a samurai swordsman. He’s a line of having the symbolic subplot oper- bol reflect the changes that your master of many weapons. Armed with a ate just outside of most people’s con- character undergoes as he or she pro- full range of finely honed steel instru- scious awareness. In my opinion, this gresses through the rocky path of his or ments of death, he leaves his samurai was a mistake. The slug symbol would her character arc. And how do you man- master’s training to rescue his master’s have generated more emotion if it hadn’t age how a character goes through a char- niece from an evil warlord. This mission been pointed out to the audience. “Look, acter arc when that character is con- will set a much bigger plot in motion. here’s a symbol” is usually not the best trolled by the game player? The obvious character arc follows the way to go. However, as every writer This question takes us right to the cut- player character from his origin as a knows, to every guideline there are ting edge of story-based games. To novice swordsman to becoming a master always successful exceptions. explore all the ways in which game himself. Because this is the most typical Example #2. In the film Wonder Boys, designers are tackling or could tackle this character arc, let’s toss it out. As I often

40 february 2002 | game developer tell my writing students, when it comes player progresses along the character arc, usable symbol. Maybe the master built to characters, lines of dialogue, scenes, or the stream gets clearer and clearer. the meditation hut over the river and plots, a good general guideline is, “Find In either of these two examples, the imbued it with magic of which the the cliché, then throw it away.” (This player may or may not notice the change player character is unaware. Let’s say guideline also dictates that the master not in the symbol. This situation is just what the master dies during the course of the be a clichéd wise Asian character either.) a game designer generally wants: a sym- game. But, when the character arc is So let’s make our character’s arc to bolic subplot that works just at the edge complete and the stream becomes clear, “attain a spiritual connection to the uni- of the player’s conscious awareness or the master’s face can be seen in the verse.” As the samurai character attains just outside of it. river, from which he dispenses advice spiritual wisdom or abilities, perhaps the Making usable symbols in gameplay. In that is crucial to accomplishing the world will start looking different in some the first example, perhaps when the game’s final tasks. way. Perhaps he’ll be able to perform sword makes its most beautiful, harmon- A symbol doesn’t need to be used in extraordinary moves akin to those demon- ic sound, something extraordinary hap- gameplay to justify its being there, for its strated by the fighters in Crouching Tiger, pens. A frail old man in the village is, in main purpose is to enhance the depth of Hidden Dragon. Could you give this char- fact, much more than the peasant he the emotional experience. However, a acter arc a symbolic subplot? appears to be. When he hears that beau- symbol that can also function as an ele- Hypothetical game example #1. Perhaps tiful sound, he knows the samurai is spir- ment of gameplay obviously represents the samurai’s master has given him a itually ready and gives the player charac- an opportune situation. sword. It makes a harsh, ringing noise ter some special weapon, amulet, potion, Game example. In the game AIDYN when swung. But as the player character or secret that is essential to the accom- CHRONICLES: THE FIRST MAGE, one of progresses along the character arc, the plishment of the game’s final and most the player character’s close friends is an noise becomes beautiful and harmonic. dangerous task. Or, taking a cue from NPC who’s a reluctant knight. Though Hypothetical game example #2. Suppose ICO, perhaps it’s only when the sword the knight has sworn off the violence of the player character recharges his life makes this beautiful sound that it’s fully battle, he’s continually forced to fight force by returning to a beautiful little charged and thus useful against the final for his king, for honor, and to support bamboo meditation hut suspended over a and most formidable enemy. an honorable cause. He carries a pole small stream. In the beginning of the You could also find a way to turn the bearing the banner of the kingdom he game, the stream is muddy. But as the river (in the second example) into a serves. As a tool of gameplay, the ban- ner has certain protective functions. Because of this, the banner is often ripped in battle, symbolizing that the knight’s heart is torn every time he violates his decision to abstain from fighting. Furthermore, the banner, when torn, prompts discussions by the knight and those around him as to the ethics of his fighting in battle versus being a man of peace. The banner is a symbolic subplot, indicating, at any given moment, the knight’s state of mind as he wrestles with the decision to be, or not to be, a warrior. This is one of those examples in which a symbol serves a double duty. Not only does it deepen the emotional experience, but it also is a usable symbol with a function in gameplay. Symbol Type #3: Foreshadowing

In the first-person action game STAR TREK: VOYAGER — ELITE FORCE, players assume the role of a oreshadowing is another plot-deep- character named Alex. One way we know Alex is growing in maturity and wisdom is that he’s F ening technique. Although it only given more and more responsibility for the Elite Force team. appears in one specific scene, it prepares www.gdmag.com 41 USING SYMBOLS

of a source of healing and thus increasing his jeopardy. Symbol Type #4: ASymbol That Takes on More and More Emotional Associations

his is another plot-deepening tech- T nique, as it too tends to extend throughout an entire plot. It can be either a visual object or a verbal phrase. One symbol of this type is a very famil- iar one: the American flag. What does the flag mean? It means a lot of things: democracy; courage; the right to live the life you choose; freedom of speech and religion; a nation ruled by law; Yankee ingenuity; and more. Yet when we look at the flag, we don’t consciously think of all these things, we just experience the emo- tions that these associations evoke in us. When a symbol reappears over and over again during emotionally charged This billboard is littered across the rooftops in MAX PAYNE. As the story evolves, so does the signif- moments, some of the emotion rubs off icance of the associations the slogan carries, heightening the player’s emotional involvement in on the symbol, and the symbol thus takes the game. on more and more emotional associa- tions as the plot advances. us for a later plot development. In fore- source in a guard tower. The extinguish- Visual example. In the film Braveheart, shadowing, once again you’re creating a ing of the cigarette was the foreshadow- Mel Gibson plays William Wallace, a his- symbol that usually operates outside the ing that the prisoner, or at least the infor- torical revolutionary leader in Scotland. conscious awareness of the player or mation he had, was going to be snuffed There’s an interesting symbol used audience. The symbol, or what occurs out. As such, it evokes an ominous feel- throughout the film — a thistle, and a to the symbol, suggests something that ing when we see it happen. handkerchief with a picture of a thistle will occur later in the story to one of Hypothetical game example. Let’s go sewn into it. This symbol takes on more the main characters — usually some- back to our samurai swordsman. His and more emotional associations as the thing bad. master has a bonsai tree that is 150 years film goes along. Example. In the film The Shawshank old, cultivated and handed down to him When Wallace is young, a little girl, Redemption, Tim Robbins plays a man by his own master, who is long since Murron, gives him a thistle at the funeral who has been unjustly sent to prison. deceased. The samurai’s master has used of his father and brother, who have been There he runs afoul of the warden, and the careful cultivation of the small tree to killed by the English. So the thistle is the two become enemies. Later in the perfect his patience. associated with love. When they’re older, film, another man who has information Then, either during a cinematic or dur- the two begin dating, and he gives her that could clear Robbins is sent to the ing gameplay, the villain destroys the back this same, dried thistle. Once again prison. The warden finds out about this tree. This would foreshadow the master’s it is associated with love. When Murron and asks the man to step out with him impending demise. marries him, she gives him a handker- into the prison yard at night. The warden The bonsai tree could also be turned chief with a picture of a thistle embroi- grills the new prisoner, who confirms his into a usable symbol with a function in dered on it. It is still associated with love. knowledge of information that could gameplay if its magic heals the samurai Later, Murron is murdered. Had this help Robbins. when he’s injured or restores his life been the only way the handkerchief had The warden, finished with his inquiry, force when it’s been depleted. Thus, the been used, whenever Wallace looks at it tosses his cigarette on the ground and tree’s destruction would not only fore- with sadness, we would understand and steps on it to put it out. He walks away, shadow the master’s death, it would also feel his personal anguish. It would evoke and the prisoner is shot from an unseen affect gameplay by depriving the samurai in him (and in us) emotional memories

42 february 2002 | game developer and feelings about her uniqueness, the ated with the enemy. And when Max tri- beauty of their love, and the sadness of umphs in the end and finally attains some her passing. inner peace, he adopts the slogan “A bit At this point, we could call this a closer to heaven” as his own. The phrase highly personal symbol, as it would be is now associated with transcendence. highly personal to him for reasons we If this symbol only made MAX PAYNE can understand and which move us too. players think about these different associ- A highly personal symbol, and a charac- ations, then despite the fact that it was a ter’s reaction to it, can be an effective wonderfully bold and inventive attempt, way to evoke a lot of emotion. It’s a it was, to a great degree, unsuccessful. character-deepening technique. However, But if it evoked in players a variety of in Braveheart, the handkerchief goes on emotions that accompanied these differ- to take on more and more emotional generations. ent associations, then it was successful. associations throughout the plot, and so The first time we see the pendant is in it becomes a plot-deepening technique. a cinematic, when the father, as he lies Going Deep After killing the English magistrate dying, gives it to the son. So the pendant who had murdered Murron, Wallace is associated with love. As the player his article has covered four distinct stares at the handkerchief. By now it’s character goes on his quest to bring T techniques for evoking emotional begun to be associated with revenge. The down the villain, he can recharge his life depth with symbols. Each use is quite handkerchief will be with him as he force (if he doesn’t do it too much) by different from the other, and they can be becomes a leader of the Scots in their clenching the pendant. So the pendant used in combination. If no one notices fight for independence, so it eventually comes also to be associated with life. At your work after it’s done, that’s just fine comes to be associated with freedom. some point the player character needs to — in general, they’re not supposed to And finally, after Wallace is killed, wishy- give the pendant to a fallen, dying notice. washy landowner Robert the Bruce takes friend, to save her by recharging her life When using symbols, you’re not creat- up the fight. Robert leads his men into force. Now the pendant is associated ing intellectual exercises for your audi- battle holding the handkerchief, which is with the act of self-sacrifice for a friend. ence, forcing players to try to figure out now associated with courage. And if the pendant eventually comes what a symbol means. Using a symbol Throughout the film, the handkerchief back to the player character and gives for that kind of mind game would with the thistle keeps reappearing, him a decisive superboost of life force detract from any emotional impact. always during emotionally charged for the final battle, it would then be Instead, when you use one or more of the moments and always associated with associated with victory. techniques presented here, you deepen love, revenge, freedom, or courage. By Although it would operate outside the the player’s emotional experience in the the end, the handkerchief is simply satu- player’s conscious awareness, the pen- game by letting the symbol evoke the rated with emotional associations, sort of dant would be a symbol that takes on player’s emotions. like the American flag. An important more and more emotional associations, While many of the examples of these point to make here is that when we see thereby adding emotional depth to the techniques come from film, their use in the handkerchief in Braveheart, we don’t story. However, because the pendant also games presents a unique tool to design- consciously think about all of these plays a role in gameplay, it’s doing dou- ers in the form of usable symbols func- meanings and associations. Instead, the ble duty as a usable symbol. tioning in gameplay. Games with stories handkerchief evokes feelings in us from Game example: Visual and verbal. In have come far, but still have a distance the many emotional experiences with MAX PAYNE, above the rough-and-tumble to go. When game designers and writers which it has come to be associated. squalor of the city float billboards for the master techniques to create complex Hypothetical game example: Visual. Let’s mysterious Aesir Corporation, with its characters and artfully evoke emotions say you’re designing a game with a logo (the r in Aesir has a little wing on it) dur- Tolkien-like story. (Yes, it’s overdone, but and its slogan, “A bit closer to heaven.” ACKNOWLEDGEMENTS ing we’re just talking hypothetically.) So At first, the billboards have the emo- you’ve got your meek, Hobbit-type play- tional quality of taunting the residents of Thanks to Wagner James Au, er character going up against a fearsome the city by reminding them of class dis- David Perry, Chris Klug, Jason Bell, enemy with supernatural powers. Maybe tinctions. After Max (the main character) cine- Henry Jenkins, Mike Morhaime, and the player character’s motivation is that discovers that the Aesir Corporation is mat- David Taylor for their very helpful the villain wiped out his family. His responsible both for the city’s decrepit ics feedback in preparing this article. father had given him a pendant with his condition and the murder of his wife and and family crest, handed down through the child, the logo and slogan become associ- game- www.gdmag.com 43 FEATURE ARTICLE

play, this new entertaining art form will truly have come into its own. q

44 february 2002 | game developer POSTMORTEM matt firor

MythicMythic Entertainment’sEntertainment’s DDARKARK AAGEGE OF OF CCAMELOTAMELOT

GAME DATA

PUBLISHER: /Abandon Entertainment/Vivendi Universal Interactive Publishing NUMBER OF FULL-TIME DEVELOPERS: 25 NUMBER OF CONTRACTORS: 5 ESTIMATED BUDGET: $2.5 million LENGTH OF DEVELOPMENT: 18 months RELEASE DATE: October 9, 2001 PLATFORMS: Windows 98/ME/2000/XP DEVELOPMENT HARDWARE (AVERAGE): 900MHz Pentium IIIs DEVELOPMENT SOFTWARE: 3DS Max, Photoshop, Visual C++, Linux GNU C++, various pro- prietary in-house tools NOTABLE TECHNOLOGIES: NetImmerse, Linux open-source server and database products

44 february 2002 | game developer ARK AGE OF CAMELOT was the best- ing traditional text-based games and adding a selling computer game in the United graphical front end, with very successful results. States for the week of October 7, Over the years, we had developed several nongraph- 2001, and is still comfortably in the ical online role-playing games, including DRAGON’S top five as I write. This Postmortem is GATE and DARKNESS FALLS: THE CRUSADE. Because of anD overview of how this successful title was conceived our experience developing RPGs, we knew that we and developed. My role on the project was as the had to have a slightly different slant on our new title game’s producer. in order to distinguish it from the RPGs that were Mythic Entertainment has been developing online already on the market. DARKNESS FALLS: THE games as a company since 1995 — forever in this field CRUSADE (DFC) featured a built-in player-versus- — but the company’s founders had made online games player (PvP) conflict in which three different teams, even before then. In fact, as a company, we probably called Realms, fought each other for control of mag- have more experience than any other company in ical artifacts, known as Idols. We really liked this developing online games of all types — over the years concept, which served to keep DFC players hooked we have developed role-playing games, first-person on the game — especially because no other online shooters, top-down spaceship shooters, and strategy game featured such team-based conflict as a core games. When I last wrote a Postmortem here in the part of the game design. So, in late 1999, we decid- pages of Game Developer, it was back in May 1998 ed to make a graphical version of DFC. The project for ALIENS ONLINE, our online first-person shooter was dubbed “Darkness Falls 3D,” and we began based on the well-known Alien movies. preliminary work research- After ALIENS ONLINE, a nonaccelerated game, we ing client engine and serv- created our first 3D-accelerated game, SPELLBINDER: er technology. THE NEXUS CONFLICT. During that project, we developed a relationship with NDL, makers of the NetImmerse 3D engine API toolkit. We learned a lot about 3D engine develop- ment over the course of that project and became very comfortable with software and art development in this environ- ment. We finished SPELLBINDER, which went on to be a mildly successful Internet shooter, and it still has a small but loyal following. After completing the SPELLBINDER project, we decided to create a graphical online role- playing game to com- pete with the then- new wave of online RPGs such as ONLINE and EVERQUEST, which were tak-

MATT FIROR | Matt has been producing online games since the infancy of the industry. He has produced more than a dozen online games, including SILENT DEATH ONLINE, ALIENS ONLINE, ROLEMASTER: MAGESTORM, and of course, DARK AGE OF CAMELOT. He splits his time between a horse farm in Hunt Valley, Md., and a tiny apartment in Arlington, Va. Matt can be reached at [email protected].

www.gdmag.com 45 POSTMORTEM

The NetImmerse graphics engine from NDL proved flexible, stable, and CAMELOT’s engine and client/server technology proved remarkably packed with features players expect. Cities, creatures, world objects, stable, displaying spell effects and combat animations, parsing system and spell effects were created entirely in 3DS Max and exported using messages and chat, dispensing quests and tasks, and sending count- NetImmerse’s Max plug-in, MaxImmerse. less client/server messages with minimal effect on gameplay.

Right off the bat it was obvious that each Realm has different races, classes, wanted to ensure that everyone at Mythic we had two major factors going in our guilds, terrain, and monsters. devoted themselves fully to the project. favor. First, we determined we could use Because everyone knows what hap- Doing so required an influx of money, and a much-enhanced version of the SPELL- pened in Arthurian England, we based that’s where New York’s Abandon Enter- BINDER graphics engine as DFC3D’s the game after Arthur’s death and devel- tainment stepped in. Abandon owns a client, just as we were able to use DFC’s oped a back story of conflict among the couple of small companies, each of which server code as a platform for the new three Realms. The game was rechristened specializes in different types of entertain- game’s back end. Having such a solid DARK AGE OF CAMELOT, and around ment: a film studio, a web company, and client and server right at the start — with January 2000 we began the project in a couple of game content development associated client/server messaging — earnest. A year and a half and untold companies. Abandon wanted to become alone saved us at least a year of develop- numbers of Monty Python jokes later, we more involved in game development, so it ment. Second, and even more advanta- finished the game. purchased a minority stake in Mythic. geous, DFC’s server came with that The initial versions of DARK AGE OF This money allowed us to devote everyone game’s database of objects, monsters, and CAMELOT used the rights for a tabletop on staff to the CAMELOT project, while weapons. Indeed, we went into the role-playing game called Rolemaster as a also expanding and hiring much-needed CAMELOT project with a huge head start. basis for the class and spell systems. Not programmers and artists. Our spread- We were proceeding along under the long into the project, the company that sheets showed that we had enough money DFC3D concept until our president, created Rolemaster, Iron Crown Enter- to support exactly 18 months of develop- Mark Jacobs, came up with the idea of prises, filed for bankruptcy, and we lost ment starting from January 2000, giving basing the game, at least partially, on the the rights. This turned out to be good the project a hard end date of September Arthurian legends. It was a great idea, for us, however, because we were no 2001. since the stories of King Arthur are in the longer required to adhere to a set of By the summer of 2000, we had nearly public domain, which meant we could rules based on the license — although our entire team in place. We had about use them with no fear of licensing issues. we did have to scramble for about a 25 developers working full-time on the Of course, because the game was based week to rename and retune spells and project — quite a small number com- on the idea that three Realms were in classes and otherwise clear Rolemaster pared to other online RPGs, but our conflict, we quickly came up with the content out of the game. existing technology allowed us to reduce idea of basing the other two Realms on As a company, Mythic had never before substantially the amount of technical Norse Viking myths and Celtic Irish leg- been able to devote all of its resources to programming staff required. We had five ends, respectively. Having the myths and any one game — we’d never had a project programmers, ten world developers, legends of three cultures gives CAMELOT big enough to pay for it. Because of the seven artists, and several other people the feel of being three games in one, since sheer size and scope of CAMELOT, we working on the game.

46 february 2002 | game developer can have a helmet head and a regular had precious few dollars available for head (with hair) without having to load marketing, and that our best chance to in a new model. Mike Crossmire created capture public attention would be to the game’s spells in 3D Studio, tweaking have a big presence on the various role- the NetImmerse system to display animat- playing fan sites around the Internet. ed spells with spectacular results. One, the Vault Network, provided us The other major group in CAMELOT’s with some message board space, a news development was the world team, led by page, and a couple of moderators, and Colin Hicks. This group was responsible we were off and running. for quests, monster placement, object We devoted a lot of time over the year placement, and just about everything and a half that DARK AGE OF CAMELOT else having to do with creating the world was in development to interacting with the of DARK AGE OF CAMELOT. CAMELOT’s future fans of the game. We hired a com- economy was designed by Dave Rickey. munity relations manager whose sole job This economic system ensures that play- was to read different message boards and ers must continue to spend money as report back to us what was happening in they rise in level, which limits the the community. From the beginning, we amount of money that stays in the game. took our fans seriously and made many It all starts with a concept. The troll, a playable Dave and Mark Jacobs designed tweaks and additions to the game based race, changed the most over the course of CAMELOT’s trade skill system, which on their commentary and ideas. development from a hulking, human-like enables players to make armor, weapons, creature the more mythologically inspired ver- and other objects in the game — all tied No bureaucracy. Since the sion seen here. to the economic system. 2.founding of Mythic, we have Among the myriad tasks that I did as a striven to have little bureaucracy. We Rob Denton, Mythic’s vice president producer (writing, designing, persuading, have no levels, no directors, and few and chief technical brain, was responsible arguing, and such), my job was to make managers. We have a president, a vice for all client and server programming, as sure all the teams worked together. I president, and a producer. That’s it for well as the client/server messaging that hosted an almost-daily morning meeting management, although for CAMELOT we tied the two together. His input was criti- (at the wretched hour of 8:30 A.M.) did have to assign a lead world developer cal during design discussions, as he could where Colin, Rob, CJ, Lance, and I got and art co-leads, just to streamline the tell us whether an idea would work or together to make sure that we were all day-to-day processes of the project. not. He immediately categorized features on the same page. I was also responsible Because of this simple command chain, into “doable,” “not doable,” and the for maintaining the master game client — we experienced no power struggles. We dreaded “on the list,” which meant that all files added to the game had to be it could be done, but he wouldn’t commit given to me, so I could verify they to it. Brian Axelson was in charge of worked and then integrate them with server programming as well as design of the rest of the game. the game’s combat system — a critical For the game’s sound and music, we component in a PvP-centric game. Jim contracted with Womb Music, based Montgomery provided CAMELOT’s client in Los Angeles, which had provided interface coding and also designed and music for some of our previous titles. coded the game’s magical spell system. Rik Schaffer, the main guy at Womb, CJ Grebb and Lance Robertson led the composed a wonderful soundtrack art team. CJ was responsible for the that consisted of several long main game’s look and feel, while Lance han- scores, as well as many shorter pieces dled figure modeling and animations and in the style of Celtic, Norse, and old managed the team’s deadlines. Their team English folk songs, adding a sense of used 3DS Max and Character Studio to depth and quality to the world. create CAMELOT’s character and monster models and animations. The character What Went Right models were technically advanced, as each in-game character has several differ- Community management/ ent parts buried in it that can be turned 1.beta program. From the off and on by the game. So, each model beginning of the project, we knew we www.gdmag.com 47 POSTMORTEM

feel this is the best way to make Sweet serendipity. The a solid, cohesive game — a 4.CAMELOT project was helped small group controls what the immensely by factors completely out of game is and how it is presented our control — in other words, blind luck. to the user. Because of this Several high-profile online RPGs that approach, decisions are made were slated to launch at about the same quickly, and features can be time as CAMELOT were either pushed off implemented without an endless (SHADOWBANE) or canceled outright line of approvals and politics. (DARK ZION, FALLEN AGE). Also, the week we launched was originally scheduled to Smart business decisions. be the same week as the launch of WAR- 3.Our close relationship with CRAFT III, which will almost certainly be a Abandon Entertainment was a critical huge seller. That project was also delayed, factor in the success of the game. which ensured that CAMELOT launched as Abandon’s purchase of a minority inter- the only large-scale game, and the only est in Mythic ensured that we had online RPG, when it debuted on October enough money to fund the game from 9, 2001. This little bit of good fortune start to completion. Abandon’s manage- almost complete before looking for a dis- gave the game a big initial boost, as there ment was smart enough to realize that tributor. In most cases, game companies was little direct competition from other we knew more about game development seek out publishers, which typically have new products. than they, so they largely left us to make a hand in the design and production of game-related decisions ourselves. They the game and then distribute the game to The joys of open source were involved in the project, of course — the retail chain. With Mark’s gamble, we 5.software and stability. Long some Abandon employees even became produced the game ourselves (with criti- ago, during the development of our early avid beta players of the game, even cal financial help from Abandon and titles, we decided to use Linux wherever though most had never played an RPG business advice from our business devel- possible as our server back-end OS, and before. Abandon’s investment meant that opment person, Eugene Evans) and then we kept to this same practice when creat- we did not have to rely on any outside looked only for a retail distributor. This ing DARK AGE OF CAMELOT. We have influence in designing or creating the gamble could have placed us at the end extensive Linux experience in-house, and game, which means that CAMELOT is of the project with a great game but no it made sense for us to stay with a plat- wholly ours. way to get it into the hands of our cus- form that we knew could handle the task With Abandon teaming with us, Mark tomers. It all worked out in the end, of and also was, well, free. Jacobs, our president, decided to take a course, with Vivendi Universal stepping Because running CAMELOT would big chance and wait until the game was in and distributing — but on our terms. require a considerable amount of data

Balancing the races and classes for effective and challenging player- It was essential to provide players with plenty of player-versus- versus-player combat became one of Mythic’s greatest challenges. environment conflict, such as with the forest giant seen here.

48 february 2002 | game developer A look at the final version of the Troll. Every In addition to designing CAMELOT’s many outdoor areas, Mythic’s world development team had to race within each Realm was designed to wear populate those areas with interesting encounters and dynamic quests — no small task, consid- the same clothing, so the chain mail seen on ering they had not one but three distinct Realms to accommodate, as well as a finite amount of this troll had to work equally well on the more creatures available to them. Work on this content is ongoing, with new updates added to the diminutive Dwarven race. game on a regular basis. management, we initially planned on With the combination of reliable server However, we could have better foreseen using Oracle to store account and code and a stable Internet connection— other parts of our customer service plans. character information. However, Oracle’s all running on open source software — First, we had a lot more players in the quoted license fee of more than $900,000 CAMELOT went live on October 9, 2001, first week after CAMELOT went live than quickly removed them from contention. with virtually no problems. That first we ever could have forecast — 51,000 Once we got over our shock and amuse- night, the game went down for about an boxes were sold in the first four days alone. ment at Oracle’s pricing, we turned to a hour and a half due to a database configu- Our forecast numbers called for a much Linux-based freeware solution, MySQL, ration problem, but since then, the game smaller number, and we hired our customer to manage CAMELOT’s data storage, has been remarkably solid and stable. As service staff based on this smaller number. which so far has worked admirably. of this writing, it hasn’t been down due to Also, we put off creating customer service Everyone developing games should at server error for more than a few minutes tools until much too late in the development least investigate open source solutions ever since the first night. cycle — some had yet to be developed for their servers. It’s saved us a pile of when the game went live. These missing money and has been stable and reliable. What Went Wrong tools really hurt the customer service staff In fact, prior to CAMELOT’s launch, it and added to the time it took to help each was axiomatic that MMORPGs were Development of customer player with in-game problems. Eventually, unstable and prone to crashing during 1.service tools. We really tried to wait times became much too long, and their first month or so. From the outset, avoid the customer service problems that customer support as a whole suffered we were determined to buck this trend. are characteristic of some recently because of it. As I write, we still are try- We co-located our servers directly at launched online games. One of the most ing to work ourselves out of this hole. UUNET, on the network backbone, important factors in keeping customer which ensured a wide network pipe to service reasonably effective was a smooth Lack of a cohesive market- the Internet. With this Internet con- launch. Obviously, giving players fewer 2.ing plan. We went into the nection, we can increase our band- problems results in fewer calls to cus- CAMELOT project with a lot of experience width with just a few hours’ notice tomer support. We did an excellent job in developing software, but no real experi- to UUNET. with the launch — it went very smoothly. ence in creating a marketing plan. We got www.gdmag.com 49 POSTMORTEM

a lot of help with advertising from Aban- These areas in the game don Entertainment, but there was no over- required a large number of mod- all project plan. Basically, we took out ads els and characters in a much in magazines that we thought were impor- smaller space than the out- tant and tried to keep on top of the door terrain, so creating Internet community. We didn’t regularly dungeons and cities issue press releases nor attempt to do a proved to be a much press tour or invite reporters to the more difficult job than Mythic offices to show off the game. we thought. Because It’s difficult to gauge just how much we put off doing the this hurt us. Our focus on Internet mar- technical designs for the keting gave us strong support among interior spaces for so long, fans of the genre, but our lack of com- in the end we simply didn’t mercial marketing kept our company get enough of them done. profile low, and we never received much The game launched with mainstream media coverage because of it. only three capital cities Fortunately, we made up for our slow (one per Realm) and start, and then some, by our successful about 15 dungeons. presence at E3. Abandon funded, designed, and staffed a large booth for us We have a at the show, complete with medieval 4.great game motif and lots of giveaways. but no servers! In a great “Why didn’t they tell us about this different fan sites to sift through literal- O Dungeons and Cities, in college?” situation, we went into the ly thousands of messages. 3.where art thou? The first final months of the project with no credit This situation grew into a big problem major update we made to CAMELOT’s rating. Mythic Entertainment has been when players became extremely frustrat- graphics engine to differentiate it from around for a long time, but we simply ed by what they perceived as a lack of SPELLBINDER was to put in the rolling ter- hadn’t ever borrowed any money, and so communication from us. About six rain system that makes the world so life- we didn’t have a credit history. This weeks after release, we realized that we like. We spent a long time making the turned out to be a problem when we needed to create our own web site to outdoor areas of the game beautiful and went out to lease our servers from Dell publish information about the game: well stocked with monster encounters. and were flatly denied. We pointed out release notes, plan files, server status, The ease with which we did this gave us that we had plenty of money in the bank, Realm War status, and many other little a false sense of security when it came to but to no avail. Dell simply wouldn’t things that we knew but our players developing our dungeon/city technology. lease us the computers until we had a didn’t. This web site, dubbed “Camelot credit history. In the end, we were forced Herald,” launched the following week to purchase the servers outright from and so far has been a great success. Fans Dell, which obviously had a much of the game can now go to one web site greater impact on our bottom line. to get all the information about the game in one place and with no interference. Postrelease fan communica- 5.tion. As good as our communi- For the Ages cation with CAMELOT’s fan base was during the game’s design and beta peri- t was a great pleasure to create DARK ods, it began to suffer soon after the I AGE OF CAMELOT, as it is the first big game’s release. The community simply title that Mythic Entertainment has ever grew too large to communicate with in worked on. It was a wonderful thrill to the manner we had during beta, when see our names on top of the best-seller we simply went out to Internet message lists for those couple of weeks in October Creatures were modeled and mapped using boards and posted our thoughts and 2001, and we hope to be working on the 3DS Max and animated with Character Studio. plans. With the game live, it was obvi- game for a long time to come. As long as Rumors that this zombie is a portrait of the ous we needed a much more coherent players are interested in playing the way to communicate with our fans, one game, we’ll be there adding content and producer after too many meetings are totally q unfounded. that would not send them to numerous updating it.

50 february 2002 | game developer SOAPBOX hal barwood

The Envelope, Please

best method I know comes directly from some of those “real” arts: the annual round of awards when movie, television, and music academies honor their members’ achievements of the pre- vious year. I believe that awards are an inspiration to all of us — whether we’re ever nominated or not. Seeing our colleagues honored raises our sights and ambition above the petty require- ments of the marketplace, and also above the dismal recogni- et’s imagine games are an art form. I know, I know tion that comes from what passes for a trade press in our busi- — for many of us in contact with the so-called real ness. Awards mark the framework in which a consequential arts, the notion sounds pretentious. It also makes meta-discussion about excellence takes place among game developers who are former computer science developers — buzz translated into votes. majors edgy, because it challenges assumptions The process is already in place, and while some newer Lthat games are founded upon technology. Still, it’s a useful con- awards programs try to improve on the problems of the older cept. It’s especially useful when we start to think about the ones, they nevertheless generate struggle and controversy. mediocre state of our profession, and about ways to elevate our Should we honor titles or people? Developers or publishers? aims, aspirations, and attitudes. Should we accept sponsorship? Should we control the nominat- Art is what people accomplish when they don’t quite know ing process? Should we aim for a marketable entertainment what to do, when the lines on the road map are faint, when the package with our award ceremonies? These issues are impor- formula is vague, when the product of their labors is new and tant. Establishing a firm basis for our awards will contribute to unique. Sound familiar? This is the everyday challenge facing industry growth and maturity. game developers: create something new and unique. Incredibly, I hereby cast a vote in favor of maximum exposure. Awards we often succeed. The real problem is, new and unique isn’t should discover and celebrate as many of the arts and crafts of enough — most of us also want to build games that are actu- game development as possible. We need to spread far and wide ally good. Good by any standard. Good today, better than the idea that individual human beings are responsible for the yesterday, and worthy enough for tomorrow. Good even when games we play. We may spin idle dreams about theoretical pos- we can’t exactly define what “good” means. sibilities, but what spurs us to action are real achievements, Illustration by Deborah Stephens by Deborah Illustration How can we focus our energies on such a lofty and elusive against all odds, by real people toiling in the real world. goal? It’s tough enough to focus on shipping our next title. The continued on page 55

56 february 2002 | game developer SOAPBOX

continued from page 56 To further ensure community confi- that good art is like good nutrition — the If we honor by title, then we risk dence in our awards, we also need to five food groups of character formation, award sweeps, as one fad or another improve our procedures. There’s a natu- as it were. dominates in any given year. If we honor ral tension between art as craft and art as It took decades for the Oscars to by artist and engineer, we stand a chance experience. Here, Hollywood seems to become the show-biz phenomenon they of delving beneath the surface far enough have hit upon a satisfying compromise: now are. Yet Frank Capra’s win for to acknowledge important, if less trendy, Oscar nominations are made by peers, directing 1934’s It Happened One Night work. It doesn’t necessarily follow, for and the final awards are voted upon by is as well remembered as Steven Spiel- example, that the best game of any year all. We should follow this practice. Level berg’s award for 1998’s Saving Private has the best sound, or the finest anima- designers are the only developers quali- Ryan because the process was solid from tion, or the most capable engine. fied to identify the best levels, for exam- the beginning. Similarly, it may take a I cast another vote for simple integrity. ple, yet the rest of us can readily judge while for game awards to acquire public Awards should be as free from politics as the fun factor among selected nominees. cachet. But to developers, those honored possible — otherwise they don’t mean If we work at it, the result will not and those voting, the benefits are imme- much. Publishers, manufacturers, and only be better games, but clout. Holly- diate and lasting. q allied companies have their PR machines, wood, home of the rudest pop entertain- their marketing agendas, their bottom ment, has become immune to unfair pres- HAL BARWOOD | Hal is a project lines. Self-interest is built into their char- sure simply by declaring, through its web leader at LucasArts, where he is working on ters of incorporation. Awards should not of awards, that movies are an art form. a new console title. He is also a member of contribute to their further aggrandize- Establishing our own well-conceived the Academy of Motion Picture Arts and ment, whether by naming them as recipi- awards should help protect us against the Sciences. He was given a Spotlight Award ents or by allowing them to sponsor our slings and arrows of outraged congress- for INDIANA JONES AND THE FATE OF ceremonies. men and social busybodies who imagine ATLANTIS at GDC many long years ago.

www.gdmag.com 55