How Uncharted 2 set the technical benchmark

How Uncharted 2 set the technical benchmark

By Mike Hatfield

September 2nd 2010 at 8:00AM

Naughty Dog lead technical artist Mike Hatfield on the game's extra special effects

In this exclusive extract from Ballistic's The Art of Uncharted 2: Among Thieves we go behind the scenes to see how Naughty Dog used a huge variety of special effects to build the flagship PS3 title.

...One of the things we wanted to improve over Uncharted: Drake’s Fortune was our use of real-time physics-driven events; situations like a character moving through an environment where he’s knocking things over, or he’s destroying cover with the machine guns.

We really wanted to bring more life to the environments with things that are dangling, or hanging off of the ceiling, that you can bump into and shoot and see them react in real-time.

We also wanted to increase our use of pre-simulated physics so if we had a major destruction effect like a building collapsing, we’d pre-simulate all that in Maya, bake all that animation down, and then run that through the game engine. So you’d have real-time control of the player, but the building collapsing is a pre-simulated event.

To push things further we also wanted to layer our real-time physics objects over the pre-simulated events. So in the collapsing building sequence we’ve also got computer monitors and plants that are rolling around in real-time reacting to the environment.

To add a third layer on top of that, we also added physics-driven particles, so we have sparks that are coming off the light fixtures, that are particles hitting the ground and bouncing. It’s pretty amazing that it actually works.

To complete the effect you’ve got enemies that you’re shooting while the building is collapsing, and when they’re killed they turn into rag-dolls flopping around the environment.

The overall result of all these effects is to overwhelm the player so that they don’t really have time to pick it apart and figure out: ‘Hey, that’s pre-simulated, and that’s real-time.’ We just want them to get caught up and pulled into the whole experience. All they know is they’re controlling Drake and trying to survive.

Our team’s brief was ‘More awesome! How do we make this more awesome than the first game?’

From an effects viewpoint ‘More awesome!’ equals bigger effects, and pacing them out so those big effects have more dramatic impact. It also means having more interactive stuff in the environment. The first game had very few physics-driven items so we definitely wanted to have a lot more this time around.

Part of our goals from the very beginning was to have more interactive items, more real-time physics-driven items, and to do away with exploding barrels so we’d find more creative solutions to our gameplay problems. We had to find more creative ways to do the same tricks that we’ve always been doing.

We ‘gate’ the player off from area, but that’s packaged up in an awesome explosion, and a great dramatic moment finalised by a funny remark from Drake commenting on what he just experienced. All those things are sleight-of-hand distractions for the mechanics of what we’re trying to accomplish while moving the player from start to finish.

Using Havok


We brought in the Havok physics engine for Uncharted 2. Before we had Havok we had our own in-house physics system, developed by one of our programmers, which we used for the first game. It was great, and it worked well, but we were limited in how much we could do with it and how many different features it had, because it was the work of one programmer.

Havok is supported by a huge company, and has been through several revisions, so it made things easier for our artists to use. The Havok system gave us the tools to do things like having a light fixture that’s hanging from the ceiling that swings around in real-time, and can react to the player or even gunfire.

Havok also gave us some performance improvements so we were able to push more physics objects around in any given frame.

Hind Attack


In the Nepal warzone, Drake is chased by a Hind attack helicopter. The Hind destroys the bridge Drake is hanging from with machine gun fire, dropping him onto a series of awnings. He then starts running and jumping to avoid the incoming rounds spraying the windows. We got all those windows blowing out with some convincing particle effects.

Drake and Chloe make it to a rooftop garden, so we had a lot of plants in pots and the great thing was that the plants were set up with real-time Havok physics.

Not only would they be interactive if the player shot or walked through them, but we could also generate wind that was coming from the helicopter. As the helicopter moves from point to point you can see the direction that the wind is coming from by how it affects the plants. The plants also blow violently when the helicopter hovers.

Collaboration


The game designer will have an idea of what they’d like to see in a level, but they need the co-operation of the background artist and the effects artist to make it happen. The designer has overall responsibility for establishing the pacing and making sure that the level as a whole is the experience that they want to deliver.

Within that there’s a lot of room for conversation and compromise and that is how we end up with well-paced games.

