<<

POSTMORTEM

THE LEADING GAME INDUSTRY MAGAZINE VOL19 NO 10

OCTOBER 2012 INSIDE:HOW TO SHUT DOWN YOUR DEV STUDIO postmortem

26 Origins How do you take a time-tested favorite like Rayman and make it fresh and fun all over again? In this month’s featured postmortem, designer Chris McEntee talks about how a small team building new, artist-friendly developer tools ended up turning into the triple-A team that put Rayman back on the map. By Chris McEntee features

7 Seeing double Adding stereoscopic 3D support to your game isn’t necessarily a difficult thing to do, but doing it without having to render any given scene twice—once for each eye—is a bit trickier. ’s Jim Van Verth explains how the stereographic reprojection system behind Ratchet & Clank: All 4 One produced an impressive 3D effect without breaking the framerate budget. By Jim Van Verth 17 Siggraph 2012 Highlights The 2012 Siggraph conference featured new technologies and trends for current-generation game devs and more affordable development tools, which could offer new opportunities for studios large and small. Game Developer correspondents Carey Chico and Mike de la Flor give us this year’s show floor highlights—and how they may shape your work in the future. By Carey Chico & Mike de la Flor 21 game over Sometimes game studios have to shut down. Carey Chico walks us through his own experience closing his own development studio (Globex LA) and explains how you can make sure your own closing process—knock on wood—is handled responsibly, respectfully, and as gracefully as possible. By Carey Chico departments

2 Gameplan By Brandon Sheffield [editr o ial] Spam Me Not

4 Heads up display By Staff [news] Correlating curse words with code, and the beauty of the game art asset.

32o to lbox By Carey Chico [review] 3Dconnexion SpaceMouse Pro

34 inner product By Bruce Dawson [programming] Floating-Point Misses

41 gdc news By Staff [news] Game Developer’s Choice Online Awards Honor , World of

42 pixel pusher By Steve Theodore [art] R.I.P Paul Steed

46 design of the times By Damion Schubert [design] Depth vs. Breadth

48 good job By Alexandra Hall [career] &A with Adam Orth, new studios, and who went where

49 business By Kim Pallister [business] Crowdfunding and Emotional Equity 50 aural fixation By Yann Seznec [sound] CONTENTS.1012 Procedural Music VOLUME 19 NUMBER 10

52 educated play By Alexandra Hall [education] Refraction

56 arrested development By Matthew [humr o ] The PR Coach

www.gdmag.com 1 game developer GAME PLANPLAN // BRANDONBRANDON SHEFFIELDSHEFFIELD magazine www.gdmag.com

UBM LLC. 303 Second Street, Suite 900, South Tower Spam Me Not San Francisco, CA 94107 Shouting above the noise in the game world t: 415.947.6000 f: 415.947.6090 SUBSCRIPTION SERVICES Notifications and cross-promotions Obviously companies need to get away from the Gangnam district, FOR INFORMATION, ORDER QUESTIONS, AND are getting out of control. Facebook the attention of players, and the the financial hub which most ADDRESS CHANGES wants my attention, to tell me pop-up ad is still in effective use Korean game companies call home! t: 800.250.2429 f: 847.763.9606 someone I’ve never met wants to across the Internet, compelling People have to be so desensitized e: [email protected] be my “friend.” wants me to confused parents and homemakers to advertising and visual noise www.gdmag.com/contactus know that someone “favorited” my to give their bank information to just to live their normal lives, it’s EDITORIAL tweet, and then emails me about fake Nigerian princes. If, perchance, no wonder these game notification Publisher that once per week even though you do forget to click on a game for tactics I consider aggressive are Simon Carless e: [email protected] I’ve asked it not to. That’s just life a while, the below image is the sort par for the course in the country EDITOR-IN-ChIEF in the digital age. But games have of thing you might see in-game: where the model was perfected. Brandon Sheffield e: [email protected] gotten particularly bad about this, Editor Patrick Miller e: [email protected] especially in the free-to-play space. Manager, Production On the simplest level of spamming, Dan Mallory e: [email protected] you’ll have to click through an ad ART DIRECTOR for a game to get to the one you Joseph Mitch e: [email protected] want to play. Sometimes the ad COntributing writers Jim Van Verth, Carey Chico, Mike De La Flor, Chris takes up most of the screen, but McEntee, Bruce Dawson, Steve Theodore, Damion this is easy enough to ignore. Schubert, Alexandra Hall, Yann Seznec, Kim Pallister, Worse, I think, is when your iPad Matthew Wasteland or iPhone wakes up to tell you it’s ADVISORY BOARD time to restock Tiny Tower’s Luxury Mick West Independent Brad Bulkley Cruise item in the travel shop. Four Clinton Keith Independent hours later, you’ll do it again, not to Brenda Brathwaite Loot Drop mention all the quicker items, so The free-to-play business model The more desensitized one gets, Bijan Forutanpour Online Entertainment maybe you need to actually keep was honed in Korea. I was just the louder advertising has to get to Mark DeLoura THQ Carey Chico Globex Studios those notifications on if you want in Seoul last week pitching grab your attention. Mike Acton Insomniac to play the game properly. It quickly projects, and I noticed something Many have said that the ADVERTISING SALES begins to feel like work—the interesting. I’ve become so trend toward overnotification and mechanic of “waiting to click,” and conditioned to ignore advertising underhanded tactics like always Global sales director paying to avoid the wait, is pretty that it took me a few days to see leaving a “1” hovering over the app Aaron Murawski e: [email protected] t: 415.947.6227 much the antithesis of fun. It’s a it, but normal, everyday people in is dissipating. I disagree. The more Media Account Manager compulsion more than a fun loop, Seoul are basically living inside of a we see of these tactics, the more Jennifer Sulik e: [email protected] and that’s why it makes money. real-life pop-up ad. we come to get used to them. And t: 415.947.6227 Some of these games don’t There are some advertising- that may very well mean the tactics global Account Manager, Recruitment ever let you go. There’s that little light areas, but anywhere you will get even more nefarious. I Gina Gross e: [email protected] t: 415.947.6241 number notification on your might pause, like subway stations, believe we can do better, and global Account Manager, Education smartphone app, telling you how coffee shops, or gas stations, is high-end PC free-to-play is getting Rafael Vallin e: [email protected] many “things to click” you have a wall of advertisements. Even there. But there’s a long road ahead, t: 415.947.6223 waiting for you upon your return— apartment complexes are branded and as companies like Zynga move ADVERTISING PRODUCTION but some games don’t ever get rid by some business or other. For into gambling, I foresee even more PRODUCTION MANAGER of the “1,” even if you’ve clicked this Seoul trip, I stayed with some clever uses of overnotification in Pete C. Scibilia e: [email protected] everything. There’s always at least friends to save money. This is the our future. t: 516-562-5134 one thing that needs clicking, so first building you see upon leaving As a final note, I’d like to REPRINTS the game can constantly shout at their subway exit. thank everyone for reading Game you to return, because otherwise, Developer over the last several Wright’s media Jason Pampell e: [email protected] why would you go back and click? years. This is my 100th issue as t: 877-652-5295 How would you remember that an editor of this magazine, and I AUDIENCE DEVELOPMENT clicking is a fun thing to do? The will now be officially stepping down game needs to constantly be in as editor-in-chief, letting my able Audience Development Manager your face, or else you’ll forget protégé Patrick Miller take up the Nancy Grant e: [email protected] how “fun” it is to touch a field of List rental reins of the magazine and this Peter Candito corn to harvest it. That is still the column. But I’ll still have my own Specialist Marketing Services current face of free-to-play on monthly column, fret not! It will t: 631-787-3008 x 3020 smartphones and on the web. be called Insert Credit—you can e: [email protected] Even inside our games we’re expect to read it next month! ubm.sms-inc.com getting an incredibly high ratio And this is just the —Brandon Sheffield of noise to content. Why is this? suburbs—45 minutes by train twitter: @necrosofty

2 game developer | october 2012 WWW.UBM.COM

heads-up display bad language correlating curse words with code

Every programmer has gotten caught cursing at their code (or maybe a fellow programmer). But which languages inspire the most profanity? U.K.- based web developer Andrew Vos decided to settle the question by pulling just under one million commit messages from GitHub and correlating the presence of certain choice words to the corresponding project’s programming language.

words in them. Did that surprise you’d like to share? you? (For comparison’s sake, my AV: These were my picks: SHIT emails have a much higher rate 175 of profanity.) • f*ck all the tests, you’re AV: Yes, that was very surprising going to have to live to me, but I think that because all without them F*CK these projects are open , • f*ck git 86 people tend to be more civilized. • chunk of shit i wrote over Some of the larger companies I whiskey have worked for have way more • f*ck you and your PISS swear words in commits! rubygems • Leave it to Chelimsky to 5 PM: Your results put C++, Ruby, f*ck up a simple name and JavaScript on top, then Perl like Marston MOTHERF*CKER and C, then C# and Java, with Python and PHP at the bottom. PM: “Zomg”? Weren’t we done 1 Have you tried to draw any with “zomg” in 2005? Patrick Miller: Why’d you finding out how many swear conclusions with the data? Does AV: Probably got to do with me go through the Git commit words I could find. this jibe with your understanding hanging around Ruby developers messages and correlate of the respective languages too much. profanity to programming PM: Can you elaborate on your (and perhaps the people who language? Lazy Friday methodology? use them)? PM: If you do the study again, afternoon? AV: I wrote a Ruby script to search AV: Seeing Ruby at the top was is there anything you’d like to Andrew Vos: I hadn’t written for “shit,” “f*ck,” “piss,” and a huge surprise for me, because change about it? any code in about a week, and I “motherf*cker.” For the stats to be it’s by far my favorite language. AV: I would have loved to have really felt like writing something. valid, I had to rip an equal number I can’t believe there’s so much access to all the commit I decided to rip a huge chunk of of commit messages from each hate for it, but I also think that messages, because the results commit messages and maybe do language. Ruby developers tend to care less do seem strange. Network speed some sort of statistical analysis about being professional and are was an issue when downloading on them. I was hanging around in PM: Out of almost one million generally more fun. One of my all the commits. I would most the IRC channel #ruby-lang and commit messages, you only most hated languages, PHP, has probably have to spend a few someone may have mentioned pulled about 250 or so with curse the least swear words! I definitely weeks downloading commit expected it to be at the top. I think messages if I wanted them all. this is because larger companies It would be great if GitHub could tend to use PHP more. give me access to their servers C# 20 for a day! C++ 56 PM: You also posted the list of —Patrick Miller commit messages with swear C 28 words in them. Got any favorites Java 20 JavaScript 46 omg 30 Perl 30 zomg 16 PHP 4 WTF 76 Python 10 LOL 65 Ruby 53 ROFL 2

4 game developer | october 2012 HEADS-UP DISPLAY loving the bones the beauty of the game asset

Varoux. it still a texture? Consider this lightmap by Thomas Varoux, with its countless halos. You might imagine it lighting a space station at twilight, or a vast Himalayan palace at dusk. You imagine invisible models—impossible models with non-manifold geometries. When you can see only the shadow of a world, its shape is infi nite. If you did not know what a lightmap was, then it would cease to represent light. This character sprite sheet by Anna Anthropy, viewed in a similar way, might cease to represent a walk cycle. Andy Warhol famously painted a of Campbell’s soup cans, reducing their individual characteristics to the sum of an abstract pattern; the sprite sheet, then, could reduce each frame’s differences and emphasize the common iconography. Does Laro. each frame depict the same character in different poses and perspectives, or is each frame a we peel It’s great to celebrate the effi cient pack ratio on his separate character? skyscrapers visual arts in video games—but texture fl at for the Black Box Or maybe Warhol just liked like apples. concept art is not what defi nes tank-buster rocket launcher, soup, and we just make assets We light into slivers and game art. It’s not the actual thing how very little texture space that appear in entertainment arrange those golden shards into that goes into the game. We tell is wasted, yet the overall texel products and that’s all there is to vast mosaics; we transform time people it’s game art anyway, resolution is evenly distributed. it. You can think like that, and you and shape into swirling color and because concept art conforms Here, Laro has skillfully painted wouldn’t be wrong. But you might use it to map river fl ows. When to society’s existing notions a fantastic gunmetal, a very end up bored and stuck on easy we make people, we chop off their of paintings as art. This is the narrow range of matte mid- mode, and being bored is worse faces, fl atten and bake these aesthetic equivalent of easy gray values that still provides than being wrong. human pelts, then tattoo makeup mode; this is lazy. a great sense of contrast in the —Robert Yang onto their unblinking eyes. Let’s try a higher diffi culty material. This piece is a classic As game asset artists, we setting, a more playful and in the way most industry game perform these countless miracles complex mode of thought. Let’s artists might appreciate a fl at and atrocities every day. But try to understand and promote surface; it is topologically when it comes time to curate the the real-time art asset as its own elegant and demonstrates public face of game art, we hide medium of visual art. I will focus masterful technique. that which imbues our real-time on the game texture—specifi cally, We can also think of art with drama and magic. We’re these three masterworks, coming textures as more conceptual content to tape a dozen landscape soon to a museum near you. pieces. What if you produced paintings and portraits onto a wall, If you’ve ever found a new fl at paintings without actually then point to that concept art and hat or weapon in TEAM FORTRESS texturing anything, or what if say that is game art, as we see in 2, there’s a good chance Rob you never saw the corresponding public exhibitions like Into the Pixel. Laro painted it. Note the very model? Conceptually, then, is Anthropy.

WWW.GDMAG.COM 5 DO YOU HAVE THE PASSION TO CREATE AND THE WILL TO FORGE GREAT GAMES?

If you have a passion for games and strive for excellence, we encourage you to check out these opportunities to join and contribute to the most epic entertainment experiences… ever!

INTERNSHIPS FULLTIME OPPORTUNITIES Continuing students from all over the country are We’re always looking for top talent! If you’re a recent welcome to apply for our Summer Internship program! graduate, have a passion for games, and aspire to work Work directly with development teams and business for Blizzard Entertainment, we may have the right operations departments to gain hands-on experience! opportunity for you! For more information, visit For more information, visit ur.blizzard.com jobs.blizzard.com

Dedicated to creating the most epic entertainment experiences… ever.

© 2012 Blizzard Entertainment, Inc. All rights reserved. StarCraft, , , Warcraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc., in the U.S. and/or other countries. n ge tio t c fa e s j t o e r r

p

3

e D

r

w

c

i

i

t

p

h

o

s c

t s e o r e

There are plenty of ways to add stereoscopic 3D to your game. The hard part is doing it without having to fully render any given scene twice and killing your frame rate. In this article, I’ll explain how we designed RATCHET & CLANK: ALL 4 ONE’S stereo reprojection system to produce attractive 3D visuals without sacrifi cing performance. I fi rst became aware of stereo reprojection when Crytek announced stereo support for 2. At the time, we at Insomniac were just beginning to plan stereo support for RATCHET & CLANK: ALL 4 ONE, and the prospect of having a stereo solution that added very little to frame time was quite appealing. The frustrating bit for us was that Crytek gave only the slightest of hints as to how its implementation worked. Clearly it used a pixel shader to gather pixels, and there was a tantalizing mention of bilinear fi ltering, but not a lot of details. Thus began our quest to make our own version of stereo reprojection. While I did not quite get the performance Crytek described, we delivered what we needed to ship the game, we added some new features, and our results look quite good. >>>

WWW.GDMAG.COM 7 WHY WE COULDN’T view space or in NDC (Normalized in the bottom row), and each you still need to pass data through USE STANDARD Device Coordinates) space. term has equal magnitudes but the GPU twice, which takes time. STEREOGRAPHIC When projecting for stereo, we opposite signs for each view. The In our case, we were already up PROJECTION add two additional transformations left view will have negative shear against the 30 fps boundary, so we to represent the interaxial and and positive translation, while the had very little extra rendering time. Before looking at our stereo convergence: an xz-shear S right view has positive shear and reprojection solution, let’s and an x-translation T. Some negative translation. quickly review how the standard implementations incorporate the So what do we choose for the OUR SOLUTION: stereographic method works. The translation into the view matrix magnitude of S and T? They need to STEREO REPROJECTION idea is that we are trying to provide and the shear into the projection be related; otherwise you will end up to each eye (via shutter glasses, matrix, but I fi nd it more compact with bad convergence and headaches The alternative to rendering or polarization, anaglyph color, or to add both to the projection for your viewers. Other things that everything twice is to render color head-mounted display) a view from matrix. The end result can be seen need to be taken into consideration and depth information for a single that particular eye’s perspective. in Figure 2, showing both standard are your monitor/television size and view, then use the information There are two pieces here: First, D3D and OpenGL perspective your horizontal fi eld of view. A larger for that view to generate a stereo each eye is displaced from the projection matrices. monitor implies that you will be pair—rendering the left view and center by a certain distance, called sitting farther from it, which implies using it to create the right view, the interocular distance. It’s this that less shear is required. And the for example. Because the original displacement that allows stereo convergence distance in turn is image will not have the correct viewing in the fi rst place. Secondly, dependent on the fi eld of view. projection for at least one of the depending on what we’re focusing The set of equations that we views, we will have to remap the on, the eyes will toe in or out when used in ALL 4 ONE can be found in color data to match the new view, we look at a near or far object, Figure 3, partially derived from or perform reprojection. For the respectively (see Figure 1). Samuel Gateau’s GDC 2009 talk on sake of the rest of the article The interocular distance is about stereoscopic 3D [see Reference we’ll assume that unless stated 5–8cm, measured from the center 1] and the Sony documentation. As otherwise, we’ll be reprojecting of each pupil. When working with we can see, S is dependent on the from a left view to a right one. virtual cameras, we often refer to the interocular distance and monitor We will need to have access interaxial distance instead. Because width, and T is dependent on S, to the color and depth images to of toe-in, there will be a plane where convergence distance, and fi eld of do this. If you’re rendering into a points on that plane will project to view. This is a bit counterintuitive, backbuffer (or don’t have access to the same screen position in both but it works quite well. a console that lets you just dip into views. We call this the convergence memory and point a new texture plane, and the distance to that to it), you’ll need to change your plane is known as the convergence rendering approach. Fortunately, distance. Points between the view if you’re using something like points and the convergence plane FIGURE 2: Standard stereoscopic deferred rendering or deferred projection matrices. will have negative parallax (and will lighting, you’ll have already done appear to stick out of the screen), this and will have textures available and points behind the convergence Note that the shear and translation with this information. Otherwise, plane will have positive parallax. have opposite signs (they end up you’ll have to use render targets in Note that the units for these with the same sign in the OpenGL Direct3D or framebuffer objects in distances could change, depending projection matrix because the FIGURE 3: Stereoscopic parameters. OpenGL for both color and depth. on whether you are measuring in shear gets multiplied by the —1 While CRYSIS 2 was the fi rst The process at this point is quite notable use of stereo reprojection in simple: Render two views, one for games, it is not a new technology. each eye, and send each image to Erik Benerdal described a similar the display. Other than setting up approach on his blog in 2008 [see the projection matrix, this doesn’t Reference 2]. Other reprojection take much work, and in fact some approaches have used scatter- stereo drivers take advantage of based splatting or image warping this simplicity to automatically using meshes [see Reference provide stereo for games. However, 3]. The technique I’m presenting it does have one disadvantage: You here is a gather approach derived do have to render the scene twice. from parallax occlusion mapping, We could optimize this a bit, of which takes a color image, a depth course; we could do all nonrendered image, and uses raycasting to processing fi rst, cull for the convex create the appearance of geometry hull of both frustums rather than displacement within a shader. one at a time, or generate a single A full description of parallax FIGURE 1: Stereoscopic 3D pushbuffer and only modify the mapping is outside the purview frustum setup. projection matrices—but in the end of this article. You can fi nd more

8 GAME DEVELOPER | OCTOBER 2012 we have a new view of the same same y value as our desired view LISTING 1 The core of the fragment shader (using GLSL). scene we wish to render. We plane location, so we’ll just search a could just use the same algorithm range of candidate screen positions UNIFORM SAMPLER2D COLOR_TEXTURE; by progressively casting line P* along a line of constant y. In UNIFORM SAMPLER2D DEPTH_TEXTURE; segments per pixel to generate the this case we start with our pixel’s UNIFORM VEC4 STEREO_PARAMS; new view. However, because of the position from the right eye viewpoint VARYING VEC2 UV; nature of stereo reprojection, we (in green) and iterate in the -x VOID MAIN() can simplify things greatly. Figure direction (to yellow and orange). So, { 4 shows the situation for a desired rather than casting a ray and then VEC2 OUT_TEX_COORDS = UV - VEC2(STEREO_PARAMS.X, 0.0); location in the right eye view (in computing a view plane position VEC2 REPROJ_TEX_COORDS = UV; green). We create sample points to look up a depth value, we’ll just FLOAT DIR = SIGN(STEREO_PARAMS.Y); along a ray from the right viewpoint use the depth at the current P* to FLOAT ORIG_X = UV.X; through the view plane (in this reproject into the right eye view. If FLOAT SHIFT = STEREO_PARAMS.Z; case, the convergence plane) its position is close to our desired FLOAT STEP = 0.0625*STEREO_PARAMS.W; location for our current pixel. Since location then we’ll stop. We’ll use INT INDEX = 0; the view separation is only in the that depth as our fi nal depth to look WHILE (INDEX <= 16) x-direction, we end up only casting up the color value for our pixel. { the ray along x and z. The y-value of This raises the question of REPROJ_TEX_COORDS.X = ORIG_X + SHIFT; the ray will always be 0. how we perform our reprojection— FLOAT L = GETLINEARDEPTH(DEPTH_TEXTURE, REPROJ_TEX_ For the sake of clarity, we start namely, how do we use a view COORDS); our sampling in Figure 4 at the plane position P_left in the left FLOAT DEPTH_ADJUST = STEREO_PARAMS.X + STEREO_PARAMS.Y convergence plane, though we view and the depth to determine / L; usually will want to start between the corresponding view plane FLOAT TEST = SHIFT + DEPTH_ADJUST; the eye point and the convergence position P_right in the right view? IF (DIR*TEST >= 0.0) plane to get some negative We can simplify the problem down { parallax. For each sample point (in to one of fi nding the displacement OUT_TEX_COORDS.X = ORIG_X - DEPTH_ADJUST; yellow), we cast a new ray from the along the convergence plane, BREAK; left eye, determine the view plane between the left view and the right } position for that ray, and look up view (see Figure 6). This is a case SHIFT = SHIFT + STEP; INDEX = INDEX + 1; the depth by mapping that view of computing a ratio of similar } plane position to texture space. If triangles: The distance between GL_FRAGCOLOR = TEXTURE2D(COLOR_TEXTURE, OUT_TEX_COORDS); this depth is less than the depth P_left and P_right is to the distance } of the sample point, we stop and between the two view positions as use an interpolation of the sample the distance from the convergence information in Brawley and the depth map, you use that point’s depth and left eye depth plane is to the distance from the Tatarchuk’s original ShaderX article penetration point to determine the to get our fi nal depth value, which view positions. This gives us the [see Reference 4]. However, the color seen from that view direction. we use to reproject from the right fi nal equations in Figure 6. general idea is that when you Stereo reprojection, at its viewpoint to get our fi nal color. Since this is using a ratio of render the surface you wish to heart, is essentially the same However, because we are only distances, this will work just as apply parallax mapping to, for each process. We have a color image searching in the xz directions, well whether we’re in NDC space pixel you cast a line segment along and its corresponding depth we can think of this in a different or texture space, but it assumes the view direction at progressive information (albeit using a way—see Figure 5. In this case, we that the depth we have is linear. depths into the depth map. When perspective projection rather know the corresponding view plane However, if we use standard the line segment has penetrated than an orthographic one), and position in the left view will have the perspective projection, the depth

FIGURE 4: Stereo FIGURE 5: Stereo reprojection using reprojection using ray-casting. pixel match.

WWW.GDMAG.COM 9

Figure 6: Computing reprojection displacement.

values in the buffer are nonlinear. in the source view from P_right–s Under normal circumstances, All to P_right+s, and stepped one 4 One’s engine provides a second texel at a time. This provided a floating-point depth buffer which is certain amount of negative parallax linear (it’s used for computing SSAO, without unduly increasing the among other things), but because search. However, by stepping the stereo buffers require more one texel at a time, the number of VRAM, activating stereo disables texels we search will increase as SSAO and removes this extra depth s increases. Since s is one of the buffer. We solved this by using a knobs we can turn to improve our scratch area of VRAM to compute stereo result, we will either have the floating-point buffer just before poor performance, or are limited to applying the reprojection. Note that fairly flat-looking images. you do need a certain amount of We derived a better approach resolution in your depth, otherwise from parallax mapping. In my you may get strange striations final revision, I chose a constant across your stereo images as you number of iterations, and split suddenly step from one depth the search space into a fixed range to another. number of samples. In the parallax mapping case, the samples are Summarizing the algorithm: along the search ray; in our case, For each P_right (i.e., the along the scanline. One approach pixel we’re considering (see Reference 5) uses a single in the fragment shader): sample at the farthest depth, but Iterate along values of I didn’t get very good results with P* for the left view it. Instead, 16 samples presented Reproject to get a the best trade-off between quality candidate location and speed. Reducing the amount of If it is past P_right, we negative parallax by only searching have a hit between P_right–s/2 to P_right+s Use the color values for also helped the quality. our current and previous As far as the final color value, P* to set our final color for the initial algorithm I used a linear interpolation of the current This search strategy raises a few and previous texel colors, based on questions. First, what is the range the previous and current screen Figure 7: Right-eye views of Ratchet, showing a) ideal stereo, b) reprojecting with the of the search for P*, and what space positions. This made for wrong search direction, and c) reprojecting with the correct direction. step size should we use? As z muddy edges, particularly when an approaches infinity, the magnitude edge switches from a near object to from the right eye view position. the University of Utrecht, who of the displacement between P_left a far-distance object, or vice versa. This final reprojected point is were also trying to create fast and P_right approaches s, which In parallax mapping, as mentioned, used to look up the color value, in reprojection. They skipped the means the maximum possible you would normally take a blend of this case, in the left eye image. blend and just used the depth value of separation for positive the ray sample point’s depth and However, I discovered a paper by map lookup alone for the final parallax will be s. So for my initial the depth from depth map lookup, van de Hoef and Zalmstra (see reprojection. This is faster than algorithm I chose a range of texels and then use that to reproject Reference 5), two students from the lerp, matches reasonably well,

www.gdmag.com 11 and gets rid of the smeared, blurry The core of the fragment egregious artifacts from the effect on near-to-far edges. shader (using GLSL in this case, previous method, but it still has a The fi nal issue is to decide but the Cg or HLSL shader would be few issues. which direction to search along the equivalent) is in Listing 1. The fi rst issue is that we are scanline—the positive x direction or In this case, we’ve replaced the limited in the amount of negative the negative x direction? I’ve given P_right end condition with a check parallax we can represent. Recall away the answer already, but in against to avoid an unnecessary that negative parallax occurs when my initial algorithm I unthinkingly addition, but the same principle objects are closer to the viewpoint searched in the positive x direction, applies. The constant stereo_ than the convergence plane, and which had some unexpected effects params contains -/+s, +/-sc, the it shows up visually as objects

In our case we simply repeat the foreground or background information and hope that the area is small enough that the players don’t notice. Some ways of reducing the area are to again bring in the convergence plane (which does reduce the stereo effect, but helps with the errors) or to render the scene from a camera with a standard frustum, and then reproject twice to generate the left and right view from that. on the result. Figure 7a shows the starting offset for the search, and popping out of the screen. For standard stereo projection, while the search range. GetLinearDepth() aesthetic purposes, we usually Figure 7b shows the result of this converts the nonlinear depth value don’t want a lot of negative parallax reprojection algorithm, and the from the texture into a single because if it occurs near the edge smeared ruin of poor Ratchet’s face. fl oating-point linear value. of the screen it can destroy the Tragedy and despair. This shader has the advantage 3D illusion (because one eye can This is a problem because by in that it works both for reprojecting see the object, while in the other iterating in the positive x direction the left view to the right one, and it appears chopped off). But it’s when doing left-to-right reprojection, the right view to the left one, simply diffi cult to avoid entirely, so ideally we’re moving in the wrong direction by changing the stereo parameter our algorithm needs to handle it. along the view ray. Rather than constant. However, if you only While we know that the searching deeper and deeper into want to reproject from left to right, maximum displacement due to the screen, we were starting with for example, you can simplify it positive parallax is s, for negative the maximum depth value for our by removing the “dir” term and parallax there is no practical ray, and searching more and more adjusting signs accordingly. maximum. Let’s look at Figure 8 to shallowly. This leads to an early see why this is the case. exit from the search, and Ratchet’s PROBLEMS WITH Here we see an object with poor deformed face. Fortunately REPROJECTION negative parallax. The distance the solution is simple: Reverse the between the left and right view ray search direction! Figure 7c shows Overall, our approach works intersections is clearly larger than s, this far better result. quite well and removes the more so we could broaden our search to include that. However, as objects get FIGURE 8: Reprojecting a point closer and closer to the eye points, with negative parallax. that displacement gets larger and larger, approaching infi nity. Clearly capturing all negative parallax is not practical, so the only thing we can do is set a maximum value, and try to keep our objects within that amount of negative parallax. If we end up algorithm it is impossible to with a situation where objects might perfectly reconstruct such areas, fall beyond that range, we can bring because the information simply in the convergence plane to reduce isn’t there (which we can see in the parallax. Figure 7c, to the right of Ratchet’s Another set of issues crops face). In our case we simply repeat up because the new viewpoint the foreground or background can see parts of objects that the information and hope that the original can’t. These are known as area is small enough that the reconstruction issues. The original players don’t notice. Some ways of problems with Ratchet’s face were reducing the area are to again bring an extreme example of this, with in the convergence plane (which some very bad reconstruction. does reduce the stereo effect, However, even with an improved but helps with the errors) or to

12 GAME DEVELOPER | OCTOBER 2012 Figure 9: Reducing reconstruction error with center reprojection.

render the scene from a camera A third issue is related to crop down to the new shared whatever is behind it, which made with a standard frustum, and then reconstruction. If we look at Figure viewport area. all our effects look quite strange. reproject twice to generate the 1 again, we can see that there are The fi nal set of issues is due We tried writing depth with alpha, left and right view from that. The regions in space that the left eye can to how we handle alpha-blended but that introduced a new set of reprojection step does take twice see that the right one can’t, and vice objects. In the ALL 4 ONE engine, problems. In the end, the best way to as long when we do that, but the versa. So we have no information on we have a separate pass for such handle both the alpha-blending and results look signifi cantly better, how to reconstruct that region from objects, sorted by depth, and we do the 3D stereo was to use reprojection and it’s still faster than rendering the other view. One possibility is to not write out depth. This produces to render the opaque passes, and the scene twice. Figure 9 shows place black bars to cover that area good results for transparency but then render the alpha passes using a the result of this, with the left of the viewport, but that’s not very has the slight problem that we standard stereo projection. side rendered with left-to-right appealing. Our fi nal solution was to don’t have the depth information to In order to take that approach, reprojection, and the right side expand the horizontal fi eld of view so correctly reproject that object. The though, we have to do two things. with a standard non-stereo view that region is outside of the desired end result is that alpha-blended First, we have to reproject depth reprojected to both left and right. viewport, then after reprojection geometry looks like it’s painted onto values as well as color values, so

WWW.GDMAG.COM 13 Using the D3D-style stereo projection matrix and projecting a point into the left view gives us: references [1] Gateau, Samuel. “The In and Out: Making Games Play Right with Stereoscopic 3D Technologies.” GDC 2009, http:// developer.download.nvidia.com/ presentations/2009/GDC/GDC09- 3DVision-The_In_and_Out.pdf [2] Benerdal, Erik. “Generating stereoscopic images with parallax occlusion mapping,” www.scalari. net/2008/04/22/generating- stereoscopic-images-with- parallax-occlusion-mapping After the reciprocal divide and considering only the Subtracting these gives the displacement between [3] Didyk, Peter, Tobias Ritschel, Elmar x values, we end up with: the left and right views in NDC space: Eisemann, Karol Myszkowski, and Hans-Peter Seidel. “Adaptive Image-space Stereo View Synthesis.” In , Modeling, and Visualization (2010), Reinhard Koch, Andreas Kolb, Christof Rezk- Salama (Eds.) [4] Brawley, Z., and Tatarchuk, N. 2004. “Parallax Occlusion Mapping: However, NDC space has a range from -1 to 1. Self-Shadowing, Perspective- To convert this to a displacement for texture Correct Bump Mapping Using coordinates, which range from 0 to 1, we halve the Reverse Height Map Tracing.” In Where x_center is the result of non-stereo projection. distance, which gives us: ShaderX3: Advanced Rendering with DirectX and OpenGL, Engel, Expanding and simplifying, we end up with: W., Ed., Charles River Media, pp. 135-154. [5] van de Hoef, Marries, and Bas Zalmstra. “Fast Gather-based Construction of Stereoscopic Images Using Reprojection.” Utrecht University, 2011. If we replace S with s, this is clearly the same as the equation in Figure 6, so s is just S when reprojecting from a left eye view to a right eye view. Note that for center reprojection, we would split the difference going from center to left and center to right, and so halve the displacement. Again, signs are important for computing this: (Recall that d is cot(fov/2)). Similarly, for x_right: for reprojecting and rendering the left eye, we’d use –s, +sc/z, –S, and +T. For the right eye, we invert the signs and so use +s, –sc/z, +S, and -T. The end result is quite nice. We get most of the speed benefi ts of reprojection, with the good-looking alpha of standard stereo, and all it took was a little bit of math and some extra setup.

that the alpha-blended objects will primarily dependent on our DIY 3D code.php. I’m looking forward to have the correct depth occlusion. convergence plane distance c seeing how you improve upon it in Secondly, we must compute and our interocular distance i. In That’s the whirlwind tour your future games! standard stereo projection matrices reprojection we have the same of our implementation of 3D that will match up with our convergence plane distance, but stereoscopy in RATCHET & CLANK: JIM VAN VERTH has beenworked in the reprojected result. we have a different value s that ALL 4 ONE. I hope this gives you games industry since 1996, and is probably bears some relation to some direction in writing your currently a senior engine programmer at MATCHING STANDARD the interocular distance. However, own version of 3D stereoscopic Insomniac Games. He’s also co-author of AND REPROJECTION it’s unclear what that would be reprojection, no matter the the book Essential Mathematics for Games STEREO to match the standard stereo platform. To give you a starting and Interactive Applications. You can email projection. To determine that, let’s point, I’ve created an OpenGL him at [email protected]. Remember that we have project a point into left and right demo demonstrating the basic two variables for our standard NDC space and measure the delta techniques, which you can find RATCHET AND CLANK images courtesy/ stereo: S and T, which are between them in the x direction. at http://gdmag.com/resources/ copyright SCEA 2012

14 GAME DEVELOPER | OCTOBER 2012 www.unrealengine.com

worked on in the past such as Arx Fatalis, Dark UE3, along with advances in technology, Messiah of Might & Magic and Deus Ex: Invisible have helped the team implement exceptional War. lighting, develop better physics and gather more Reimagines First-Person characters on screen with higher counts. With “We’ve never worked on open-world games, As a studio, there’s a certain level of graphical but the confusion exists because our games – fi delity that the team loves. Smith and Colantonio Arkane Studios has been utilizing while mission-based – feel very nonlinear and like the abstract game mechanics, but they also 3 (UE3) to let their imaginations run wild in open-ended in very specifi c ways,” explained really like creating rich, interesting environments. crafting a world that looks unlike any game ever Smith. “There are multiple pathways through the seen before. Dishonored, the new fi rst-person environment. Sometimes these are just realistic “We’re using a lot of the advances in technology perspective action adventure game, is set in the routes, like rooftops and windows, and at other for a very analog AI system,” said Smith. “The AI industrial whaling city of Dunwall. The world has times these pathways are enabled by the player’s is not just a magic circle that knows where you’re a painterly style with a 19th century London feel choice of powers, play style and morality. We at when you’re inside the circle. It has a set of blended with steampunk, fantasy and science want to allow the player many choices so they can view cones. It’s used in the dark and with distance, fi ction infl uences. The teams in Austin, Texas and author their own experiences.” where the vision falls off. The AI goes into an Lyon, France have been using UE3 technology indeterminate state when it’s not sure if it’s seen to further push the envelope of non-linear Arkane had a choice in technology when it came you and will give up if it hasn’t found you. It’s a exploration. time to bring their vision to life. Colantonio said very warm, perception-based AI.” that barring the additional stealth and AI code that “We love fi rst-person action games with aspects the team wrote, UE3 enabled their artists and level The end result is a non-linear adventure that of RPGs or adventure games added in,” said designers to start immediately prototyping layouts begs for replay given the open gameplay choices. Raphael Colantonio, co-creative director on and mission concepts. This rich virtual world, ravaged by a rat plague Dishonored at Arkane Studios. “There’s a and fi lled with unique characters, shows yet particular type of game that is a blend of genres “Our game is special, blending fi rst-person another way that UE3 is being used to enhance that we’ve always strived to create: immersive, melee combat, stealth and physical mobility,” the creative visions of game developers around fi rst-person, with resource economics; a cohesive, said Colantonio. “So our tech director and lead the globe. Dishonored stands out from the plausible sense of place; variable approaches gameplay engineer – Hugues Tardif and Stevan crowd, such as UE3 games BioShock and Mass and outcomes that are presented in a consistent Hird, respectively – have led their teams in Effect before it, as an innovative new interactive way, often relying on simulation, so the player can the creation of a variety of features and code adventure. formulate and execute strategic plans in how they extensions.” undertake encounters.” Thanks to Arkane for speaking with freelance reporter John “We’ve used Unreal Kismet, Unreal Lightmass, Gaudiosi for this feature. Dishonored gameplay blends combat, stealth, and the new navigation mesh system and most of role-playing features. Gamers take on the role of a the standard tools. We’ve also added our own UPCOMING EPIC ATTENDED EVENTS supernatural assassin in a retro-future world. The features, such as audio propagation and a dialog GDC Online game mechanics can be applied creatively, as the editor, and we’ve replaced ‘Matinee’ with ‘Soiree’ Austin, TX developer is encouraging gamers to play their way. because we needed to have a way for our NPCs October 9-11, 2012 to constantly switch between AI and scripted MIGS According to Harvey Smith, co-creative director scenes,” added Smith. “We’re proud of the amount Montreal, Canada November 13-14, 2012 on Dishonored at Arkane Studios, there remains of things we got the engine to do at the same time confusion over the types of games Arkane has for performance.” Please email [email protected] for appointments

© 2012, , Inc. Epic, Epic Games, Unreal, Unreal Developer Network, UDN, Unreal Engine, UE3, Unreal Kismet, Unreal Landscape and Unreal Matinee are trademarks or registered trademarks of Epic Games, Inc. in the United States of America and elsewhere. All other trademarks are property of their respective owners. All rights reserved. ® ® ®

We are actively recruiting for the following key positions across our game and online technology teams: SENIOR SERVER ENGINEER | SENIOR RELIABILITY ENGINEER | SENIOR TOOLS ENGINEER SENIOR CONSOLE ENGINEER | LEAD 3D ENVIRONMENT ARTIST SENIOR 3D ENVIRONMENT ARTIST | SENIOR 3D CHARACTER ARTIST | FX ARTIST LEAD BATTLE.NET DESIGNER | LEAD CAMPAIGN DESIGNER | SENIOR LEVEL DESIGNER PRODUCTION DIRECTOR | BUSINESS OPERATIONS DIRECTOR jobs.blizzard.com Follow us on Twitter: @blizzardcareers

©2012 Blizzard Entertainment, Inc. All rights reserved. World of Warcaft, Diablo, StarCraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc., in the US and/or other countries. The stars of the Siggraph 2012 show floor By Carey Chico & Mike De La Flor Every year, graphics gurus and engineering experts congregate in a convention center to talk about new technologies, techniques, and trends at the annual Siggraph conference. Since we’re nearing the end of this console cycle, this year’s show focused mostly on maximizing performance and quality on existing platforms—and making high-end development gear more accessible to studios with smaller budgets. From the latest on voxels and new cutting-edge GPUs, to what’s new in the next generation of 3D art and digital-art peripherals, these are the trends at this year’s Siggraph.

Unreal Engine 4. effects (such as global a technique called voxel many texture lookups geometry, and are capable illumination) is often cone tracing (originally into a multiresolution of approximating complex computationally expensive, developed by Cyril Crassin: volume texture that stores geometry with fewer voxels. these effects have often www.icare3D.org/research/ directionally encoded voxel Because they are being been precomputed and GTC2012_Voxelization_public. data. With this approach, cast off of screen pixels, the baked into the scene. But pptx) to compute global they can use the cone’s limitation is the resolution of what if your lighting and illumination in real time. opening angle to gather the image. This significantly world are incorporating In the Unreal 4 engine, light from more directions, limits the time needed to more and more dynamic voxel cone tracing casts and they can efficiently produce results, and hence Voxels elements? Enter Voxel Cone rays off of each screen pixel, approximate distant can be done in real time. Voxels are three- Tracing. Martin Mittring which travel through the geometry through filtered There are a number of dimensional pixels. They’re from Epic Games spoke scene volume and which or mip-mapped pixel data benefits to the method that nothing new— is about the increasingly dynamically computes (the far scene gives a larger Epic employs here that help the most recent high-profile used sparse voxel octree global illumination. sample area with less produce the best results. game to use voxels—but global illumination in his Where ray tracing uses accuracy), which can then First, the voxels support they’re making a comeback “The Technology Behind the infinitely thin lines, voxel be used as an LOD system fractional occlusion and for a very particular Unreal Engine 4 Elemental cone tracing uses “cone for lighting detail. The therefore produce smooth use in games. Because Demo” talk, specifically traces” as an intersection voxels deliver an alternative cone-trace results. Second, producing indirect lighting focusing on how they used primitive, which generates representation of the level glossy reflections can