When those moments come, they’re fantastic. It’s the culmination of a lot of people’s great ideas all mixed together. The most satisfying thing about working at Naughty Dog is the collaborative effort. It’s not just among artists and designers, but also the programmers. Programmers are more in touch with our technical limitations than anybody else in the team. Artists are pie-in-the-sky people.

We want to see everything. We want high-res textures, and unlimited polygons. The programmers are tethered to reality, but we try to inspire them to find ways to make the technology facilitate these amazing things that we want to do. It’s all collaborative, it’s all compromise, and then hopefully in the end we come up with something that feels like a win for everybody involved, including the player.

Blowing things up


We didn’t have as many player-initiated large destruction events in Uncharted 2, but we did have a lot of destructible cover. When hiding behind a low cover wall while the enemy is shooting, you’ll see your cover chipped away bit by bit‚ eventually taking enough damage to collapse.

That gave our designers a tool to push the player in the direction they wanted them to go, and to create time-constraints for different combat situations. We looked at the story beats to decide when we needed to blow something up, or have a big event like a wall being blown out.

Often, they’d be triggered when Drake gets close, and the blast knocks him off his feet. This takes away control for a second and forces the player to be passive for a moment while Drake collects himself. This gives you chance to evaluate your environment, and decide on your next move.

Blizzard


Drake’s train journey ends when he blows up some gas cylinders and derails the whole train, causing a massive train wreck. There’s a blizzard that’s rising in intensity over the course of the level. When you start there’s just a gentle snow falling, but over the course of the level we’re able to dynamically ramp up the intensity of the blizzard so that by the end you’re fighting your way through a pretty heavy blizzard with limited visibility.

At one point when you’re climbing through these battered train cars, you get up on top of one of them just as another car explodes on the hillside next to you. We call this sequence the ‘washing machine’ because the explosion sends another car sliding down the hillside which t-bones the car that Drake is standing on top of, knocking him back inside the car, which then tumbles like a washing machine towards the edge of a cliff.

The camera’s actually inside the car in this sequence, so you get to see just when the impact happens, and we shatter all the glass. The camera is stationary as the car tumbles around. The camera’s inside the car going with it but the car is tumbling and you see Drake flopping around inside the car. Drake gets knocked out for a little while at the end of that. That’s just a cool sequence.

You’re walking, you’re looking around, exploring, trying to figure your way out and then all of a sudden ‘bam’, there’s a big explosion and a huge amount of noise and this incredibly violent scene that happens.

Head to the light

In the Train Wreck level there’s a burning tanker car that you can use as a visual beacon through the blizzard to keep your bearings. As a rule, we keep people headed towards the light.

The tanker eventually explodes during the battle and sends a big piece of debris flying through the environment. The explosion blows a cap off the tanker and if that cap happens to hit an enemy, it will kill them. It’ll happen every once in a while, and it’s really cool to see.

Rubble


Anything that gets destroyed requires pretty extensive testing because we have to make sure that any real-time events happen randomly enough to be satisfying. We also have to make sure that it happens in a controlled way that prevents the player from getting stuck.

We blow up a lot of stuff in the game, and then we have to put all that rubble somewhere. If we’re going to create a big pile of rubble from something we destroy, we have the testers climb all over that thing and give us all kinds of bugs about wherever they see any collision problems.

If any combat has to happen in the vicinity of the debris then it’s especially important that we have smooth traversal over that geometry. So we do a lot of testing on the piles of rubble that we create, basically to make sure that we don’t break the game and ruin the experience.

Convoy


In the Convoy level, we had large rock outcroppings that the vehicles were driving between, so if you hit one of those outcroppings they would collapse. If it collapsed in front of a vehicle, the vehicle would smash into it, so you could take guys out that way.

The vehicles themselves turn into physics-driven objects once they get blown up, because we never know exactly where they’ll be when they get destroyed. We have to be ready at any time to switch from their predefined animation path to physics-driven behaviour to let them fly into the air and see where they land.

That’s part of the fun of real-time physics. It’s never the same result twice, and you never know when you’re going to see something really amusing, like sending a jeep full of guys flying off the side of a cliff and seeing them tumble through the air.