www.gdmag.com 17 be implemented with a either in the visualization goods in both directions software (though Maya single cone trace, while (such as real-time effects) (see: Team Fortress 2 hats and 3Ds Max plug-ins are ray tracing often needs or computing (real-time and Skylanders figures, for available, too). It’s a direct hundreds of rays. Third, rendering) end of the example), creative game and intuitive way to animate since opacity and color spectrum as necessary. developers will no doubt a character, and you get accumulate during the AMD launched four new want to keep their eyes and immediate results. Right trace, pixels hidden behind FirePro graphics cards, ears on the democratization now, the Quma can only other opaque pixels can be each of which use AMD’s of 3D printing tech. animate bipeds and is only cast aside for optimization. Tahiti GPU. The flagship 3D Systems (http:// shipping in Japan, though Finally, by only updating card is the FirePro W9000, cubify.com) practically support for quadrupeds the parts of the scene that which has 6GB of GDDR5 launched the 3D printing (and international sales) is have changed, Epic can memory and can hit industry in 1986, and the in the works. optimize the calculations processing rates of up to company’s new Cubify IPi Soft showed off a even further. Martin four teraflops, as well as ($1,300) is a consumer- markerless motion-capture showed off a lit scene from lower-end W8000, W7000, oriented 3D printer with a software system called iPi the Unreal demo which and W5000 models. Like small (5.5-inch) printing Qumarion human Motion Capture 2.0, which demonstrated indirect NVIDIA’s Maximus, the platform. Combine this input device. uses your PC and one or lighting and ambient new FirePro cards are with 3D3 Solutions’s two Kinect sensors (or even occlusion. If you’d like designed to integrate (www.3D3solutions.com) webcams/digital cameras) to know more, you can heavy visualization tasks Kinect-based 3D scanning to let you create your own find Mittring’s slides such as design, and heavy system ($599)—which mocap studio, use the and some sample video computing tasks like lets you capture a 3D object CyberGlove Systems to clean here: http://advances. rendering, into one system. and use its software to (www.cyberglovesystems. up and edit the animation realtimerendering.com/ Meanwhile, ARM had its produce an exportable mesh, com) typically develops post-capture, and convert s2012/index.html new quad-core Mali-T604 complete with diffuse texture technology for military, it into commonly used file GPU on display. Several information—and you might scientific, and engineering formats (including GBX, BVH, applications were running just have what it takes to applications, but the new and Collada). The capture on the new GPU, each kickstart the consumer 3D CyberGlove II system was area is around 7 by 7 feet, focused on specific features. printing market. demoed with a rigged but can expand to 20 by The bottom line is that the Acute3D (www. character in MotionBuilder. 20 if you implement more Mali-T604 delivers significant acute3D.com) takes a Eighteen sensors lining the cameras. There is a trial hand and fingers of the glove “Emerald” NVIDIA GPU processing power for different approach with its version of the iPi Mocap Tesla GPU-Accelerated real-time physics, particle Smart3DCapture software are mapped to the joints of Studio software on iPi Soft’s Supercomputer simulations, and advanced suite, which builds 3D a rigged digital character; web site, and the iPi Recorder lighting, which will give models from simple slip the glove on and move software is free. Pricing GPU Computing mobile developers more photographs—no scanning your hands and fingers, and for the iPi Motion Capture GPU computing—the power to play with in their hardware required. you will pose and animate software line is $295 for the practice of using your games. (Samsung mobile Smart3DCapture consists of the figure accordingly. You Express version (supports powerful GPU along with devices have already begun two programs: S3C Scanner can use one glove to drive one Kinect, no multicamera your workstation’s CPU to employ the Mali GPU.) scans individual objects, more than one character support); $595 for the to speed up calculation- and S3C Surveyor produces at a time, or you can use a Basic version (supports up heavy tasks—has gained Botmill 3D 3D surveys of physical pair of gloves to animate to two Kinects and three or significant momentum in printed part. locations. In one demo, several characters. The four video cameras); and computer graphics lately, Acute3D representatives connection between your $1,195 for the Standard and NVIDIA, AMD, and ARM showed how Surveyor could hand movements and the version (two Kinects, three all showed off their new capture entire cities with corresponding animation to six video cameras, and gear for the next year. satellite photo and street- doesn’t feel particularly can track multiple people. NVIDIA announced based panoramic data— intuitive at first, but it doesn’t the second generation of handy, perhaps, for game take long to adapt to it. the Maximus workstation devs looking to quickly SoftEther (www. platform, which combines Cheap 3D prototype a large city level. softether.co.jp/en) was on its Quadro and Tesla cards Printing hand to show off Quma, a into one system so artists 3D printing was at jointed, anthropomorphic, can use the same system Siggraph in a big way this Character USB-based input device to model, texture, light, and year—not because it’s animation aids that looks like a small toy Asset animate heavy datasets, a new topic per se, but Character animation robot. Quma is essentially a then render in real-time because it’s getting cheaper is a tedious process, so miniature, real-time, motion- development or even run simulations (read: within the four-figure we weren’t surprised to capture system; it has 32 applications while designing. Maximus limit of a typical credit card). see plenty of tools and sensors in its joints that From models and is a scalable system, so Considering that we’re services on display that capture its position and send textures to animation and artists can choose to seeing more crossover promised to streamline the the data to a rigged digital special effects, you can’t focus processing power between digital and physical animation workflow. character in its proprietary make games without art

18 game developer | october 2012 assets—or the applications NewTek showed artists use to them. off LightWave 11.5, Autodesk, Pixologic, the latest version of its NewTek, and other workhorse 3D modeling developers were on hand at and animation suite. Siggraph 2012 to show their This release introduces newest wares. Genoma, a modular rigging Autodesk’s 2013 system built into Modeler Entertainment Suite (3ds that lets artists quickly Max, Maya, SoftImage, rig biped or quadruped Mudbox, Motionbuilder, models, and includes and SketchBook Designer several preset rigs for Pro) should be intimately common parts like spines, familiar to any reader of arms, legs, and even Octane Render. Game Developer. Beyond wings. Also, LightWave’s the usual application- core modeling toolset has specific incremental been catching up to its updates, the overall competitors with new tools emerging trends and products theme is improved like Edit Edges, Thicken, Cloud rendering: Cloud rendering is a growing trend for smaller development houses that do interoperability between and UV Unwrap, and its not have their own data centers or render farms, and we saw plenty of them on the show floor, including Keyshot (www.luxion.com), Fox Renderfarm (www.foxrenderfarm.com), XL render (www.xlrender.com), Autodesk products and animation and special and Rendercloud (www.scalar.ca/rendercloud). external applications. For effects features have Optis Material Scanner (OMS2): The OMS2 (www.optis-world.com/products/ example, Maya features added a new specialized hardware/OMS2.html ) is a handheld device that essentially lets you scan textures into your CAD native support for Alembic, particle system called application, which could be handy for artists looking to make their materials and textures more realistic. making it easier to transfer Flocking, which simulates The OMS2’s sensor picks up surface and light information and dumps it to your laptop so you can quickly scene and animation data more organic-looking flock work with your new material. You can also pair the OMS2 with Theia-RT, Optis’s real-time raytracer, to scan between applications; movement, and improved real-world objects and update Theia-RT immediately. Media Sync in 3Ds Max soft-body bullet dynamics. Path tracing: Jules Erbach showed two interesting tech demos that aren’t quite ready for prime can transfer scene and NewTek also spotlighted time yet: OTOY’s Path Tracing renderer, called Octane Render (http://render.otoy.com), and a real-time path tracing tech demo called Brigade. Octane Render is a path-tracing renderer that is so fast that animation data to and LightWave’s Virtual Studio users can change their material settings and receive near-instant feedback. Brigade (http://igad.nhtv. from Adobe After Effects; Tools, which provide artists nl/~bikker) is a research project attempting to provide a real-time path-tracing solution. Brigade’s path- Mudbox’s compatibility with real-time performance tracing implementation tracing uses both the GPU and CPU, and balances the use of both depending on with Adobe Photoshop capture for virtual cameras the time to render each frame. The renderer can support an unlimited number of light sources. continues to improve the and lights and character Z-Space: Z-Space (http://zspace.com) is a 3D-viewing station that features a 24-inch passive process of exchanging paint puppeteering via game stereoscopic 3D display fixed with tracing sensors. With a pair of polarized 3D glasses and the included stylus, you can use the display to view and manipulate objects in 3D. This wasn’t the only 3D-viewing layers and data between the controllers. For example, a system shown on the convention floor, but it was certainly one of the most impressive systems, and we two applications. development team could can expect to see many more 3D systems appearing in future shows. — Carey Chico Pixologic’s ZBrush 4R4 move through and interact was released a few weeks with a game level inside Digitizing before Siggraph, and the LightWave to work out Also, Wacom has Having worked on all platforms, tablets hot topic at the booth animation and design. discontinued its popular from PC to console to mobile, was the new QRemesher Lightbrush ($1,500) is Wacom’s booth was Cintiq 20UX model in favor he has carefully nurtured his Alpha, which automatically an intriguing new shadow constantly crowded with of the new Cintiq 22HD, talents toexpand his skill sets retopologizes any mesh, and lighting manipulation attendees waiting to try out which features a high- driving products and managing and the QRemesher Guide tool by Tandent Vision Wacom’s latest line of Cintiq definition, widescreen studios from creative, Brush, which lets artists Science that was recently drawing tablets. The main LCD panel that is brighter production, and business direct polygon and edge released for the Mac (http:// attraction was Wacom’s and has higher contrast mindsets. He has always flow for cleaner, more tandent.com/lightbrush. new flagship panel, the levels than the 20UX, been an active member of the predictable quad meshes. html). In the demo, Tandent Cintiq 24HD Touch, which and a stylus built on the industry at-large, formerly as a Also new to version 4R4 is representatives showed lets the artist directly Intuos 4’s design, with GDC Advisory Board member, a the Virtual Machine, which how artists looking to use manipulate documents 2,048 pressure levels freelance writer for Gamasutra lets the artist look through photos as sources for and content with hand and 60 degrees of tilt and Game Developer magazine, thousands of undos to textures could take a photo gestures, so you can rotate, sensitivity. Unlike the and a frequent speaker at review a model’s history of a brick wall that had tree move, and scale with one much larger Cintiq 24HD industry trade shows and over time, and the new shadows splayed all over hand while holding your (see our review in the events. Curve engine, which works the surface, use Lightbrush pen in the other. It does September 2012 issue with various brushes to indicate an area of diffuse take a little getting used of Game Developer) the Mike de la Flor is a freelance (such as the Insert Multi color and an area of shadow, to, and right now it’s only 22HD retains the standard medical illustrator, animator, Mesh brush or Tube brush) and let Lightbrush separate supported in Corel Painter popular Cintiq stand. instructor and writer. He’s the to help you lay down the shadows out into a and a handful of Autodesk author of The Digital Biomedical complicated organic or separate layer. A Windows productions, but we think Carey Chico is a 16-year Illustration Handbook and other mechanical details. version is in the works. it’ll catch on quickly. veteran of the game industry. CG books.

www.gdmag.com 19

Disclaimer: This article does not provide legal advice and should not be interpreted as such. If you have any legal questions, please consult with an attorney licensed in your state.

I pressed send, and one by one, the termination notices flew off to their unlucky recipients. That was the simple part. I was the only one in the office at that point, surrounded by several lined-up computers, assorted cables, fancy wire garbage cans, and cubicle walls for 10 workstations. The story behind the closure of my studio, Globex LA, was simple: The latest bridge loan targeted our publishing and marketing effort in China, which meant that I suddenly had no funds to make payroll. Given the suddenness of the situation, the only thing I could do was soften the blow and work to dissolve the studio in a way that took care of our staff in the best way possible. Closing down a studio is not easy (and it never should be), but one can enter into it prepped and aware of the details that will help By Carey Chico make the process easier on both you and your employees. Hopefully, you’ll never have to use it.

www.gdmag.com 21 exiting gracefully Not every studio closure has to be a 38 Studios-esque gossip-strewn 1. If you have no money and you cannot guarantee salary—and you affair. I was with when it closed in 2009, and its closure know it—don’t let your employees work another day. was as well thought out and orderly a process as one could expect. A huge 2. If you terminate your employees and still haven’t paid their group of HR agents and escorts were on hand to manage the process, group wages, then the clock starts ticking. meetings were delivered on each floor to make the announcement and outline the procedures for termination, and support programs to help people In the situation where you have unpaid wages, the following rules then go write résumés and find new jobs were discussed. Surprisingly, there was into effect: laughter and smiles, unsurprisingly mixed with melancholy and sadness. In the end, Pandemic’s closure was executed in a manner meant not just to care 1. Each day that goes unpaid is charged a full day’s wages. for the employees, but to engender a little bit of hope in them as they left the 2. This goes on for 30 days. office for the last time. If you have to close, that’s how you want to do it. Given that I was also one of those employees who received my layoff notice that After this period, the laws regarding unpaid wages are different in every day, I can tell you that I’m not speaking from the perspective of those who state. In California, we could have incurred penalties from the state; in other were in charge that day. states, it could have been a misdemeanor or even a felony.

judgment calls prepping the employees The bottom line is that closing a studio is a horrible experience no Preparing the employees for the studio shutdown can be the difference matter what you (or anyone else) do. People in charge never relish the between a chaotic closure and an orderly, responsible one. Here are some opportunity to do layoffs or mass firings. The best thing to do is not lose suggestions and guidelines on how to bring the house down while limiting focus of the people during the process. Focus on closing your studio in collateral damage. the fairest way possible. This starts with being honest not only to your Close your studio earlier than you want to. In an ideal scenario, it would employees, but to yourself. It’s very easy to justify keeping the team in the be best to prep for a shutdown before you have run out of money. It’s not dark, telling yourself that you are shielding them from harm, but most of easy, of course; often, many founders are extremely driven individuals who the time this is just nonsense. The selfish part of you is saying “If I tell them may have misplaced optimism regarding the state of the company, and can what’s going on, they’ll leave,” but the compassionate part of you is saying, end up being their own worst enemy. But if the reality is that you have only “I need to let them know what’s going on.” one month of funds left with no potential financial solutions on the horizon, If your conscience still hasn’t triumphed, you might be more persuaded you might be better off laying off your staff with at least one month of by the law: The simple fact is that you cannot let people work for free, knowing severance and outstanding vacation pay. that you cannot pay them. (See the Fair Labor Standards Act in the Resources Tell everyone together. Ultimately, it’s best to perform a mass layoff section.) Two things are important here: together, as a company, in one room. If you are a larger organization, you ez r i m ra uan BY j s ILLUSTRATION

22 game developer | october 2012 will have to bring your leadership team on board early and employ them in end this may have actually slowed down the team’s momentum and limited the actual termination process, since they will be needed to help deliver the progress on game projects that they were working on. An important note to information. Most everyone should hear about it at the same time. In my clarify is that I implemented work sharing in January, two months before the case, at my studio, I had my COO prepped for the event, but we both sat in the studio reached the point of impending closure. At that point, the goal was to same room and let everyone know the situation together. retain employees as long as was necessary until the company could reach Unpaid leave can buy you time. After notifying the team about the revenue generation. funding problem, the next thing I did was put them on unpaid leave. Given the extremely surprising nature of our shutdown, this allowed the studio to wind down with a softer landing. The nature of unpaid leave is that it retains the hope of resuming work within a short time period. This is useful if you know termination you can’t pay people now, but you have high hopes that they can come back Leading up to the final date of March 31, I notified the to work within a short period of time. In our case, we had high hopes that this parent company of our impending closure, and prepared would happen. We had 15 days remaining in March—which meant 15 days of paperwork for the team in the event that I would have to active benefits before I had to pay new insurance premiums for the staff. This terminate them. The key reason I could not keep them on may be dependent on your state’s labor laws, though, so you’ll have to figure unpaid leave past March 31 was because I would have to out what your specific situation requires of you. pay the premiums on all benefits for that next month, so Work-sharing programs may soften the blow. In my case, California I had no choice but to terminate them if we could not find had a statewide work-sharing program that can help employees on unpaid the funds to move forward. As it turned out, that is exactly leave; if a company implements a reduction in wages or hours greater than what happened, so I issued termination notices to the team 10% each week, then the company can apply for work sharing on behalf of its via email (we didn’t need to call them back to the offices for employees. The state then will pay partial unemployment benefits relative to that). The termination process requires the employee to fill the percentage of wages that have been reduced. out a few different forms, which help the employee apply While this doesn’t equal a 1:1 replacement for wages lost, it does allow for unemployment (and help the company cover its butt). employees to receive unemployment benefits services before they are unemployed. It also allows a company to try to retain employees rather than do immediate layoffs to save money. The work sharing program even allows a slow ramp down of wages/hours to permit a full 100 percent benefit while on work sharing. winding it all down It’s important to note that while the goal of this was to supplement the lost At this point, I was the only employee left. I had deferred my resignation wages, it also was a strategy to improve team morale. To make it even more in order to take care of all of the remaining issues of a closure. Despite fair, we also initiated four day work-weeks. This was a blessing and a curse in having issued the termination notices, I wasn’t done yet. I still had to take some ways. The goal was to again work to the employees’ benefit, but in the care of the bills, rent, benefits, and assets.

www.gdmag.com 23 Craigslist is your friend. While selling assets to employees is a logical for example, you may find out later that you are the guarantor for the card if solution, it’s not the best option. There are certain liability risks and potential the company fails to pay it. This comes as a surprise to most everyone who wage claims and lawsuits that make selling assets to ex-employees a has a card for their business. risky one. (Also, the concept of a newly unemployed person spending their Generally, when you sign up for a business bank account, you get a business last paycheck by putting it back into the company by which they were credit card along with it. What isn’t so clear is that, even though you may be just terminated just doesn’t seem fair.) To sell the assets, I posted ads on incorporated—even though you may have a company tax ID number attached to Craigslist and called other potential buyers, such as an auction house and that account—your signature affirms your personal guarantee for the balance of a used-furniture reseller. I ended up selling most of the assets via Craigslist that card. So, after the company has shuttered and you are long gone, you may and managed to sell almost everything within two weeks. On the last day, I discover an old balance from that card that is now your responsibility to pay. had arranged for a secondhand office-supply company to come by and take the remaining desks and cubicle walls out of the office for free, which wasn’t ideal but let me close the doors on a vacant office. One might think that the office management may have wanted the furniture for the next tenant, but the kindness of vendors this wasn’t the case with my office building. If you’re lucky, not all the people you work with while closing Be persistent with lease negotiations. Our studio still had one year left down your studio will be so diligent in seeking final payment. on the lease, and the office management wanted us to pay a percentage I was lucky enough to have several vendors who continued of the final year for ending the lease early. However, with persistence you to provide services for me despite delayed payments. My should be able to exit paying only for the time used. In my case, after much IT consultant let me use my outstanding paid hours even discussion and pleading, the management finally agreed to terminate by after I could no longer make the monthly payments. My taking the deposit and remaining month of use. CPA graciously worked on profit-and-loss reports in spite of Check your benefit payment timing. With most benefits providers delayed payments for her services. My office furniture agent (including ours), you pay premiums in advance of the month that they are helped provide me with contacts for resellers who would help used. I had managed to pay our health, vision, and dental benefits through me remove the furniture from the office. My HR consultant the end of March, so the employees would remain covered until the end of granted me zero-fee consulting calls as I worked out the that month. However, at the beginning of April, I would owe the next set of details of the termination process. Thankfully, with these premiums, which I couldn’t pay. The process of shutting down the benefits selfless good-willed supporters at hand, the process went programs was fairly simple, but a few programs such as our VOIP service, much more smoothly than I could have hoped. 401k plan, and workers’ compensation insurance plan caused me long-lived problems which remain outstanding as I write this. Be sure to check the status of your benefit programs and try to reserve enough to ensure a proper roll-off of services to employees. moving on Budget for insurance audits. This was one of our sore points—when I gave my resignation two weeks after I issued termination notices to the you pay workers’ compensation insurance premiums, you prepay for the employees, but this wasn’t the end of my work shutting down the studio. year based on total wages for the office. At the end of the year, the insurance Even after resigning, I kept in contact with all the employees to give them agency audits your studio to determine the difference between predicted guidance. In the end, my personal wages and actual wages. If you are like any other studio, you’ll be hiring belief is that the most important or giving raises throughout that year, and you’ll find that you owe more for aspect to shutting down a studio is resources workers’ comp insurance than you previously paid. Of course, if you are how you deal with the employees Fair Labor Standards Act: www.dol. terminating a studio and you have no cash, you’ll find that you owe money who put their trust in you and in the gov/whd/regs/compliance/fairpay/ for workers who are no longer working at the company. company. While it may seem that fs17g_salary.pdf California Total and Partial Service contracts are a pain to terminate. Those service contracts you you are only dealing with X number of Unemployment documentation: www. signed to minimize your monthly expenses will come back to bite you. We employees, the repercussions of the edd.ca.gov/uibdg/Total_and_Partial_ had a hard time dealing with our service contracts (such as our VOIP service) event will affect spouses, children, Unemployment_TPU_8005.htm because if you are on contract, you may owe a large early termination fee. and extended family in ways that California’s Work Sharing Unemployment You will have a hard time convincing these companies that you don’t owe the are not initially obvious. Do what’s Insurance Program: www.edd.ca.gov/ pdf_pub_ctr/de2329.pdf money—because technically you do—and cannot pay the termination fee right and fair. Shield them from pain, because your company is being shut down. There isn’t a whole lot you can do; not the truth, and always remember you’ll end up receiving collection notices for these outstanding amounts and that after this experience, there will be another one—and it’s a small industry you’ll have to work out solutions to these issues. In our case, I’ve discovered indeed. In some ways, we are remembered for not only how we ran the studio that these companies have no empathy at all to the issues plaguing a company and for what products we made, but also how we cared for our employees shutting down, and generally don’t believe you when the business ended. when you say you have no more money to pay them. Carey Chico is a 16-year veteran of the game industry. Having worked on all platforms, from PC to console to mobile, he has carefully nurtured his talents to expand his skill sets driving products and managing studios from creative, production, and business mindsets. He has personal always been an active member of the industry at large, formerly as a GDC Advisory Board liability member, a freelance writer for Gamasutra and Game Developer magazine, and a frequent When you start a company, even a speaker at industry trade shows and events. legal corporation, you might think that you are shielded from personal liability. Special thanks to Helen Parker for HR consulting and Robert Surprisingly, this isn’t always the case; Wynner for legal counsel throughout this ordeal. if you have a business credit card,

24 game developer | october 2012 ZB

RUSH

®

Game Design at VFS lets you make more enemies, better levels, and tighter LAZAR NIKOLAS BY WORK STUDENT VFS industry connections.

In one intense year, you design and develop great games, present them to industry pros, and do it all in Vancouver, Canada, a world hub of game development.

The LA Times named VFS a top school most favored by game industry recruiters.

THE ONLY ONE-YEAR PROGRAM IN PRINCETON REVIEW’S 2012 TOP GAME DESIGN PROGRAMS

WWW.GDMAG.COM 25 26 game developer | october 2012 By Chris McEntee

With , sought to bring Rayman back to his 2D roots with a fresh coat of HD paint and gameplay that felt both new and nostalgic. But no team has an easy time building a brand-new engine and using that work-in-progress tech to make a game—especially when that game is a reboot of one of the company’s oldest and most beloved franchises. Rayman Origins has had an amazing critical reception since its release in late 2011, and the game remains one of the most creative, chaotic, and valuable game experiences most of them have had to date. The following postmortem is a culmination of what I have heard and discussed with numerous teammates, as well as a personal reflection on what I experienced and witnessed while working as a designer on Rayman Origins.

www.gdmag.com 27 This is one of the major things that was done right on RAYMAN ORIGINS; the team was small when there was time to breathe, but when it was time to get the game out there, the team was able to expand with talent just in time to go full steam ahead and build a RAYMAN worthy of the franchise.

2. THE UBIART FRAMEWORK A few years ago, Ubisoft Montpellier set out to build tools that would encourage artists to experiment freely, by themselves or in small groups, regardless of their experience or artistic domain. With these new tools, each of the artists can create a unique and interactive prototype with ease; seeing your artwork in action is as easy as dragging and dropping it into the scene. This was the concept behind the UBIart framework, and it is one of the main factors that contributed to RAYMAN ORIGINS’S success. With WHAT WENT RIGHT team, working under rather calm make sure that the pre-production no in-engine asset browsers, the 1. START SMALL circumstances, was able to explore process would build a solid base for artist simply has to browse in AND EXPAND WHEN and experiment with this new the production team to tackle when Windows for the desired asset and NECESSARY technology before the pressures of it was their turn to come on board. drop it into the editor window, which RAYMAN ORIGINS began as a small production and release dates sunk Eventually the team became makes it much easier to add assets production of only fi ve individuals in, which let them establish RAYMAN about 75 at the Ubisoft Villa, into the game. The engine might with a vision of creating a creative ORIGINS’S identity and creative vision and around 15 in Casablanca, not be user-friendly enough to be and artist-friendly engine and using early on. making a team of more or less 90 released to the public in its current it to produce a quality game. They The real pre-production phase pushing through a tough and short state, but it is very streamlined so worked in the intimate Ubisoft came about after several months production cycle to get the game that it only has what is necessary Montpellier Villa under RAYMAN of experimentation and engine out on time, and even artists from for the development team. creator , and at fi rst they building, and an additional team Ubisoft Refl ections in Newcastle While building UBIart, the team didn’t even know their project would of people began to trickle in to were brought on to pick up some of developed an integrated animation end up as a RAYMAN game. This small help cover all the creative bases to the slack in the last stretch. tool called GenAnim, which lets

28 GAME DEVELOPER | OCTOBER 2012 animators combine hand-drawn is especially true for platforming from creative director Michel Ancel. by Olivier Palmieri. (You can read animation with modern bone-driven games, as they are entirely based While creativity is obviously an the article here: http://gamasutra. techniques. This was integral to around the player’s ability to use important aspect of game creation, com/view/news/167322/Rayman_ building RAYMAN ORIGINS’S unique the controls to deftly maneuver and had a very large hand in the Origins_designer_Chris_McEntees_ animation style, which is reminiscent the player character through critical success of RAYMAN ORIGINS, rational_approach_to_game_design. of Saturday morning cartoons with troublesome terrain. The better this pure uncontrolled creativity can be php.) Here is a quick explanation of a hint of a French touch. In fact, a character feels for players, the more dangerous to game development. rational design from that article: handful of animators on the RAYMAN quickly they will feel in control of the A highly creative individual or team team came not from the video avatar. With RAYMAN, we combined needs very rational designers to "Rational design is all about game industry, but straight from hand-drawn animations with fl uid balance them. eliminating unnecessary animated fi lm; with GenAnim, they movement metrics, which results in In RAYMAN ORIGINS, the game information, making can be easily integrated into the control that few players have ever director, Sébastien Morin (who has a things inherently readable, development team. experienced in a game before. strong background as a programmer), understandable, and The UBIart framework is handy The UBIart framework was not and the level design director, Olivier apparent, introducing for designers, too, because it’s originally developed specifi cally Palmieri (who is highly skilled in the mechanics in an orderly and easy to prototype with. Its intuitive to create a RAYMAN game, and it fi eld of rational design—I’ll talk more easily digestible fashion, skeletal binding system makes it wasn’t until the basics of the engine about this later), helped contain and preserving the learning easy for designers to use the game’s were up and running that Ubisoft the outpouring of creative ideas. and diffi culty curves of existing characters and objects decided to create a RAYMAN reboot. Every day they would fi lter them into a game, known as macro to set up complex ideas in simple From there, the artists defi ned his something equally charming but far fl ow. In principle, it is best ways. With UBIart, it’s fairly easy animation style, and when they felt more manageable for the team to to provide a player with to create a basic level topology, that his movements looked fl uid and build (and more easily understood by signifi cantly interesting and defi ne collision, and apply textures fun, the programmers ventured to the player). deep mechanics that are to the level’s “friezes” (blockout craft the in-game movement metrics This process of rationalizing well explored and exploited geometry), and the engine will to match the fl uidity and timing of creative output for implementation through clever rationalized make sure it has proper artwork the animation. The player mechanics didn’t happen until pre-production level design, rather than that scales and tiles accordingly were designed and implemented had been fi nished for a while; for the injecting the game full no matter what confi guration or iteratively, and the animations were year of pre-production, where the of one-shot gameplay number of vertices the designer changed and tweaked and thrown small core team was creating the mechanics to feign depth. uses. The most important aspect away until the three Cs felt perfect. UBIart framework and developing A good mechanic, such as of the UBIart framework to a level Only once the main character was the three Cs, we didn’t need to worry the portal gun in the Valve designer, however, is that the fi nished and comfortably fun to about it. Pre-production is the perfect game Portal, can carry an game is always running in the control did we begin working on level time for creativity to run Irampant entire game by itself with the editor, so as the designer pulls and and gameplay element design. and see where it takes you, because addition of proper gameplay stretches the geometry, or drops The reason this worked out you are still working hard to defi ne elements to help emphasize in a series of platforms, RAYMAN so well is that rather than making the identity of your game. the usefulness and depth of continues to animate and move levels and designing the character Once production started, the mechanic.” with the geometry, just waiting for a mechanics concurrently and however, the design directors controller input to take him through having both infl uence each other stepped into their roles more fi rmly When this Design Academy was the environment. Someone can even (which would potentially water and began to tackle the sea of fi nished, Palmieri came to the be playing while another person is down the three Cs to compensate interesting concepts and mechanics RAYMAN ORIGINS team as level design editing, which makes the process for the level-design metrics), the and rationally a game director to teach the design team of refi ning and iterating on a level team knew the character felt great system out of it, and Michel Ancel how to properly rationalize the game. much more effi cient. and just needed to build levels that stayed involved in order to preserve Before this, the team had some idea he could traverse with the use of the game’s creative charm. It was of what they wanted for the levels in 3. FOCUS ON his skill set and metrics. In this this fi ne balancing act between two the game, but once they began the THE THREE CS way, the team was guaranteed that great forces that kept the project rationalization process, the design At Ubisoft, the three Cs of a no matter what, playing through on an even keel and ultimately became far more consistent. The game (camera, character, and the levels was going to feel fl uid produced a game that was both level design team employed rational controls) are the most important and fun. While the team did end up creative and playable. design to understand how diffi cult thing to defi ne and maintain making changes to the three Cs a gameplay sequence was, why it because they determine the player’s later in the development process 5. RATIONAL LEVEL was so diffi cult, and where in the experience throughout the entire to fi ne-tune them, the fact remains DESIGN macro structure of the game such a game. Obviously, when the control that the RAYMAN that was functional In March 2012, I wrote a sequence would fi t. Rational design of the main character feels wrong, before game production began was lengthy article on Gamasutra helped defi ne what color a gameplay when the camera just doesn’t cut it, at least 90% of the RAYMAN that is about Ubisoft’s internal rational element should be to greater clarify or when the character animations playable in the fi nished product. design methodology, which was its function in the game, and it don’t provide good feedback to conceived by Lionel Raynaud, even denoted when some exotic player inputs and in-game actions, 4. CREATIVITY VS. Ubisoft worldwide content director, gameplay was required to break up the overall experience in the game RATIONALITY and Eric Couzian, Ubisoft game the repetition of the core gameplay. world feels awful, even if the game Creativity is a hallmark of Ubisoft design conception director, and Quite a large handful of reviews and level design is outstanding. This Montpellier, and much of that comes was taught throughout Ubisoft of RAYMAN ORIGINS commented on

WWW.GDMAG.COM 29 its learning and diffi culty curves, gameplay element, they should have witnessed nearly every time during were constantly changing their saying that they are as close to a sense of instant familiarity with playtesting. Ultimately the birds minds because only when they perfect as a game can get. While it, and an inherent understanding remained birds, but their original saw the elements in action could the team understands that it isn’t of what it is and what it will do. In red coloring (which was foolishly they really know if they were what perfect and there is always room this way, the designer makes an the exact same color the enemy they wanted. This meant that rules for improvement, the fact that the agreement with the player to provide birds were sporting) was changed to changed almost every day, and players felt the need to comment clear signs and forms, and in return green to match the green color of the it was not possible to constantly positively on the diffi culty of the the player cannot feel cheated when platforms in the previous world. brief the Casablanca team on game is testament enough to the they fail; if all the information is This was not an isolated case what changed twice a day. This implementation of rational design provided clearly, then it is only the of form defi ning function in the meant that when it came time to methodology. Through its use the player’s lack of skill that is to blame development of RAYMAN ORIGINS, and review the outsourced content, it designers were able to anticipate for their failure. as a result the game simply isn’t as was unsurprisingly “sloppy” by what a player should be learning In a creative project like RAYMAN, easy to read and understand as it defi nition, simply because it had at any given point in the game, as however, the development was could have been. been created under an outdated rule well as understand where it was very much driven by artwork, set. Ultimately the responsibilities of appropriate to challenge the use of style, and silliness in character, 2. OUTSOURCING the Casablanca team were adapted certain in-game powers. environment, and object designs. Outsourcing has become a to fi t into an area of production more Not only was the fi nal game Many of the gameplay elements standard in game production; all the easily managed by an outsourcing better thanks to the rationalization that can be seen throughout the biggest and best projects outsource coordinator, since the rules could process, it helped push out the game were built backward, where to other studios to simply get the be set in stone and easily overseen 60+ levels that were required for form defi ned function. Rather than massive volume of work done constantly from abroad. the release of the game. When asking, “We need a platform for within the publisher’s unrealistic In the end, the outsourcing we were getting close to the end this world, so what can we make timeframe. While RAYMAN was not really helped in the creation of the of the production phase, we still it look like that will clearly signify exactly a massive production, sheer volume of content required had a lot of levels left to build, and its function as a platform?” the it was still a triple-A game that to have a complete game, and there we were able to speed up that team ended up with something needed enough content to justify is no doubt that the game would process by creating rational design more along the lines of “So in this the price tag, and since Ubisoft not have been fi nished had it not tables and level design briefs for concept for the current world we Montpellier’s Villa was a fairly been for the collaboration with gameplay element distribution, have these silly-looking birds. small team, the studio looked to its the Casablanca studio. It is simply which gave the team a clear I suppose because their beaks partner studio Ubisoft Casablanca. important to realize the realistic direction. Production near the end are fl at they could be platforms, Ubisoft Casablanca is a very solid scope of what can be handled from was lightning fast compared to the right?” This doesn’t sound so bad studio. They have produced a number such a distance and how to best beginning, and the game made it at fi rst, but in this example, birds of Ubisoft titles, including a few make use of your outsourcing out the door on time with the scope were used as platforms, enemies, platformers, so it made sense to work partners to maximize the amount that was promised. and spiky traps. By using birds for with them on ORIGINS. The issue with of usable content they can produce. outsourcing is that the management of the studio and the communication 3. LACK OF PROPER TOOLS between studios needs to be top- The UBIart framework was, as notch for it to work, especially when previously stated, a godsend for the core team is so small. When a the production of a modern two- change is made to the level-design dimensional platformer. The core of guidelines, for example, virtually the framework was perfect for the every involved person knows before task, but the rest of the content- the end of the afternoon at the Villa. development tools weren’t properly For the outsourced studio, we have integrated with Ubiart, which made to make a phone call to relay this it hard for the dev team to create information. If it comes too late, levels or build out other aspects of the team there will have continued the game in the engine. working under outdated guidelines, Sure, there was GenAnim, which making some of their work obsolete was a very big part of creating even before it is created. RAYMAN ORIGINS, but even GenAnim This is obviously something that has its shortcomings. For an outside can be avoided simply by having a animator coming onto the project, Caption proper chain of communication, but GenAnim couldn’t be any less user- because of the fl uid way that the friendly; there are no menus, hardly WHAT WENT WRONG platforms, the team was giving the RAYMAN team at the Villa worked, it any buttons or tooltips, and even the 1. FORM DEFINED player the initial impression that became a problem quite quickly. animation timeline is as barebones FUNCTION they were actually enemies or traps At the studio, the team rarely had as can be. One wonders how the Architect Louis Sullivan famously to be avoided. Unsurprisingly, the a fully fl eshed-out set of rules animators get anything done at all said, “Form follows function.” In player’s fi rst instinct was to attack and guidelines for level creation in such a tool, but when you talk to games, this means that when the platform rather than to jump and implementation of gameplay one of the animators on the team it the player sets their eyes on the onto it, which is something that was elements; the creatives in the team becomes quite clear: Everything is

30 GAME DEVELOPER | OCTOBER 2012 done using keyboard shortcuts. In used in a wide variety of gameplay order to use GenAnim, you have to situations. Without this research, memorize the keyboard shortcuts. the design team was practically While the lack of proper tools fl ying blind until enough content had did not necessarily make the been created to justify the decision quality of the game any lower, what or, worse, prove it wrong and send it did do is make life more diffi cult things back to square one. for the team, meaning production Some of the gameplay elements was not as effi cient as it could have that were created ended up being been with the proper tools in place. far less reusable than others, which This point was not exactly clearly resulted in a large time investment recognized during actual production, on the art side, the programming as the team had been working in the side, and even the level-design side, basic engine since the beginning. since we needed to experiment Only when we started developing with each element before drawing the follow-up game conclusions on how useful it was. was it increasingly clear that the This is not necessarily anything new team needed better tools. There were or surprising for game developers, many small issues in the engine that and considering the sheer amount forced the level designers to fi nd of different gameplay elements in their own workarounds just to get the the fi nal game it would have been functionality they needed in place, impossible to experiment with all but with the simple addition of proper of them back in pre-production. tools and engine improvements the However, this doesn’t change the work was clean and fi nished fi ve fact that had the team focused on a times faster than before. broader range of different gameplay elements from all the proposed 4. LIMITED PRE- worlds in the game rather than PRODUCTION SCOPE focusing on every element in the Earlier, I mentioned that RAYMAN fi rst world, we would have been able ORIGINS spent a signifi cant time in to make the rest of the game more pre-production, producing a very smoothly and throw less work away. when the bosses were being created. which, through a few simple design solid base for the game (the UBIart A boss should also be there to choices, could have ended up far framework, the three Cs, GenAnim). 5. BOSS FIGHTS challenge a player’s understanding more understandable, relevant, Since it took so much work to build It is more or less safe to say that of the gameplay mechanics they and, ultimately, a lot more fun. a solid core for RAYMAN, we had to out of all the content that RAYMAN have been taught during the previous choose what we wanted to focus ORIGINS boasts, the boss fi ghts are far world. Let’s take the punch power FROM TO LEGEND on. During pre-production we had from the best part of the experience. RAYMAN learns in the Jungle world Many things went right with built the beginnings of a jungle Apart from the odd chase sequence of RAYMAN ORIGINS. The fi rst boss of RAYMAN ORIGINS, but there was world, complete with gameplay or Moskito shooter boss fi ght, the the game, Poor Little Daisy, should plenty of room for improvement, elements for the characters to rest are quite lackluster and require have been designed to challenge too. Luckily, the team has the interact with, but beyond that little skill to defeat; the player simply players to master the punch ability opportunity to create a follow- the team decided that the engine has to meticulously memorize an in high-tension situations. That way, up title, RAYMAN LEGENDS, on the and characters were the most otherwise unpredictable pattern, players can walk away feeling like U. We’ve been given important areas to take care of and then hope that there isn’t they have mastered the punch ability, the opportunity to not just improve before production started. This another phase afterward. and no matter what is thrown at them on the base of ORIGINS, but instead meant that we couldn’t start The other issue with the boss in future levels, it will not be their lack refl ect on our shortcomings investigating gameplay elements fi ghts is that there is a lack of clarity of ability to use the punch that will and craft a better, cleaner, and for the other worlds until the not only in the patterns, but in the slow them down. Instead, Poor Little ultimately better RAYMAN title that production phase began. creatures themselves. For example, Daisy simply required the player to is new and creatively refreshing for When the production phase each boss has its own weak spot employ the wall-run ability learned in both the team and our players. started, we had concept art for the that appears from time to time. This the sixth world of the game to avoid other fi ve or so worlds in RAYMAN weak spot is always placed on top of Daisy’s patterns until she hurt herself CHRIS MCENTEE was a level and boss ORIGINS, since we needed that to the creature, whose entire body is and revealed a weak spot, which designer on the production of RAYMAN defi ne the fi nal art style of the game. otherwise deadly upon contact. What could also be jumped on, rendering ORIGINS, having previously attended But concept art alone does not this means is that even if the boss the punch entirely optional. college in the Netherlands (NHTV Breda satisfy the requirements for pre- is in a temporarily stunned state, if The bosses were developed by University of Applied Sciences) where he production on a world. We needed the player misses the weak spot and a more isolated space of the dev discovered a strong passion for game to know if the powers the player touches the boss, they are hit and team, where some consistency design. He continues to work at the Ubisoft unlocks in each world are strong possibly killed. This is very unclear for issues were able to go by the Montpellier villa, currently as a game and enough to defi ne the gameplay a player, and something that should wayside. Unfortunately, this left level designer on the upcoming title experience and fl exible enough to be and could have been addressed the player with subpar boss fi ghts RAYMAN LEGENDS.

WWW.GDMAG.COM 31 toolbox

3odconnexi n SpaceMouse Pro B y CAREY CHICO

Let’s face it: We’re lazy. We made computers so we wouldn’t have to compute by ourselves, and we made graphical user interfaces and mice so we wouldn’t have to type anything. I’m just waiting for the day I can wear a semicircular, mind-melding device on my head to control my computer. This is kind of the appeal of 3Dconnexion’s SpaceMouse Pro. The idea that movement in 3D space can be simplified to one single controller appeals to my inner couch potato. Rather than holding down some keyboard keys while simultaneously dragging an oblong device—which I’m no doubt also holding down keys on—I simply hold and push one round controller and I’m flying in 3D space. Easy.

Floating over the world detected and used the SpaceMouse Let’s see how it fares in actual 3D in bliss Pro without any issues, but I was modeling packages. 3 Dconnexion SpaceMouse Pro The casual user can get the confused initially by how it was » www.3dconnexion.com best feel for the SpaceMouse Pro mapped. Once I got past the logic Working in 3D in Google Earth: One minute, I’m of shifting the mouse left-to-right » The first work application I tried PRICE smoothly gliding over the Earth in order to steer the plane, I was out with the SpaceMouse Pro was › $300 looking down like an astronaut. gracefully gliding over Hawaii. With Autodesk Softimage. It was at this SYSTEM REQUIREMENTS The next minute, I’m controlling my Microsoft Flight, the default settings point that I experienced some of › Windows 7, Vista, or XP Mac OS descent through the atmosphere so for the 3D controller didn’t use a the chronic issues that continually 10.4.6 (or later) USB port smoothly that I feel like a feather. return-to-zero position. In other plague these types of unique control PROS I found the movement so Zen-like words, if you pushed the controller devices. Ultimately, when you try to 1  Beautifully smooth operation that I spent an inordinate amount left to turn left, and then released employ the mouse for things other in Google Earth and other flying programs of time exploring random geological the controller, the movement of than simple movement through 2  Useful for zoom and pan in Photoshop wonders of the world. I probably the plane remained fixed to that 3D space, you discover it isn’t the when used with Wacom Pen spent a whole hour touring Disney controller position. You had to push it best method for getting actual work 3  Helps get the user out of the way for Paris with my son. As a promotional back to the right in order to stabilize done. For programs in which you asset review in 3D packages controller for Google Earth, the plane again. Ideally, this would want to move through commands at CONS SpaceMouse Pro shines. be an exposed setting that I could lightning speed, manipulate window 1  Not enough options for user- preference setting I also gave the SpaceMouse adjust to my liking. functions, and work in 3D space, 2  Can’t fully replace a mouse Pro a shot in Microsoft Flight to Of course, you probably aren’t the SpaceMouse Pro becomes 3  Needs to support more general test how the controller worked as a planning on buying a $300 mouse something of a handicap. When my program usage in Windows replacement joystick. The software for flight sims and Google Earth. hand is resting on the 3D movement

32 game developer | october 2012 toolbox

The SpaceMouse Pro is meant for movement. When I used the device with its factory settings, I could glide through my model just as with Google Earth. It’s perfect for demos, and it makes it easy to sit back and move through a 3D environment or review a model without my big head getting in the way. But when it comes to actually doing modeling work, it isn’t quite so useful.

knob, my mind is thinking images worked like a charm, and even be an ergonomic replacement have taken over the right side of my “movement.” When I’m doing I immediately preferred using the for a regular mouse—if the drivers keyboard—a place of prestige for the everything else in a 3D package, my SpaceMouse Pro to the dozens of existed, which we will have to wait universal controller, the mouse. mind is thinking “everything else.” keyboard shortcuts I’m used to. I and see whether the version 10 There just aren’t enough keys on this mapped the other keys to quickly set supports. During my Carey Chico is a 16-year veteran of the thing to go around. fit images to the screen and undo review process, the SpaceMouse game industry. He has always been an I focused my efforts on mistakes, which was handy. Pro earned a place to the left of my active member of the industry at-large, configuring the device (which, I did notice that as I panned an keyboard and caused me to enjoy formerly as a GDC Advisory Board thankfully, includes every key image, it would jitter slightly, which using Google Earth on almost a member, a freelance writer for Gamasutra command in Softimage), so that was at most a visual distraction. daily basis; kids especially love it. and Game Developer magazine, and a I could do some modeling. As Also, I could not paint while panning, Perhaps if the support of the device frequent speaker at industry trade shows I began to pare down my list, I though I think this is an issue with extended beyond the programs and events. tried using the SpaceMouse Pro Photoshop, not the mouse. All in all, tested above, the SpaceMouse could in actual modeling scenarios and I could see the benefits of having quickly found that no matter what the SpaceMouse Pro by my side in I set up, there was always some addition to my Wacom pen. key combination that I couldn’t perform without having to take Everyday PC apps my hand off the SpaceMouse and need not apply return it to the keyboard. There » After trying out the SpaceMouse just aren’t enough shortcut keys Pro with Photoshop, I wanted to know on the SpaceMouse Pro to replace whether it would change the way I a keyboard, which means you used my normal PC applications— need to choose between resting Internet Explorer, Microsoft Word, your hand on the mouse or the and so on. While some of the keyboard—you can’t do both. shortcut keys did work with these The SpaceMouse Pro is meant for applications, the coolest part of the movement. When I used the device mouse—the 3D controller—didn’t with its factory settings, I could work. The mouse currently doesn’t glide through my model just as with ship with any presets for these Google Earth. It’s perfect for demos, standard PC apps, nor could you and it makes it easy to sit back and really manually configure it to work. move through a 3D environment I think that’s a bit of a miss at launch or review a model without my big for 3Dconnexion—I really wanted to head getting in the way. But when have more use for the device beyond it comes to actually doing modeling my art packages and Google Earth. work, it isn’t quite so useful. The additional keys are a perk to a (Note: I should point out that at very sleek and cool control device, this point in my review, the device but for $300 I want the mouse to failed. The pan/zoom/tilt controls seamlessly handle volume controls, stopped operating correctly, and in playback controls, browser scrolling, some cases didn’t operate at all. I and other application-specific tasks. have to thank the 3Dconnexion team for working very hard to debug the A promising start problems and then shipping a new » I really wanted more from the unit to me that worked just fine.) SpaceMouse Pro. I liked it, to be sure, but ultimately, the best uses 2D work with a 3D mouse I found for it were in Photoshop (a » Even though Adobe Photoshop 2D program), Google Earth, and is a 2D application, using a 3D Microsoft Flight. For me, anyway, mouse with it is surprisingly the idea of keeping my hand on both handy. I used the SpaceMouse a mouse and a SpaceMouse makes Pro to smoothly scroll and zoom it harder for me to work, and in most in and out of images, quickly tab cases my keyboard connects me far through images, and instantly more contextually to what I’m doing switch among my four favorite than a 3D mouse does. I believe tools. Panning and zooming in on that the SpaceMouse Pro could

www.gdmag.com 33 INNER PRODUCT // AUTHORbruce dawson Floating-Point Misses Dealing with the dangers of floating-point math

Floating-point numbers are ubiquitous in games because they are a convenient way to handle the necessary math. Floats gracefully handle overflow and underflow, and they have enough range and precision that we can sometimes forget how limited and dangerous they are. Developers naturally want floats to be the same as the real numbers we studied in school, and floats maintain the illusion quite well. But sometimes the illusion comes crashing down—and brings your game with it. In this article, we’ll take a good long look at how floating-point math can make your life miserable—and some strategies for minimizing that misery.

32 bits, reinterpreted is accurate to about one part » If you’re reading this, you should in a thousand. If you measure already have a solid understanding someone’s height directly, then of the float format, so we’ll keep your answer will be accurate to the overview brief: A standard IEEE within about two millimeters. Now float consists of a sign bit, 8-bit imagine that instead you decided exponent, and 24-bit mantissa (see to stand the person on top of the Figure 1). Yes, this adds up to 33 Empire State Building, measure bits, but all that magically fits into a their height from the ground, 32-bit package, because the leading measure the height of the building, one of the mantissa is, for numbers and then subtract the two numbers. above FLT_MIN, implied instead of Instead of measuring 1.80 m being explicitly stored. directly, you are now measuring A handy feature of the 382.8 m and then subtracting floating-point format is that 381.0 m, with both measurements if you increment the 32-bit having an error of about .38 m. Your representation of a float, then answer will be the person’s height, you move to the next float away plus or minus about .76 m. The from zero. Adjacent floats (of the loss of most of the top digits when same sign) have adjacent integer subtracting similar numbers is representations. Incrementing the known as catastrophic cancellation. integer representation normally just increments the mantissa, but if the Addition of dissimilar mantissa is all ones, incrementing » Now imagine that you have two the 32-bit integer instead overflows numbers with dissimilar ranges— the mantissa to zero and increments perhaps the height of the Empire the exponent field. Due to the magic State Building and the height of the implied leading one, this of a person—and both of these still gives you the next float. This numbers are accurate to about one technique works all the way from part in a thousand. If you add them zero to infinity, and from negative a float is between one part in 8 Specifically, subtraction of numbers and store the result in a number zero to negative infinity, and we’ll million and one part in 16 million. with similar magnitude (or, that is accurate to one part in a discuss its application later. equivalently, addition of opposite thousand, then most of the digits of The range of a float is generally Don’t torment signed numbers with similar the small number will be lost. If you plenty large enough, but the the math gods magnitude) loses a lot of precision, do this repeatedly, the cumulative precision is a bit weak. A 24-bit » 24 bits of precision is enough and so does adding or subtracting a loss can grow arbitrarily big. mantissa means (for instance) for a lot of purposes, but if you’re small number to a large number. that for numbers above about 16 not careful you may inadvertently It’s the sig-figs, baby million, a float actually has less throw away most of that precision. S ubtraction of similar » It surprises a lot of people precision than a 32-bit integer. The It turns out that subtraction and » Imagine that you want to that multiplication and division rule of thumb is that, over virtually addition are the most dangerous measure someone’s height with aren’t the source of more math the entire range, the precision of operations for losing precision. a very long tape measure that errors—probably because those

Figure 1: The anatomy of a standard IEEE float.

34 game developer | october 2012 INNER PRODUCT // AbUTHrucOeR dawson

precision of your input numbers range of just a few seconds. We listing 1 is perfectly maintained, but the can therefore assume that time relative precision can get arbitrarily and intervalEnd are relatively A fragment of code used for dealing with particles—that unfortunately bad. In the example of measuring a close to each other, whereas magnifies floating-point math inaccuracy. person’s height when they are on a intervalLength is much smaller. skyscraper, the real problem is the In Listing 1, the first subtraction float CalcTBad(float intervalEnd, float intervalLength, float time) initial numbers, whose absolute is of a small number from a large { error (about .38 m) is insufficient number, so most of the digits of float intervalStart = intervalEnd - intervalLength; for the ultimate goal of measuring intervalLength will be lost—they float t = (time - intervalStart) / intervalLength; a person’s height. This inadequacy won’t affect the result. Then we return t; becomes manifest when the values subtract intervalStart from time, } are subtracted, as the subtraction and we cancel out most of their makes the relative error about 200 most significant digits. The first listing 2 times worse. subtraction tosses away low-order The other problem with digits, and the second subtraction A modified, more accurate version of Listing 1, reworked to be more accurate. addition and subtraction occurs cancels out high-order digits. That when you are adding numbers of leaves very few digits, and even float CalcTGood(float intervalEnd, float intervalLength, float time) dissimilar magnitudes. Unlike with when time is clearly in range, the { multiplication and division, the rounding means that the result float timeToIntervalEnd = intervalEnd - time; digits of the smaller number may in sometimes ends up being outside float t = (intervalLength - timeToIntervalEnd) / this case be completely ignored. of the 0.0 to 1.0 range! intervalLength; A better way to express return t; Two wrongs this algorithm is to start by } don’t make a right subtracting the two times. In » The worst-case scenario is if you most cases these two times will listing 3 add a small number to a big number be within a factor of two of each (thus losing the least-significant other so this will be perfectly S ample relative float comparison code. digits of the small number) and accurate—we can’t do better than then subtract a similarly valued that. We then subtract the result bool AlmostEqualRelative(float A, float B, float maxRelDiff = big number (thus losing the from intervalLength, and since FLT_EPSILON) most-significant digits of the big these values are likely to have { number). In this case you end up similar values, we don’t lose much // Calculate the difference. with very few significant digits— accuracy. In many cases, we’ll float diff = fabs(A - B); perhaps none. In other words, this only need to round in the final A = fabs(A); is really bad: division, and the result has many B = fabs(B); more digits of precision than // Find the largest Result = (Big1 + Small) - - Big2 the original calculation. See the float largest = (B > A) ? B : A; improved code in Listing 2; the Understanding these behaviors net result is that the fixed code if (diff <= largest * maxRelDiff) sometimes lets you significantly is perfectly stable, and the client return true; improve your code. As an example, code no longer needs to clamp the return false; the function in Listing 1 is result into the 0.0 to 1.0 range. } representative of real code from a game I was working on. It takes Comparing floats in two numbers that represent » Most developers know that an interval of time, and another comparing floats for equality operations are so much more all equally accurate. They are number that represents a time is not a good idea. With some difficult than addition to do by all guaranteed to be correctly within that time interval. The exceptions, floating-point math hand. But despite our intuition’s rounded (by default this is round- function’s job is to return a value t operations are not exact, error misgivings, floating-point to-nearest, tie goes to even). So from 0.0 to 1.0 representing how accumulates over multiple steps, multiplication and division are why is subtraction of same-signed far through the interval time is. and you probably won’t get deliciously safe and stable, and numbers so problematic? This isn’t a great design for multiple exactly the result you wanted. cause virtually no precision loss. If the values of the floats being reasons, but I’m going to ignore It’s easy to say that you Even though we have to toss subtracted are within a factor of that for now and focus on the shouldn’t do an equality test, away half of the digits of the two of each other, then the result implementation. but saying what you should do result, the relative error after is exact. It’s pretty cool to have This code was used for dealing instead is much trickier. There multiplication is increased very such a concrete guarantee about with particles, so after the game are many examples of floating- little, if at all (except in the case the chaotic world of floats. And has been running for a while it point equality tests with epsilons of overflow or underflow). yet you may have zero significant is safe to say that the end of the (comparison tolerances) so small It turns out that IEEE addition, digits left, because most or all of interval will have a value in the that they are just fancy-looking, subtraction, multiplication, division, the digits may have been canceled hundreds or thousands, while more-expensive equality tests, and square-root operations are out. In this case, the absolute the interval length will have a or epsilons so large that that

www.gdmag.com 35 INNER PRODUCT // bruce dawson

you can drive a virtual truck Unfortunately, the ULPs-based through them. relative comparison technique can listing 4 The best starting point for sometimes be quite expensive. comparing two floats to see if they Transferring data from the float Using Units in the Last Place (ULPs)to compare floats Relative float are “close enough” is to take the unit to the integer unit can comparison code, using the integer representation of floats. larger of the two floats, multiply it break pipelining and cause other by some small number, and use the significant performance costs. union Float_t result as the epsilon. The smallest However, on processors with good { number you should multiply a float store forwarding, this technique Float_t(float num = 0.0f) : f(num) {} by to get your epsilon value is may perform well, and you can bool Negative() const { return i < 0; } powf(2, -23), because that is the implement it in vector units that do minimum guaranteed precision for float and vector operations in the int32_t i; a normalized float. Using a number same registers. float f; much smaller than that is, for I like this technique when doing }; floats, just an expensive equality accuracy investigations because it test. Larger epsilons are fine, but if lets me make definitive statements bool AlmostEqualUlps(float A, float B, int maxUlpsDiff = 1) you find that your relative epsilon such as “The answer was only off by { needs to be thousands of times one ULP” or, equivalently, “The floats Float_t uA(A); larger, then you might want to were adjacent.” These statements Float_t uB(B); investigate to find out what is going have more intuitive meaning than on, since that level of instability can error ratios have. The semantics of // Different signs means they do not match. be hard to work with. the two techniques are similar, but if (uA.Negative() != uB.Negative()) It turns out that powf(2, not identical. When your numbers { -23) has a standard name: are near a power of two the meaning // Check for equality to make sure +0==-0 FLT_EPSILON. The constant of an ULP suddenly changes—the if (A == B) FLT_EPSILON is the smallest distance between floats suddenly return true; amount that you can increment doubles (see Figure 2). return false; 1.0f by, and its value is also the } smallest relative epsilon you should use with floats. Small // Find the difference in ULPs. multiples of FLT_EPSILON give int ulpsDiff = abs(uA.i - uB.i); progressively greater tolerance in if (ulpsDiff <= maxUlpsDiff) the comparison, so you can pass, return true; say, 10 * FLT_EPSILON to allow for Figure 2 : Measuring inaccuracy in ULPs. more error. See Listing 3 for some return false; sample comparison code: The mask of Zero } When doing floating-point » Maybe the Babylonians should comparisons, you might find have not invented zero. It just number such that if the difference this possibly essential value will it handy to make use of the causes problems for floats. between the two floats is less than vary depending on what units you integer representation of floats. Relative error works incredibly this number then you say that they have chosen. Since adjacent same-signed badly when the numbers being are equal. I hate to say “Experiment and floats have adjacent integer compared are near zero. It isn’t even Finding the right value can be see what works for your particular representations, if you subtract well defined. If one of the numbers quite tricky, to say the least. There is domain,” but I don’t have any better the integer representation of is zero and the other isn’t, then the no natural, obvious default value. If advice. You can do a complicated two (same-signed) floats, your relative error is either infinite or you do a bunch of test calculations mathematical analysis of your result is their distance from each 100%, depending how you measure in your game world, then you may algorithms in order to evaluate their other—the number of floats in it. If the two numbers straddle zero, find that an absolute epsilon of stability, but I don’t think that’s between plus one. If two floats then the relative error is even worse. 0.00001 is appropriate. However if particularly practical. are adjacent, we say that they (It’s negative, I guess—whatever you were to change your units from, differ by one Unit in the Last that means.) say, meters to millimeters, then all Pi, please Place (ULP). By making use of Since relative epsilon doesn’t your numbers would get a thousand » One fascinating example of the a union of an int32_t and a float work around zero, you need to use times larger and you would need problem of comparisons around we can implement this technique an absolute epsilon to handle this to change your absolute epsilon zero is for sin(pi). Mathematics in a way that stays within the case instead. This is simply a small to 0.01. It’s slightly terrifying that teaches us that the result of this aliasing rules of all the compilers I am familiar with (see Listing 4 for an example). The check for the float(pi) +3.141592741012573 signs being different is important because subtracting the integer + sin(float(pi)) -0.000000087422776 representations of opposite- signed floats is problematic when = a better approximation of pi +3.141592653589797 the signs don’t match.

36 game developer | October 2012

INNER PRODUCT // bruce dawson

listing 5 listing 7

Relative and absolute comparison routine. Classes for conveniently disabling and re-enabling (or vice- versa) floating-point exceptions. bool AlmostEqualRelativeAndAbs(float A, float B, float maxDiff, float maxRelDiff = FLT_EPSILON) // Declare an object of this type in a scope in order to enable a { // specified set of floating-point exceptions temporarily. The old // Check if the numbers are really close -- needed // exception state will be reset at the end. // when comparing numbers near zero. // This class can be nested. float diff = fabs(A - B); class FPExceptionEnabler if (diff <= maxDiff) { return true; public: // Overflow, divide-by-zero, and invalid-operation are the FP A = fabs(A); // exceptions most frequently associated with bugs. B = fabs(B); FPExceptionEnabler(unsigned int enableBits = _EM_OVERFLOW | float largest = (B > A) ? B : A; _EM_ZERODIVIDE | _EM_INVALID) { if (diff <= largest * maxRelDiff) // Retrieve the current state of the exception flags. This return true; // must be done before changing them. _MCW_EM is a bit return false; // mask representing all available exception masks. } _controlfp_s(&mOldValues, _MCW_EM, _MCW_EM); listing 6 // Make sure no non-exception flags have been specified, // to avoid accidental changing of rounding modes, etc. Relative and absolute comparison routine using ULPs. enableBits &= _MCW_EM;

bool AlmostEqualUlpsAndAbs(float A, float B, // Clear any pending FP exceptions. This must be done float maxDiff, int maxUlpsDiff = 1) // prior to enabling FP exceptions since otherwise there { // may be a “deferred crash” as soon the exceptions are // Check if the numbers are really close -- needed // enabled. // when comparing numbers near zero. _clearfp(); float absDiff = fabs(A - B); if (absDiff <= maxDiff) // Zero out the specified bits, leaving other bits alone. return true; _controlfp_s(0, ~enableBits, enableBits); } Float_t uA(A); ~FPExceptionEnabler() Float_t uB(B); { // Reset the exception state. // Different signs means they do not match. _controlfp_s(0, mOldValues, _MCW_EM); if (uA.Negative() != uB.Negative()) } return false; private: // Find the difference in ULPs. unsigned int mOldValues; int ulpsDiff = abs(uA.i - uB.i); if (ulpsDiff <= maxUlpsDiff) // Make the copy constructor and assignment operator private return true; // and unimplemented to prohibit copying. FPExceptionEnabler(const FPExceptionEnabler&); return false; FPExceptionEnabler& operator=(const FPExceptionEnabler&); } }; calculation should be zero, but Most people are inclined for values of x near pi, sin(x) error in float(pi) (and hence float math stubbornly refuses to blame the implementation gives us the distance between x in sin(float(pi)) is roughly pi * to give this answer. Typical of the sin function, but that is and pi. In other words, when we FLT_EPSILON / 2, assuming that results for sin(float(pi)) are inappropriate—the problem isn’t calculate sin(float(pi)), we are float(pi) has an error of no more -0.000000087422776, which with the sin function (which is actually calculating pi – float(pi). than half of one ULP. If we use is 867,941,678 ULPs away from extremely accurate) but with The result is an extremely this as the absolute epsilon, then zero. That’s as many ULPs as the value that is passed to it. It accurate measure of the error in the result suddenly seems totally 1.5e31 is from 1.0. Which is is important to understand that float(pi). A bit of calculus shows reasonable, and is “equal” to not close. float(pi) is not equal to pi, and us that the expected maximum zero. The table below shows how

38 game developer | October 2012 INNER PRODUCT // bruce dawson

sin(float(pi)) is a very accurate intrinsically safe because it is as these times do not grow as the point exceptions for its scope. By measure of the error in float(pi). very likely that, even though your game progresses, there will be dropping these into key places With all that background in GetGameTime() function returns a no problems with bugs that only you can validate the integrity of place, the two generic comparison double, some junior programmer occur after several days. the code that you control, while routines I recommend are in Listing will store the result in a float and sidestepping issues in the code 5 (relative and absolute) and you’re back to having bugs that E xceptions that you don’t control. Listing 6 (ULPs and absolute). only occur after hours of gameplay. » All code has bugs. That is the The ideal strategy is to put a In both cases, if you know Luckily, there is an easy depressing reality of programming. float-exception enabling object in the that you will not be dealing with solution. The whole problem arises In many cases the difference start function of each thread, and numbers near zero, then you can because float and double have between shipping on time and then disable exceptions as needed. use the simpler versions that omit more precision near zero. All we missing Christmas is a matter of Pragmatic constraints might mean the maxDiff absolute epsilon. have to do is not start our timer at how quickly bugs can be found and that you just enable float-exceptions zero. If we use a double, and if we fixed. Since games contain huge in your particle system, or just in F loats for time and location Fixing or difficult-to-reproduce bugs is the most tedious » Fixing rare or difficult-to-reproduce part of software development, so any design patterns that bugs is the most tedious part of lead to such bugs should be avoided at all costs. In game software development, so any development, there are a couple of patterns that lead to bugs design patterns that lead to such that only occur after many hours of play, or in distant regions bugs should be avoided at all costs. of maps, and if you don’t take steps to avoid these patterns you In game development, there are a may have some long nights before certification. couple of patterns that lead to bugs that only occur after many hours of play, or in distant regions of maps, start our timer at 4294967296.0 amounts of floating-point math, you your AI. Baby steps are better than and if you don’t take steps to avoid (2 to the 32nd power), then our can improve your odds of finding no steps at all. See Listing 7 for the these patterns you may have some precision will be consistent until quirky bugs if you enable floating- classes I use. long nights before certification. the timer reaches 8,589,934,592 point exceptions. Enabling floating- Floating-point numbers are seconds—which won’t happen point exceptions for divide-by-zero, S aving floats as text designed to have consistent for more than a century. In overflow, and illegal-operation is » Text-based file formats can be relative precision across a wide addition to ensuring consistent like adding asserts before and after terribly convenient because they are range of magnitudes. Or, to put it precision, this technique every floating-point operation. I’ve human-readable and easily editable, another way, they are designed guarantees that anybody trying used this technique for 20 years and but it is not obvious how to convert a to have much better absolute to store GetGameTime() in a float it continues to be useful. On a recent float to text in a way that retains the precision near zero. If you use will immediately hit precision project that was not written to be exact valuesufficient precision. float or double when this variable problems, and the mistake will float-exception clean, I was able to Printing the exact value of a float precision is not desirable— quickly be discovered. If you enable float-exceptions in a few key can require over 100 decimal digits. or when it might even be prefer to return a 64-bit fixed-point systems and then find an illegal Luckily, printing the exact value of counterproductive—then you can integer, then an extremely large operation that was making particles a float is rarely necessary. What end up with lots of exciting bugs. number as the start point will disappear, as well as some reading is more useful is to print enough If you use a float to store catch developers who store the of uninitialized stack memory that digits so that the original value can elapsed time in your game, that game time in a float or an integer. was triggering various forms of be reconstructed when the text is means you have more precision You’ll see similar problems undefined behavior. It works. converted back to a float. For this at the beginning of a game than at occur with player positions and The NaNs and infinities that are purpose it is sufficient to print nine the end. When your game has been world geometry. Storing player created by exceptional situations can digits of mantissa. Ninety-four running for 60 seconds, a float that positions in a float means that also cause performance problems, percent of floats can round-trip to holds the elapsed time will have you have much more precision particularly on the x87 FPU—yet text and back with just eight digits, .0038 milliseconds of precision. near the origin, and it means another reason to avoid them. but all floats are guaranteed to Once your game has been running that when you transmit player The complicating factor is that round-trip to text and back with nine for a day (86,400 seconds) that positions across the network not all code runs float-exception digits. One possible way to do this same float only has 7.8 milliseconds you are wasting precious bits clean. Some libraries trigger illegal is to use printf(“%1.8e”, f); which of precision. This is a big enough on transmitting the exponent. operations because they were puts eight digits after the mantissa’s drop to make it quite likely that you Using floats to store position is carelessly written, and others may decimal point. Perfect. will have timing precision bugs that probably unavoidable, but when make legitimate use of divide-by- If you’re not sure that you trust will only show up after the game has transmitting positions you should zero semantics. Either way, any your printf and scanf functions to been running for a long time. consider using fixed-point. practical way of enabling floating- round-trip floats, you can instead The simple fix to the timing It is fine to store time point exceptions needs to account easily write code that will iterate problem is to store time in a 64-bit differences—the time between for this reality. through all of the floats, printing number—either a double or a events—in a float, and that may The simple technique is to to text, scanning back to float, and 64-bit integer (representing the be necessary for compactly define two C++ classes: one that verifying that nothing is lost. On elapsed count of microseconds or storing particle lifetimes and other enables a set of floating-point a modern computer, a complete nanoseconds). These techniques attributes. As long as these times exceptions for its scope, and test takes less than 15 minutes. both work, but they are not are relatively small, and as long another that disables all floating- There’s no point in wondering

www.gdmag.com 39 INNER PRODUCT // bruce dawson

further reading This article is based on a series of thirteen13 blog posts written this year. To read more details, explanations, and code, and to discuss this article visit http://randomascii.wordpress. com/2012/09/09/game-developer-magazine-floating-point. Years ago, I wrote an article on comparing floating-point numbers that became unexpectedly popular despite its numerous flaws. As an act of penance for its imperfect advice, I recently wrote a series of blog posts discussing floating-point math, most of which have been summarized in this article. You can find more of my work on floating-point math here; www.altdevblogaday.com/ author/bruce-dawson/. Also, no floating-point article would be complete without a reference to David Goldberg’s classic article “What Every Computer Scientist Should Know About Floating-Point Arithmetic” (http://docs.oracle.com/cd/E19957-01/806-3568/ Figure 4: Testing the Visual Studio debugger for floating-point bugs. ncg_goldberg.html). It was written in a time when the IEEE floating- point math standard was not yet universal, but it still contains whether this works when you can float f1 = 1023.99328f; important insights. test it in the time it takes to get a float f2 = 1023.993347; cup of coffee. While the standard requires In versions of Visual Studio prior point unit, there is no cost to this want the calculation evaluated using that floats printed with nine digits to VS 2012, these two numbers higher intermediate precision, double precision, and the compiler of mantissa will round-trip, this is will both be displayed with eight but when using SSE/SSE2 these will dutifully add in three conversion not quite guaranteed if you print significant digits, as 1023.9933. higher-precision intermediates are operations. floats with one implementation And yet, these two floats are a problem. Each input float has to The fix in this case is trivial—just and then scan them from text in actually distinct floats with be explicitly converted to double add a trailing “f” to the floating- another (say, VC++ and gcc). If this different values. Figure 4 shows precision, using cvtps2pd. If the point constant. The trick is realizing is critical for your needs, you may this issue at work in an earlier result is stored in a float then it will when you have forgotten to do this. need to test this. version of Visual Studio (top), have to be converted from double You could scan your source code though I am happy to note that I using cvtpd2ps. The conversion for double-precision constants, or Lies, damned lies, and reported it to Microsoft and it has instructions all have similar latency look in the assembly language for debuggers since been fixed in Visual Studio to a floating-point add or multiply. conversation instructions. Neither » The corollary of the above point 2012 (bottom). All these conversions can add a technique can easily distinguish is that your debugger’s watch noticeable cost—I’ve seen more between performance-critical code, and code where the conversions The simple fix to the timing problem is to store time in a 64- are harmless, but they are the bit number—either a double or a 64-bit integer (representing the best options I have to offer. If you elapsed count of microseconds or nanoseconds). These techniques find excessive conversions, check both work, but they are not intrinsically safe because it is very likely your compiler settings and your that, even though your GetGameTime() function returns a double, input values. some junior programmer will store the result in a float and you’re back to having bugs that only occur after hours of gameplay. Let’s end this article with a haiku: Floating point game math window (and memory window, Precision and performance than 40% overhead from them. Is very fast and useful tooltips, registers window, etc.) pitfalls Luckily when you compile with / But not accurate needs to display floats with at » All the modern CPUs I’m familiar fp:fast, or for 64-bit, or using VS least nine digits of precision. with will perform float or double- 2012, the compiler does not insist on Bruce Dawson first worked Otherwise two floats that print precision math at the same speed. using double-precision temporaries. professionally on games in 1987 at to the same text value might And yet, double-precision math can However you can still inadvertently Inc., where the actually be different floats— have significant performance costs trigger this performance-harming coding standard mandated ‘“colour’” leading to obvious confusion. that are often hard to see. behavior, with benign-looking code spelling and ‘“zed-buffer’” pronounciation. Visual Studio’s debugger has If we ask the compiler to like this: He has left the game industry twice, but for many years only printed add some floats together, it may always returns. Most recently he worked numbers with eight digits of decide, for complicated reasons, f1 = f2 + 0.5 * f3; in the group at Microsoft for six precision. (Oops.) To test this in to do the calculation at double years, then on , and is your debugger of choice, create precision. This is the default on Although f1, f2, and f3 are floats, “0.5” now a developer at Valve. a program containing these Visual Studio 2010 and earlier is not. By including a double-precision statements and view the value of when compiling 32-bit code. constant in this calculation, you are His parents did finally forgive him for these variables: When using the x87 floating- explicitly telling the compiler that you dropping out of university.

40 game developer | October 2012 News and information about the Game Developers Conference® series of Events www.gdcONF.com

Warcraft franchise. The game has GAME DEVELOPERS CHOICE ONLINE earned its place in the Hall of Fame by dominating the MMO landscape, setting the standard for countless AWARDS HONOR RAPH KOSTER, other MMOs that followed. WORLD OF WARCRAFT As the title nears its eighth anniversary, World of Warcraft remains one of the top-rated PC R aph Koster. Koster, this year’s Online Game Legend Award winner, has led a games of all time and continues prolific career. As the lead designer to thrive globally, with a massive on Online and the creative and passionate subscriber base. director on Galaxies, World of Warcraft is one of his contributions helped lay the the most profitable and popular foundation for the many massively entertainment franchises in multiplayer games that followed. history, a bona fide pop-culture Koster’s professional credits fixture. Members of the Blizzard span nearly every facet of game Entertainment World of Warcraft development, including writing, art, team will be on stage to accept music, programming, and design. the Hall of Fame award. Koster is considered a thought Previous winners of the Online leader, and he is a frequent lecturer Game Legend award include MUD and published author on topics co-creator Richard Bartle and including game design, community founders Kelton Flinn management, storytelling, and and John Taylor, and Hall of Fame ethics in game development. His inductees for the awards include » Raph Koster, a key industry ceremony, which takes place book, A Theory of Fun, published seminal titles such as Ultima veteran behind the prodigious Wednesday, October 10, at GDC in 2004, is considered seminal by Online and Everquest. MMORPGs and Online in Austin, Texas. educators and members of the art- The 2012 Game Developers Star Wars Galaxies, will be These special award game movement, and is one of the Choice Online Awards take place honored with the Online Game categories recognize developers most popular books ever written at the Austin Convention Center, Legend Award at the third annual and titles that have had about games. October 9—11, 2012. More news Game Developers Choice Online significant impact in the world This year’s Game Developers and information about the show Awards. In addition, Blizzard of online games. Honorees Choice Online Awards Hall of Fame is available at its web site (www. Entertainment’s influential were selected through open inductee, Blizzard Entertainment’s gdconline.com) or via Facebook, MMORPG World of Warcraft will nominations from the online game World of Warcraft, was released in Twitter, or RSS. GDC Online is be inducted into the Choice Online community and the distinguished November 2004, 10 years after the owned and operated by UBM Awards Hall of Fame during the GDC Online Advisory Board. launch of the company’s venerable TechWeb, as is Game Developer. LEVEL DESIGN, DESIGNER MANAGEMENT, ART DIRECTION SESSIONS DEBUT AT GDC CHINA » With GDC China 2012 just a few months away, show organizers In the Design Track’s “The Business of Art Direction: 7 Critical have revealed the first sessions in its quickly expanding lineup. Precepts,” EA Sports executive art director Rick Stringfellow will discuss This first update introduces a robust level-design tutorial featuring some essential guidelines that can help developers better manage developers from Bethesda, Valve, and The Fullbright Company, as well their production pipelines. He’ll examine everything from debugging as game design talks from companies like EA Sports and Virtuos. difficult digital content to establishing new visual processes, and will These debut sessions, along with the rest of GDC China, will take give attendees the knowledge they’ll need to streamline development place November 17—19 at the Shanghai International Convention for all types of games, platforms, and audiences. Center in Shanghai, China, and will bring together leading developers Finally, Florian Dhesse of outsourcing house Virtuos will host to share knowledge and ideas that will benefit the game industry in “Improve Your Games’ Quality by Managing Your Designers,” offering Asia and beyond. tips to help Chinese studios lead and nurture their valuable game Here are some details of GDC China’s initial sessions: designers. Drawing from Virtuos’s own experience working in China, First, the show will host the in-depth “Level Design Workshop,” Dhesse will outline the methods and tools studios will need to improve an interactive tutorial session examining the best practices for their products and better manage game design staff. successful level design. Bethesda’s Joel Burgess, Valve’s Matthew More information on these sessions is available on the Main Scott, and The Fullbright Company founder and BioShock 2 designer Conference track pages on the official GDC China website (www. Steve Gaynor will discuss fundamental principles such as layout, gdcchina.com). Those interested in attending this November’s show flow, pacing, and narrative, and will apply those concepts to a variety can secure their pass now, as online registration is now open. (GDC of genres. China is owned and operated by UBM TechWeb, as is Game Developer.) photo courtesy ofconference. game developers photo

www.gdmag.com 41 pixel pusher // steve theodore R.I.P. Paul Steed Portrait of a Pioneer

We like to tell ourselves that we’re a young industry, but we’re not so young anymore. This summer we’ve been confronted by our own mortality with the sudden death of Paul Steed, a pioneer of real-time 3D graphics who was an icon of the brash early days of the game business. He died on August 11, at the age of 48 (details have not been made public). Unlike most of us, Steed didn’t labor in obscurity. If you were involved in games during the ’90s—whether as a professional or as a fan—it was hard not to pay attention to Paul Steed. He worked on some of the seminal titles of the decade, notably the Wing Commander series and the series. He produced the first demo for , presented a Career Seminar keynote at the Game Developers Conference, and was a leading exponent of art outsourcing—proving that he could remain topical for nearly two decades. Always outspoken and always controversial, he was not a typical game artist—but he was the most public exemplar of what we do for people both inside and outside the business.

Steed’s start without smooth skinning, inverse » Steed joined in kinematics, ambient occlusion, or GDC, 2008. 1991 as a self-taught concept artist, normal maps. fresh out of the Air Force. Wing For the very few people who Commander producer Chris Roberts could get access to the tools, there recalled that he was hired as a were no traditions, no communities, “design assistant”—essentially, an and no shared experiences to learn intern—because the studio didn’t from or to rebel against. There have the budget for an established were no web pages to visit (the artist but liked his hustle. However, first graphical web browser didn’t Steed found his calling as the appear until 1993). If you could studio transitioned to real-time 3D find a book on computer graphics, on . The project it was likely to be something like was supposed to use sprite-based Van Dam’s Introduction to Computer aircraft with a simple 3D backdrop, Graphics, 600 pages of math and and Steed was tasked with diagrams. If you were wondering creating simple props and buildings about the right way to model an to test the infant 3D system. airplane wing, or why a model Instead, with his characteristic always had a dark splotch around self-assurance, he modeled and a particular vertex, the only option textured complete flyable planes, was to figure it out for yourself. 3D which convinced the studio that the artists of this generation frequently game could be fully 3D. had a reputation as nerds first and Looking at the visuals 20 years artists second (if at all), since their later, it’s difficult to appreciate ability to manage the software the implications of his humble came before their sense of style or triangular planes. 3D was hardly artistic nuance. a novelty—this was, after all, a Paul Steed strode into the geeky decade after the debut of TRON in world of early ’90s 3D art with the 1982. CG–intensive movies like swagger of a hair-band front man at The Abyss and Terminator 2 were a Dungeons & Dragons convention. everywhere in pop culture. For Jason “Loonyboi” Bergman, game developers though, 3D was webmaster of the now-defunct an esoteric specialty dominated by LoonyGames web site, described days in the gym, or in the tanning and heard made him one of the a handful of academics, scientists, him thusly (www.loonygames.com/ salon. Totally full of himself, you most prominent voices in games and engineers. The ticket to entry content/1.5/feat/): can just see the arrogance in his and 3D art. His advice influenced was a finicky UNIX workstation with “On first glance, many thoughts demeanor. Whatever he does, it a whole generation of young custom software—an “entry-level enter your mind. This guy’s a surely doesn’t involve thinking.” modelers at a time when there was workstation” with software in 1991 construction worker, you think. almost no way to learn the craft. cost around $50,000 in today’s Chippendales dancer? Maybe Flame war veteran He later published two popular dollars; for the money, you’d get military. Enlisted though, definitely » Steed’s outsized persona books (Animating Real-Time Game a machine with roughly the same not an officer. Or a Rambo-wannabe became legendary (or ), Characters, 2002 and Modeling a performance as an iPad 2, but movie star. He probably spends his and his willingness to be seen Character in 3DS Max, 2001) but

42 game developer | october 2012 pixel pusher // steve theodore

was best known for his active (and figures was an intriguing novelty. Quake III: Arena. often controversial) engagement Fans lapped it up, dissecting with the online community. every update with Kremlinological Steed was almost a prototype zeal. Rival developers discussed of the now-familiar Internet each other’s work, sometimes celebrity. He joined in with admirable frankness and 1996, when it was the most closely sometimes with unparalleled watched company in games. In that insensitivity. Fans repeated year, Quake had shown the game and amplified these comments, industry that real-time 3D, action, sometimes turning mild technical and visual immersion were the observations into grist for future of interactive entertainment. brutal takedowns. Building off the success of , Steed was a fearsome gladiator Quake became an online sensation; of the .plan battlefields, and he was its online multiplayer spawned always eager to share his opinions a huge, fractious community of in the most direct way possible. He fans, mod-makers, and would-be let readers in on his opinions about game journalists. games, life as a developer, and life For better or worse, Quake in general. He was always willing fandom set the pattern for a lot to engage with fans online or by of what we now know as Internet email. He once told an interviewer manners. The combination of useful from PlanetQuake (www. information, endless factionalism, quakewiki.net/archives/legacy/ and sheer boorishness that we interviews/steed.htm): all presume to be part of Internet culture today was honed in “...egocentric, self- arguments comparing Quake and centered bastard that I Unreal, debates about the relative am, I keep all mail sent merits of OpenGL and DirectX, and, to me in a fan or flame alas, in endless torrents of insults vein... Flame me. I don’t and abuse directed at rival players, really give a shit. I’m fans of different games, or anybody confident that I can unlucky enough to show up in the address or redress the wrong forum on the wrong day. nature of your problem Somewhere in most of those flame with something I’ve wars you’d find Paul Steed. posted and either pull The key source of tinder for you over to my side or this early generation of flame simply ignore you. wars were the notorious “.plan The way I feel about it files.” Originally an innocent is that if anyone takes UNIX workstation feature, the time to write me Strike Commander. .plans published shared status SOMETHING OF SUBSTANCE information—so that, for example, I have an obligation to a supervisor could remotely see answer them.” what a group of engineers was working on without needing to walk His opinions on life at id, on the halls with his clipboard and other games, and on life (which pocket protector. However, .plans seemed to consist largely of quickly evolved into a primitive alcohol and scantily clad women) form of Twitter—a medium for were ubiquitous Internet fodder quickly sharing thoughts or in the late ’90s. His online opinions without considering feuds, most famously with Chet the implications of making those Faliszek and Eric Wolpaw—then thoughts or opinions public. of OldManMurray.com, now of In the mid-’90s, this kind of Valve—were legendary in the Film Noir. immediate contact with public gaming community. >>>

A memorial fund for Paul Steed’s family has been established at [email protected]. His online column is available at www.loonygames.com/content/1.1/totb/. Along with his books, it provides a pretty characteristic look at his personal style as well as some old-school modeling techniques that give the flavor of what life was like when a triple-A character had 800 triangles.

www.gdmag.com 43 pixel pusher // steve theodore

In his second decade in the game where he worked to give visual arts Quake II. industry, Steed pioneered another more standing. He remained active aspect of the game artist’s life cycle: in education and mentoring. In 2008 When you’re too ambitious for the he gave the keynote for the GDC production line, the next frontier is Game Careers Summit. The focus entrepreneurship. Three milestones of the talk was how to get a job in stand out in the last decade: games, but the advice was more At Microsoft, he was the like autobiography: “creative director”—that is, the primary artist—for the Advanced “Becoming a game Technology group that produced industry ‘celebrity’ isn’t the Xbox 360. His 2004 demo rocket science—you “Film Noir” (featuring, naturally, have to have talent and a curvaceous femme fatale) a good game or three introduced GDC audiences to what to show it off. Then you was still, in those days, known give talks, write books, as “NextGen.” and generally share your Not long after that, Steed experiences with others. The industry of the ’90s was them “decidedly mediocre”—a cofounded an outsourcing art The real trick is staying unimaginably open by today’s characteristically frank, but useful house called Exigent. When a known, staying relevant, standards (these days, it’s hard bit of feedback that inspired the lot of American artists viewed and staying excited about to imagine many studios allowing young artist to take a more critical outsourcing with a mixture of what you do... Ambition, employees to publicly criticize look at his craft. disdain and terror, Steed embraced hard work, perseverance, rival game studios, fan sites, or Even as a mentor, Steed was the idea. He told anybody who luck, and shameless self- their own coworkers). In 1997 the controversial. He sponsored would listen, including the artists promotion—it’s all part of famous .plan file went dark with modeling contests on PolyCount for he otherwise worked so hard to the deal.” this parting comment: aspiring 3D artists. Mostly, these mentor, that production in the involved modeling buxom female United States was “finished” A complicated combination “Restraint and temerity characters in various states of and the future belonged to India » It would be comforting to aren’t really in my nature undress (one of his online tutorials and China. Like many other have some dignified, impersonal so rather than risk any taught modeling using a Playboy outsourcing proponents, he found traditions for gracefully summing further dishonor or bad centerfold for reference). Perhaps that outsourcing did not provide a up when one of our own passes press to this company his most infamous creation was magical solution to development. on. Unfortunately, it’s harder than due to yet another a contest featuring a scantily One of his last jobs was working as trotting out a formula—especially outburst from me, I want clad female model known as the a kind of outsourced studio head when someone as complicated as to go ahead and call it “Crackwhore.” In his defense, he for UTV Ignition Florida—a project Paul Steed is the subject. quits with the plannage.” created the model at the request that collapsed in recriminations For better or worse, Steed’s of an all-female Quake clan of the and bad blood in 2010. uncensored, outspoken Two days later it started up again. same name, but the controversy personality is as much a part of Those were different times. made it into the mainstream games Quake III: Arena. his legacy as his artwork—or even Steed’s lack of self-censorship press, cementing his image as a the many young artists he helped made him a PR nightmare, but it frathouse bad boy. to inspire. His awkward mixture of also made him a very influential crude fanboy culture, real artistic figure in the rapidly growing Steed’s second stage ambition, technical obsessions, community of game artists. His » Steed’s polarizing personality— and careerist hustle is, in many modeling tutorials were popular public and private—became a people’s eyes, a central component starting places for would-be problem for id. In 2000 he was fired of our industry’s personality. artists, and he provided feedback over ’s objections Hopefully we’ll be able to prune and mentoring to many of the (publicized, of course, via .plan file). away the less-attractive parts of beginners who frequented his He later called the firing his “exile that legacy and still hold on to the “Thinking Outside The Box” from Valhalla.” However, he was drive, the passion, and the real column on LoonyGames. He was a savvy careerist, always on the generosity that he showed to his an active participant in the early lookout for a new world to conquer. fellow artists. days of what is now Polycount. If the first decade of Steed’s career com, providing technical advice, encapsulated the growth of both Steve Theodore has been pushing pixels for critiques, and a little celebrity real-time 3D and of Internet culture, more than a dozen years. His credits include wattage to aspiring artists. One of the second decade seemed to be Though he filed some of the Mech Commander, Half-Life, Team Fortress, the most telling online reactions dominated by the major themes of rough edges off his public persona as Counter-Strike, and 3. He’s been a to Steed’s passing was a poster the newly prosperous, and newly the years went by, Steed remained a modeler, animator, and technical artist, recalling fondly how Steed corporatized game business: very public figure. He was a frequent as well as a frequent speaker at industry reviewed some of his models at an the Internet, the next-generation speaker at GDC, and he became a conferences. He’s currently the technical art Australian trade show and called consoles, and outsourcing. member of the GDC advisory board, director at Seattle’s .

44 game developer | october 2012

design of the times // DAMION SCHUBERT Depth vs. Breadth Does your game need to go deeper?

Ultima Online. EverQuest.

Ultima Online and EverQuest represent two very different game philosophies. Ultima Online’s creators tried very hard to create a virtual world with physics and interactions that mimicked the real world, so players could interact with each other in ways meant to model reality: You can chop down trees, dye clothes, build houses, attack almost anyone anywhere, and steal anything that isn’t nailed down.

By comparison, EverQuest be too simple for the audience). EverQuest is a game in their genre is resources and focus on is a simple game, not newly invented massively game about depth. one that combines all of building other systems. much more than a combat multiplayer genre. the best elements of other This is especially simulator designed to mimic As it turned out, The pitfall of games, because they don’t important when you the basics of combat found EverQuest easily beat breadth recognize the underlying consider how your in tabletop board games Ultima Online’s numbers, » Most junior designers costs of all of those systems. multiple game systems and old online Multiuser and a few years later, a come into the industry Most triple-A games that are supposed to interact Dungeons (MUDs). Combat rematch of the two MMO favoring breadth. They want actually ship (and most with each other. For a game in EverQuest is very deep design philosophies paired to design the perfect game, experienced designers and that is about breadth, the and intricate compared to Star Wars Galaxies against and they want to do so by producers), however, favor multitude of game systems that in Ultima Online, with World of Warcraft—with throwing every possible depth over breadth for a can interact with each other far more ways for players to a repeat of the same end feature under the sun into few reasons. One is simply in many often-unexpected attack and manipulate their result. As it turned out, the design soup. This is a matter of resources—it’s ways. In some cases, this enemies. However, combat Ultima Online has a lot of especially true in massively hard enough to even do one can be a good thing— aside, EverQuest was features, but many of those multiplayer game design, game system extremely something that designers perceived to not be a very features don’t have a lot of where the possibilities well. If you’re trying to make like to call emergent feature-rich game. Most depth to them; it is broad, of what you can do in a first-person shooter, for behavior. Emergent behavior of the world interactions rather than deep. EverQuest a game is effectively example, you are going to can be wonderful to behold, in Ultima Online aren’t in has fewer features, but a unbounded—a virtual world have a hard enough time as the fans will undoubtedly EverQuest, and when they combat model that is very can already incorporate getting the basics of making surprise you with their are, they aren’t particularly deep (and became deeper almost any feature of the a deep and engaging FPS ingenuity. However, the deep or fleshed out—to the as new boss mechanics real world. Even worse, that can be on the same more systems you have, extent that many observers were added to respond most game genre devotees playing field asC all of the more time you’ll need to felt that EverQuest would to an increasingly savvy imagine that the perfect Duty without losing all the spend on QA and balance,

46 game developer | october 2012 design of the times // DAMION SCHUBERT

especially if you’re making shooting that pales next web site lists postman, as much design attention Does it support the core competitive online games, to Call of Duty, fighting kart driver, and soccer star as combatants, and I’m fantasy of the game? where that ingenuity can that has nowhere near among more classic combat sure the same can be said be used to win or to harass the tightness of control of roles like ninja and warrior. in Free Realms for fans 3// Accept that your other players. The same Soulcalibur, and yet it is Each of these games of the soccer and mail features will be simpler. game freedom that allows still widely considered one has smaller minigames delivery games. It is harder Complexity in multiple players to build amazing of the finest games ever associated with them, to improve the game on systems is hard to things like pianos by made. Why? Because all with their own respective multiple tracks, and keep support, hard to test, stacking items on top of these things blend into each advancement tracks. all fan bases happy while hard to balance, hard each other in Ultima Online other—you can crash your Wizard 101, by contrast, still maintaining the game’s to expand, but perhaps also allows them to build car, then get into a gunfight was made by a smaller, core balance integrity. most of all, hard for staircases of spoons up that ends in an epic fistfight. scrappier studio (’s Adding new features and most players to actually to the top of other players’ Grand Theft Auto is, at its Isle). They didn’t have the game systems to increase follow and understand. castles, enabling them to core, broad and open-ended resources to make a broad the breadth of the game In a broad game, the waltz in and rob them blind. wish fulfillment of the idea game, and instead focused is always an option, and game systems need of a world without rules; on making an intricate is typically popular, but it to be simple—the Breadth can be good you can go anywhere and combat model reminiscent also risks increasing the complexity will come » This is not to say that all do anything you want. The of Pokémon and Final complexity of the game— from how those games that are breadth- possibilities are endless, and Fantasy. While the world increasing the number of systems interact. first are doomed to fail. it captures the imagination itself is simple, the combat unexpected interactions Ultima Online and Star Wars like few other games can. model is not—the game that need to be considered, 4// Be willing to lose Galaxies both had sizable Of course, Grand Theft designers went out of their balanced for, and tested. control. Embracing fan bases, largely because Auto also shows how way to design a game with emergent behavior the two games were wild expensive that kind of broad a long life, and with angles The broad-game means you are and unpredictable places world interaction can be; of expansion so they could bullet list accepting on some level where it felt like anything development costs of Grand continue to put out content » Making a broad game isn’t that players will surprise could happen. The idea Theft Auto IV exceeded that would be in demand on impossible, and some of the you. Your design team that you can go anywhere $100 million, according to the microtransaction store. finest video games ever made and management needs and do anything is an Wikipedia. That said, the Their tactic appears to have are broad games. But here are to decide up front if this attractive sales pitch, and it same source says Take Two been successful—Wizard some things to consider. is a good thing or not. is one that two companies earned five times that much 101 got its 20 millionth user in particular have been in income in the first week in 2011, two years and two 1// Don’t think of your Broad games are hard to remarkably effective at the product was on sale. But months after the game was features in a vacuum. do, and really hard to do building toward—Rockstar few companies can afford launched, while Free Realms Think about how they well. There is a reason that (Grand Theft Auto) and that initial price tag. took four months longer to interact with each most broad games that Bethesda (creator of hit the same milestone. other, how they balance get started never ship, Oblivion, among others). Simplicity is key against each other. and that many established Grand Theft Auto is the » In the context of breadth P lan to expand Be sure they support developers flee them, poster child of the breadth vs. depth, the concept » One of the interesting each other (at best) philosophically. But still, game, and it illustrates the of simplicity is vastly angles of the depth vs. and don’t compete or I would sorely like to see breadth debate, especially invalidate each other. more broad games on Grand Theft Auto III. in terms of online games In Oblivion, the desire the market. Games like with ongoing support and to learn by doing to Ultima Online and Grand development, is the appetite complete a sandbox Theft Auto IV were exciting for expansion. If you have experience resulted in because they challenged one central game activity, players hopping through their players to imagine the then it is very easy to focus fields picking flowers possibilities. If done well, your development on that in order to become this promise speaks right game activity—adding more master assassins (by to the core of what makes creatures to summon in increasing their jumping video games amazing. Wizard 101, for example, or and poisoning skills). adding new raid mechanics Damion Schubert is the lead to World of Warcraft. 2// Think of the systems designer of Star Wars: By contrast, broad audience. Any feature The Old Republic at BioWare Austin. games have a broad player adds complexity to He has spent nearly a decade difference clearly. It has auto misunderstood. Wizard base as well, and all of your game and takes working on the design of games, racing that fans of Need for 101 and Free Realms are them want more and more development time. Yes, with experience on Meridian59 and Speed would sneer at, car two lighter MMOs designed interesting things to do you could add washing Shadowbane as well as other virtual crashes that are snoozers for a younger audience. when they consume their laundry to your GTA worlds. Damion also is responsible compared to , a Sony Online’s Free Realms favorite kind of gameplay. clone, but would it hold for Zen of Design, a blog devoted to story without the choice or includes a series of In Ultima Online, crafters anyone’s interest for game design issues. email him at depth of a BioWare game, minigames; today, the and tamers demanded any length of time? [email protected].

www.gdmag.com 47 hiring news and interviews good job Hired someone interesting? Let us know at [email protected]!

Y ou can bring an Orth to water... whowentwherewhowentwhere /// Rovio has hired former Easy Studios ADAM ORTH JOINS MICROSOFT BY WAY OF POPCAP general manager Oskar Burman to head a new studio in Stockholm. Also In the past few years, many respecteD game developers have migrated to positions in the casual/social joining Burman is Patrick Liu, previously space—Adam Orth was one of them. In March 2011, he moved to casual giant PopCap, but before that he Battlefield 3 producer at DICE, who will be worked at Sony, EA, and LucasArts. But he’s since left PopCap, and is now working on an unannounced project for his new gig at Microsoft. Game Developer checked in with Adam to ask about the experience signing on as creative director. of moving from core development to social/casual, and back again. /// Ito Masahito recently resigned as I’ve done both and I can’t president of shoot-’em-up luminary CAVE say which I prefer. It depends Interactive. His is the second high-profile on the end goal. I’ve enjoyed departure in recent months, following the safety of a steady former VP and COO Mikio Watanabe. paycheck and the electricity of not knowing what’s next. /// Epic Games’s former director The only cultural point that of production, Rod Fergusson, has matters to me is dedicated transitioned over to developers working hard to help the studio ship the anticipated first-person shooter io hock nfinite every day to make awesome B S I . interactive magic. You can The project has seen a number of key have that anywhere, you just departures over the past year. have to be realistic about where you are. new studios AH: You’re working on an unannounced Microsoft /// Many of the Maryland-area developers Alexandra Hall: What did you AO: Absolutely. It’s a very project. Can you talk at all left unemployed in the wake of the 38 learn at PopCap that applies different style and approach about the experience of Studios debacle to your return to core- to making games. Being working in a newly formed have landed on oriented games? fluent in that language is internal studio? their feet, thanks Adam Orth: I learned so only going to make you, AO: I can’t really say much to a little help much about social and casual your team, and your game other than I love what I’m from Epic. The games during the year I spent stronger. Even if you aren’t doing. It’s very different inaugural project at PopCap. I’ve always been going to make a game in from anything I’ve ever of newly formed Impossible Studios is the interested in that space, and that space, it’s crucial at this done, and I was desperate upcoming iOS title : Dungeons, take great care to try and point in the evolution of the for something like this at which Impossible is codeveloping with Epic be as current as possible, industry to be an expert, this point in my career. and . although I wasn’t nearly as otherwise you are going to Microsoft is very big, and prepared as I thought I was. be passed by. being a small entity within /// Online shopping giant Amazon.com is PopCap is full of experts and a giant machine can be stepping into casual game development academic-level developers. AH: Do you see any terrifying, but I kind of with the founding of Amazon Game I often refer to it as gaming significant differences in love it. It’s unpredictable Studios. Its first game, Living Classics, grad school. I think I actually workplace culture between and exciting. It takes a lot is already available on Facebook. The learned more about core core game development of work to get everyone studio joins Amazon’s other game- game design than social/ and social/mobile games talking together, but the related initiatives, such as GameCircle, a casual. It’s the basis for all the development? talent level and drive of the service for Kindle Fire gamers, and Game PopCap magic. The knowledge AO: Obviously, when there is people I’m working with Connect, which lets customers download I gained from being able to a corporation involved, that is make the results amazing. free-to-play games. touch things like , going to dictate the culture. There’s always the risk that , Zuma, and Plants vs. The DNA of the corporation whatever you are working /// recently founded The Blast Zombies on various platforms permeates everything on will never see the light of Furnace, a new mobile development studio was incredible, and I refer and drives the creation of day, but if you start thinking in Leeds. The studio will be headed by Mark to those methodologies and multiple products. Start-ups like that, it’s already over. Washbrook and Gordon Hall, both longtime principles every day. I’m and independent studios are You’ve got to believe veterans of Rockstar’s UK studios. very lucky and grateful for completely different because passionately in what you the experience. of the risk—it’s very much are doing and who you are /// In the wake of Zipper Interactive’s like being in a band, with doing it with, otherwise it’s closing in April, former employees David AH: Do you think core game everyone focusing all of their pointless to get out of bed in Kern and Russ Phillips have started developers should put in time energy on the one thing. All the morning. That’s where I Nobodinos (say it: “nobody knows”), a new on the social/casual beat? or nothing. am right now. studio that will focus on mobile titles.

48 game developer | October 2012 the business // kim pallister

Crowdfunding and Emotional Equity Yuo listen to your backers, but do you really hear them?

In my column in the April issue of Game Developer, I discussed crowdfunding. One of the things I covered last time around was the fact that Kickstarter projects have no obligations to backers (beyond rewards promised), but that other types of crowdfunding mechanisms that would allow for crowdfunded equity investing were on the way. Whether backing comes via crowd-sourced equity or via Kickstarter-style donations, all crowdfunding will share a second type of investment—that of emotional equity.

Putting their money where their heart is and call it “naive and questionable marketing tactics,” the damage was » As others have pointed out, there is more going on in an end-user done. At least one backer pulled their funding (based on comments on the backing of a project than just a quid pro quo exchange of money for a Kickstarter page), and I expect more will do so. (You can find the Penny reward package. Certainly, in some cases that’s all it is. In most cases, Arcade article here: http://penny-arcade.com/report/editorial-article/ though, the backing of a project represents an emotional investment bribery-spam-and-harassment-the-dark-side-of-kickstarter-promotion). by the backer. The project is something they believe in and want to see If things go wrong, they can go really wrong. It’s no secret that the happen, and they are ponying up money to state that this is the case. internet can amplify the scale and speed at which things get out of control This emotional investment is a powerful force. It’s what can make when they go negative. For example, the Music ensemble Classic Crime backers not just a source of funding, but passionate evangelists, dedicated funded a Kickstarter (www.kickstarter.com/projects/mattmacdonald/the- contributors, and loyal return customers. They believe they have a personal classic-crimes-new-album/posts/188274 )for an album and tour, but what stake in your game and will do what they can to ensure its success. started as a miscommunication about the cost of rewards and costs of However, like any other type of equity, this emotional equity is given touring escalated into flame wars and damage control, as the band tried to with expectations—not always clearly stated—and it’s here that things deal with critics accusing them of taking in unreasonable amounts to fund can go awry if not given proper consideration. their tour compared to what some believed it should cost. When you look at examples of this disconnect, you see they often mirror the very same things that can go wrong with a standard investor Ne w funding, same old rules relationship, or for that matter, any relationship. A few examples: » Even though the dollar amounts are smaller, and there isn’t a • “You’re late!” It’s so commonplace for Kickstarter projects to take publishing or investing contract attached to the dollars, the same rules longer than their optimistically set schedules that I’m surprised people apply as if they were. don’t just take it for granted. That said, it happens often, and when it does, backers are amazingly forgiving—provided they are given some • Communication is key. Communicate early and often, background as to why, and are kept up to speed. letting backers know about changes before they happen. • “You said you’d call!” Another source of backer frustration is dead air. Backers feel they bought “insider status,” and get frustrated and nervous • Come clean. Give background on why something is late, when updates grow further apart. This is often compounded by the changing, up in the air, or whatever it might be. If there are schedule issues mentioned above. still unanswered questions, acknowledge them. People • “You’ve changed!” The reality of developing any product is that prefer the unvarnished truth to polished spin. things change along the way from conception to delivery. One of the risks of taking money based on the early-stage idea is that it may change • Solicit input. People are already vested in your product. along the way, and that may change something critical to the person who Giving them the chance to further contribute is often a decided to back it. For example, when the wildly successful Kickstarter for great way to increase that level of passion, even when it’s the console announced that they’d be making the OnLive cloud- wrapped around a negative circumstance. gaming solution available for playing mainstream titles, some backers were elated. Others viewed it as an about-face on the original indie- • Give people options. If the product is changing substantially, focused-console message that they’d laid down money to support. (For or the schedule is pushing out a significant amount of time, example, UBM’s Simon Carless tweeted, “I know OnLive is ‘just an option,’ offer to refund their backing. They’ll likely not take you up on but Ouya’s Kickstarter traded heavily on indie cred.”) That OnLive’s long- it, but will feel better for having been given the option. term viability is now in question only compounds the point. • “You scoundrel!” Of course, it’s never good to pursue any unethical Just because the money came through a click instead of a handshake or illegal business tactics, period. However, in the case of crowdfunded doesn’t mean it doesn’t deserve the same level of respect and projects, doing so can cause backers to feel you dragged them down with stewardship as any other deal. Consider your backers’ emotional equity you. The folks at Penny Arcade recently blogged about receiving a “rewards and respect it as such and you’ll be rewarded for it in the long run. for reviews” proposal from the developer of the Epic Skater Kickstarter campaign, where the developer offered them two $125-tier rewards in Kim Pallister works at doing game industry forecasting and requirements planning. exchange for a favorable review, which Penny Arcade characterized as When not prepping the world for super-cool hardware, he blogs at www.kimpallister.com. “bribes for coverage.” Even if we give the developer the benefit of the doubt His views in this column are his and do not reflect those of his employer.

www.gdmag.com 49 AURAL FIXATION // Yann Seznec

Procedural Music Making games into music, and making music into games

If I were to describe a composition system that generates music by using a set of algorithmic parameters which are then reinterpreted by performers, many people would lose interest pretty quickly—in fact, I may have lost many of you by the time I got to “system.” However, if you replace “music” with “audio” in that sentence, I am effectively describing every single game audio system ever made. In some ways, talking about procedural music with game developers is preaching to the choir; game developers already work with this kind of thing regularly while working on game audio, but it’s worth looking into how we can make procedural music composition systems that can inform your game design (and vice versa).

New words, old ideas procedural music was the so-called entirely left up to the players. They D esigning music, » Procedural music, also called Musical Dice Game occasionally are playing within the framework of composing games generative or algorithmic music, attributed to Mozart, but generally the song’s chord changes, tempo, » We can begin to think about what is all about creating a set of rules popular among composers and and rhythm, but otherwise they are music can bring to game design that will dictate the music that players in the 18th century. In this exploring on their own. by taking traditional composition is created. This is, of course, not game, the sheet music would be split Creators of 20th-century methods and applying them to dissimilar to game design, which up into a number of different musical classical music became quite games. Both game design and is about creating a structure and phrases. Participants would roll the obsessed with the idea of procedural music composition are essentially letting players explore and make dice a set number of times, and use music, to the point where the based around a series of choices, meaningful decisions. You have those numbers to cobble together elements of the composition that and both in many cases involve to account for loads of different a brand-new piece of music. While were left undefined could become some sort of start, end, and cycle. scenarios, and the game is ultimately calling this a “game” is a stretch, the most important. John Cage As a counterpoint teacher once controlled not by the designer at it was an interesting way to get a demonstrated this with a number explained to me, once you have all, but by the player. In the world of nearly infinite number of variations of different pieces, such as “As written a note of music you only music composition, this isn’t anything out of a single piece of music. Slow as Possible,” the length of ever have four choices. You can new. Composers are often challenged Jumping forward a few which can vary wildly (one ongoing play that note again, you can play or excited by the prospect of hundred years, many forms of jazz performance will last for 639 years). that note again differently, you can performers taking their music and are arguably procedural music, His piece “Fontana Mix” took this change the note, or you can not play turning it into something new. particularly the more improvisatory approach even further, with the any note. Similar sets of choices This problem/opportunity genres such as bebop or Dixieland. In instrumentation defined as “any inhabit the world of game design, (probletunity?) has existed as these formats, often a simple melody number of tracks of magnetic tape, and there are similar techniques for long as people have been writing serves as the basis for enormously or for any number of players, any simplifying the process as well. down music. An early approach to complex variations, which are kind and number of instruments.” One particularly good example is

50 game developer | october 2012 AURAL FIXATION // YANN SEZNEC

the technique used in the writing note whenever they cross a tile, of rhythm and timing can be seen as to game design, and it shows no of a fugue, which involves taking a that could get old very quickly a truly integral part of a gameplay sign of slowing down. Musically, single melody and overlapping it on (particularly if you have to cross experience—one that the best it can be argued that people who itself in varying ways. Most fugues that tile several times). However, game designers may already be would have become composers involve three or four voices, each if the character triggers a different incorporating even subconsciously. in the past are now designing one playing the same core melody note every time they cross that tile, But it is equally important to software and games; these days, the and cycling through variations. I the player will probably not notice note what the game world can offer most exciting developments in music always like thinking of the four fugal the connection between the tile and music. This can be looked at both are forms of interface, such as the melodies as being like four different the playing of the note. In short, you from a creation and an enjoyment Monome input device, or software characters exploring the same need to strike a balance that creates level. Games are inherently social like SOUND SHAPES for PS Vita. space, perhaps fi nding different a strong connection between an and fun experiences, with the vast It should be clear by now that power-ups that change their speed, action and a musical event, without majority of people playing games I see music and games as two double their power, and so on. making it repetitive and robotic. That without any pretense of becoming extremely similar things. They In terms of a more modern balance is what can bring rewarding the best, or even worrying about both have much to offer each other, composition technique, the complexity to a musical game. how good they are. It’s very rare both conceptually and practically. rise of looping and sequencing nowadays for anyone to say that Too often they are seen as two as a musical force lends itself GENERATION they are “not good at games”— separate things that need to be quite nicely to game design. » Many (if not most) games now virtually everyone plays and enjoys forced to work together, but if they One prototype we’ve developed rely on some generative element, here at Lucky Frame is a drum- ranging from fully generated levels PUGS LUV BEATS. machine space shooter. As the to character-name generators. This enemies come onscreen, they approach should absolutely be generate a drum sound, and as mirrored in the world of procedural they are destroyed, they play music. If you set up a system that a musical tone. If the levels are generates the musical framework editable, this instantly creates within which a game is played, the a sequencer and drum machine music will almost certainly have that is playable and remixable by more depth and potential. In our iOS controlling a flying spaceship. It’s game PUGS LUV BEATS, we approached really the best way to DJ (at least this by procedurally generating the until it is possible to do that with planet terrains, which controlled all actual spaceships, anyway). the sound libraries. This ensured So, now that you’re as excited a potentially infi nite amount of as I am by the intersection between musical combinations. music and game design, I hear you asking: “What are the three REPRODUCIBILITY main things to be aware of?” Good » A simple (but extremely question! My answer is: complexity, important) principle of any musical generation, and reproducibility. device is the idea that doing the same thing twice will result in the COMPLEXITY same output. Pressing the same » The most basic form of piano key in exactly the same way generating music in a game is to twice will sound nearly the same. attach a musical event to a game Turning the fi lter knob on a synth action, such as a character’s will have the same effect every movement. This can be very time. Without the ability to rely on powerful and direct, and provides that process, the instrument would the player with crucial instant be impossible to master. This is, of feedback, making the direct course, very similar to game design, connection between action and and as such any musical games some form of game. There is no are approached together they can music. However, music generation need to have as much reproducibility reason why music should not be defi nitely become greater than the needs to have depth. This is no as possible. The challenge with this the same way. Playing music is sum of their parts. different from an instrument; concept is being able to retain the something that everyone can and without complexity, it is repetitive elements of mystery and challenge should do, it should be a fun, social YANN SEZNEC is an artist, musician, noise that will soon become stale that any game needs. activity not reserved for experts. performer, and founder of creative studio (then boring, then irritating, then In terms of the creative side Lucky Frame. Recent releases for iOS include abandoned), but if the music that THE GAME OF MUSIC of things, game design (and to a the IGF-nominated PUGS LUV BEATS and the is being created changes too much, » I have thus far framed many of certain extent software design in critically acclaimed BAD HOTEL, both of which the connection between the action these concepts in the context of general) is in many ways the most use innovative procedural music techniques. and the music will be lost. creating a musical game; music vibrant art form in the world right Lucky Frame is based in Edinburgh, For example, if a character has much to offer game design as a now. An enormous range of styles Scotland, and is currently working on several will trigger the same musical whole. Even the most basic concepts and approaches are being applied new interactive music projects.

WWW.GDMAG.COM 51 STUDENT game PROFILES educated play!

Refraction http://games.cs.washington.edu/Refraction/refraction.html The history of “edutainment” is littered with failed games that weren’t fun enough to deliver their educational payloads. The post-grad team behind fraction- teaching puzzler Refraction is determined to not be another historical footnote—which is why they’ve also created “Playtracer,” a piece of analysis software that tracks players’ actions and translates them into visualizations that the developers can use to balance Refraction’s difficulty, educational potential, and fun.

Alexandra Hall: What inspired and try to make as large an to iterate and improve the game, you to make an educational impact as possible on this specific and study its effectiveness. We’re P ublisher/Developer game about fractions? topic before tackling other areas. actually working on an entire set Center for Game Science Yun-En Lu: I’ve always liked Our goal is to create games and of fraction games, two of which Release Date September 2010 teaching. Helping out in an are nearly ready for initial release. tools to supplement existing Development time: ~1 year elementary math class is a classroom curricula and make Each of these games can tailor Development budget: $150,000 lot of fun. Every student has a teachers more effective. the play experience to each player # of lines of code in the game: slightly different way of looking individually through procedurally ~100,000 A fun fact: Players have commented at things, and trying to come up Refraction generated levels and progressions AH: You’ve worked on on the difficulty of getting the coin on with examples that students can for a couple years now—unusual along with sophisticated analysis level 2-5 more than any other. In fact, reason through to find conceptual for a student game. Have your tools to measure individual Michael John (senior creative director truths is a really interesting goals shifted? student learning. at EA) thought it was impossible to challenge. Games are a natural YL: As Ph.D. students, creating obtain when he first played through the game. way for this to happen, since Refraction and its sister games AH: Is it tricky to find a they’re all about exploration is more like a job than school— balance between fun and of strategies and interactions we’re paid, we have funding, we educational value? created a tool that shows how between complex rule sets, so it take very few classes, and so Erik Anderson: Difficulty hundreds or thousands of players seems only natural that we could on. Since we can devote a lot balancing for educational games move through a game’s state let students experiment with math more time to these games than is not really that different from space by creating graphs in which other games. All games involve circles represent game states and learning, even those without an arrows represent player actions. explicit educational purpose. Playtracer uses multidimensional However, one key difference of scaling to ensure that similar designing educational games is game states are shown close to that our learning goals restrict each other, and vice versa. This our choices of game mechanics. allows game designers to rapidly Although game designers find where players are getting sometimes bend reality in stuck and what strategies they order to improve usability or are using. playability, we have no choice but to implement target educational AH: Are you planning to offer concepts exactly as they appear Playtracer as a tool for use by in the real world. other developers? EB: Yes, we plan to make our AH: Did Playtracer spring from a Playtracer tool publicly available desire for finer-grained difficulty in the future. In the meantime, and experience-tuning? we have published the technical in the same way using games. It’s undergraduates taking a game EA: We developed Playtracer details of Playtracer in a few my hope that through our games course could, it also means we because we needed a tool that different research papers, we can convince a generation of can go much deeper into the really could effectively visualize player allowing developers to integrate kids that everyone can learn math interesting problems, such as behavior in games without a these ideas and methodologies if they put their minds to it—and running experiments to see how virtual environment. Heat maps into their own tools. None of the even find it fun. players react to different tutorials are highly effective for games ideas are particularly complicated Eric Butler: Why fractions or optional rewards, trying out such as first-person shooters to implement; we know a few specifically? The original plan for algorithms to predict what people because a game designer can developers who wrote their our group was to generically make are likely to do so we can adjust mark the map each time a player own version of Playtracer to educational games about science, the game experience for them, dies, for example, and determine analyze their games. We are also but we quickly discovered that creating new data visualization the most dangerous sections of currently working with some basic algebra and mathematics and analysis tools, and so on. that map. However, for puzzle external developers to plug was a huge stumbling block for a EB: The project cannot really be games like Refraction, there is their games into our in-house lot of students. So we decided to called a success until we make no equivalent “map,” so we need infrastructure. (You can read focus very narrowly on the early a measurable impact to early some other way to visualize more about Playtracer in this education problem of fractions math education. So we continue player actions. Therefore, we paper: bit.ly/playtrcr)

52 game developer | October 2012 >> GET EDUCATED

BECOME A LEADER IN DIGITAL MEDIA With digital media in mind from conception to completion, the new CENTRE FOR DIGITAL MEDIA features student apartments, project rooms and classrooms all designed to inspire creativity and collaboration. Located in Vancouver, Canada the new CENTRE FOR DIGITAL MEDIA oers a full and part-time Master’s program that focus on real-time, industry-facing collaborative projects. Learn more about our MASTERS OF DIGITAL MEDIA PROGRAM and EXECUTIVE MASTERS OF DIGITAL MEDIA PROGRAM at www.thecdm.ca/programs The future of work is at the new CENTRE FOR DIGITAL MEDIA. CENTRE FOR DIGITAL MEDIA | www.thecdm.ca

WWW.GDMAG.COM 53 GET EDUCATED >>

UNITED STATES POSTAL SERVICE Statement of Ownership, Management, and Circulation 1. Publication Title: gd Game Developer. 2. Publication No.: 13782. 3. Filing Date: August 30, 2012. 4. Issue Frequency: Monthly with a combined June/July issue. 5. Number of Issues Published Annually: 11. 6. Annual Subscription Price: $49.95. 7. Complete Mailing Address of Known Office of Publication (Not Printer): United Business Media LLC, 303 2nd Street – Suite 900 South, South Tower, San Francisco, CA 94107. Contact Person: Roy Beagley. Telephone: 203-775-9465. 8. Complete Mailing Address of Headquarters or General Business Office of Publisher (Not Printer): United Business Media LLC, 303 2nd Street – Suite 900 South, South Tower, San Francisco, CA 94107. 9. Full Names and Complete Mailing Addresses of Publisher, Editor, and Managing Editor: Publisher: Simon Carless, United Business Media LLC, 2nd Street – Suite 900 South, South Tower, San Francisco, CA 94107; Editor: Brandon Sheffield, United Business Media LLC, 2nd Street – Suite 900 South, South Tower, San Francisco, CA 94107; Managing Editor: None. 10. Owner: United Business Media LLC, 600 Community Drive, Manhasset, NY 11030-3875, an indirect, wholly owned subsidiary of United Business Media LLC, Ludgate House, 245 Blackfriars Rd., London, SE1 9UY, U.K. 11. Known Bondholders, Mortgagees, and Other Security Holders Owning or Holding 1 Percent or More of Total Amount of Bonds, Mortgages, or Other Securities: None. 12. Tax Status: Has Not Changed During Preceding 12 Months. 13. Publication Title: Game Developer. 14. Issue Date for Circulation Data Below: September 2012.

15. Extent and Nature of Circulation: Average No. Copies Each No. Copies of Single Issue During Preceding Issue Published Nearest 12 Months to Filing Date a. Total No. Copies (Net Press Run) 28,463 25,415 b. Paid and/or Requested Circulation (1) Outside County Paid/Requested Mail Subscriptions 18,122 16,767 Stated on Form 3541. (2) In-County Paid/Requested Mail Subscriptions 0 0 Stated on PS Form 3541 (3) Sales Through Dealers and Carriers, Street 1,457 1,265 Vendors, Counter Sales, and Other Paid or Requested Distribution Outside USPS (4) Requested Copies Distributed by Other Mail 0 0 Classes Through the USPS c. Total Paid and/or Requested Circulation 19,579 18,032 [Sum of 15b. (1),(2), (3), and (4)]: d. Nonrequested Distribution (By Mail and Outside the Mail) (1) Outside County Nonrequested Copies Stated on PS Form 3541 5,423 5,248 (2) In-County Nonrequested Copies Stated on PS Form 3541 0 0 (3) Nonrequested Copies Distributed Through the USPS by 0 0 Other Classes of Mail (4) Nonrequested Copies Distributed Outside the Mail 3,145 1,800 (Pickup Stands, Trade Shows, Showrooms, and Other Sources) e. Total Nonrequested Distribution 8,568 7,048 f. Total Distribution (Sum of 15c and 15e) 28,147 25,080 g. Copies Not Distributed 316 335 h. Total (Sum of 15g and 15h) 28,463 25,415 i. Percent Paid and/or Requested Circulation 69.56% 71.90% (15c Divided by 15f Times100)

16. Publication of Statement of Ownership: This Statement of Ownership will be printed in the October 2012 issue of this publication. 17. Signature and Title of Editor, Publisher, Business Manager, or Owner (signed): Simon Carless, Date: August 30, 2012.

54 OCTOBER 2012 | GAME DEVELOPER

>>

GET EDUCATED

ADVERTISER INDEX COMPANY NAME PAGE COMPANY NAME PAGE ACADEMY OF INTERACTIVE ENTERTAINMENT 55 LUCAS FILMS C2

BLIZZARD ENTERTAINMENT 6 & 16 MASTERS OF DIGITAL MEDIA PROGRAM 53

EPIC GAMES 15 RAD GAME TOOLS C4

HAVOK C3 TWOFOUR 54 3

LOS ANGELES FILM SCHOOL 54 VANCOUVER FILM SCHOOL 25 gd Game Developer (ISSN 1073-922X) is published monthly by UBM LLC, 303 Second Street, Suite 900 South, South Tower, San Francisco, CA 94107, (415) 947-6000. Please direct advertising and editorial inquiries to this address. Canadian Registered for GST as UBM LLC, GST No. R13288078, Customer No. 2116057, Agreement No. 40011901. SUBSCRIPTION RATES: Subscription rate for the U.S. is $49.95 for twelve issues. Coun- tries outside the U.S. must be prepaid in U.S. funds drawn on a U.S. bank or via credit card. Canada/Mexico: $59.95; all other countries: $69.95 (issues shipped via air delivery). Periodical postage paid at San Francisco, CA and additional mailing offices. POSTMASTER: Send address changes to Game Developer, P.O. Box 1274, Skokie, IL 60076-8274. CUSTOMER SERVICE: For subscription orders and changes of address, call toll-free in the U.S. (800) 250-2429 or fax (847) 647-5972. All other countries call (1) (847) 647-5928 or fax (1) (847) 647-5972. Send payments to gd Game Developer, P.O. Box 1274, Skokie, IL 60076-8274. Call toll-free in the U.S./Canada (800) 444-4881 or fax (785) 838-7566. All other countries call (1) (785) 841-1631 or fax (1) (785) 841-2624. Please remember to indicate gd Game Developer on any correspondence. All content, copyright gd Game Developer magazine/UBM LLC, unless otherwise indicated. Don’t steal any of it.

WWW.GDMAG.COM 55 ARRESTED DEVELOPMENT // MATTHEW WASTELAND

I don’t know. I think you’re too How’s that incendiary? I’m hot to be a game journalist...a real just stating a fact. one, anyway. I’d be, like, “Are you A fact? That sounded a lot like really into games? Probably not. an opinion to me. Are you sure you You’re just doing this because of know the difference between— all the free attention you get.” Sorry, I have to run. I need to That’s a thing that happens in the catch the new episode of My Little game business, see—there are Pony: Friendship is Magic. Hey, do these girls who aren’t really into you watch that show? games, they just— Okay, slow down there. What did you just say? Huh? That was just a little joke. Anyway, I said you were hot. But...But...They’ve done You should feel complimented! studies about this; I’ll totally Google for them when I get home. They have, I remember it really clearly. It’s this completely proven scientific fact that women You still don’t hear it? Let me are more— play it back again. Okay? I’m going Why don’t you stop right there. to rewind it and play it back again. I’m sorry, but arguing about this [faint audio]: “Easy mode is isn’t going to get us where we very forgiving. It’s so simple your need to be. I’m going to suggest girlfriend could play it.” instead that you simply avoid Okay, one more time. Tell me talking what’s wrong with that. about I...I don’t know. anything You don’t know? Think about it unrelated to for just a little longer... the talking Uh, uh...is it because I’m points in assuming everyone has a the packet. girlfriend? I mean, I guess if Okay? No someone was gay, they might get opinions, no “facts,” nothing other mad at me? than Demons with Guns 2 is going Keep thinking. to be a great game, we’re working hard on it, and it features a new the PR COACH multiplayer mode.” Ins ide the public relations department’s Well, To be honest, I think ...and I don’t know about you’re the one who doesn’t secret training sessions those people who are into those understand. I mean, I know that, Preparing for an upcoming media event is hard work—you anime-style games. I think sure, politicians or whoever have never know what devious curveballs a hard-hitting game they’re biased, and it’s not fair. to say things in a certain way. But journalist might lob your way. Thankfully, the big publishers Because people are, like, “Oh, it’s this is the industry. often have professional, highly skilled PR staff who can advise awesome.” But it’s not. That anime It’s part of the culture— and train game developers in the art of sticking to talking stuff is all just gibberish anyway. Shush. Did you hear me? points and saying things correctly. Let’s take a peek behind Okay, let’s take a step back here... No talking. the curtain to see how this mysterious process works! It is, though. All I’m saying I was just— is, that’s a double standard. If Shh. audience. I just gave a big talk to you like anime, but you don’t like Okay. Jeez. I— my screaming fans last E3. the kinds of games I make, then Shh. I’ve coached politicians, Yes, I watched that video. To be you’re being biased toward anime ... lawyers, CEOs—people in highly fair, all you actually said out loud at games, and that’s favoritism. That’s a good boy. Now go out

z visible, highly scrutinized that E3 presentation was “Demons That’s, like, racist. there and talk about your game. re i

m positions. So I’m pretty sure this with Guns 2 is coming this winter.” You don’t have to try to talk ra

n will be fairly simple. And they loved it. Right? The me through your reasoning. I’m m atthew WaSTEland writes about jua Hey there, yeah...uh, I’m not crowd went wild. sure it makes perfect sense to games and game development on BY N really sure why I’m here, to be In that case, this should you. But let’s focus on how you his blog, Magical Wasteland (www. honest. I already know how to go fast. Why don’t we begin by can express your opinion in a magicalwasteland.com). email him at USTRATIO L

I L conduct myself in front of an pretending I’m a game journalist. way that— [email protected].

56 game developer | october 2012 Get the innovative technology needed to unlock the games of the future.

$ZDUGõZLQQLQJ©WHFKQRORJ\ 8QSDUDOOHOHG©VXSSRUW©)OH[LEOH©OLFHQVLQJ©RSWLRQV© Learn More: www..com

+DYRN©LV©KLULQJ©9LVLW©www.havok.com/careers©IRU©PRUH©LQIRUPDWLRQ

Havok™ Technologies Include: +DYRN©3K\VLFV©‡©+DYRN©$,©‡©+DYRN©$QLPDWLRQ©‡©+DYRN©%HKDYLRU©‡©+DYRN©&ORWK©‡©+DYRN©'HVWUXFWLRQ©‡©+DYRN©6FULSW©‡©+DYRN©9LVLRQ©(QJLQH