Inordinately large asset lists were created for each level covering objects, sound effects, visual effects and animations that were needed. The Naughty Dog team soon realised that the scope of their ambition far exceeded what they had handled in the three-year development period of the original Uncharted: Drake's Fortune.
"We need an enormous volume of entities to create a game like Uncharted 2," says Lemarchand. "For example we had 80 in-game cinematic animations - that we call IGCs - in Uncharted: Drake's Fortune, but we had 564 IGCs in Uncharted 2. This is an amazingly large amount of work to requisition and produce on an ad-hoc basis so the leads of each department needed to juggle their priorities a lot and work hard to get everything built in the right order."
Digital Foundry has talked often and at length about Uncharted 2's status as the most technologically advanced videogame available on the current generation of consoles - a state of affairs only challenged by the recent God of War III. The vast range of enhancements and tech improvements saw the Dogs' internal tech rechristened as the Naughty Dog Engine 2.0.
"We went Cell processor-crazy on Uncharted 2. We were famous for saying that Uncharted: Drake's Fortune only used about 30 per cent of the capacity of the Cell processor," says Lemarchand.
"So from the very beginning of the project, the programmers focused on making sure that we squeezed every last ounce of performance out of the Cell. The key to doing this was to decide which of the jobs we wanted to farm out to the Cell and then writing hand-optimised code to do those jobs as efficiently as possible."
Unbelievably, considering that the original Uncharted is still such a beautiful-looking game, almost all of its visual effects were achieved using the RSX graphics chip pretty much in isolation. For Uncharted 2 - and indeed many recent games - Cell is used as a parallel graphics processor working in tandem with the RSX. Tasks traditionally associated with the GPU are passed off to the Cell's SPUs.
What this means in basic terms is more time for the RSX to do its thing while the Cell takes care of the vast majority of Uncharted 2's excellent post-processing effects. Screen space ambient occlusion (SSAO), for example, was all done completely on the Cell.
"The SPUs gave us an increase in the quality of our bloom effects," Lemarchand adds. "Depth of field, which was kind of a hack in the first Uncharted, was a much more physically correct solution in Uncharted 2, which made the times that we used it in the service of cinematography that much more powerful as a story-telling tool.
"We also implemented a filmic HDR response curve and Uncharted 2 has a much wider range of colours between light and dark than its predecessor making it look much more like the game was shot on film, supporting our goal of making a cinematic reality."
All of this enhanced tech came at a price though and as Lemarchand puts it, with just nine months before launch, the team "suddenly realised that our frame-rate was to put it bluntly, pretty crap". According to Naughty Dog co-president Evan Wells, Naughty Dog received technological assists from Insomniac Games and Killzone creators Guerrilla Games in implementing the triple-buffer v-synced technique that completely eliminated the tearing from Uncharted.
"We had to mobilise to fix it and right up to the end of the project we had a huge focus on frame-rate," remembers Lemarchand. "Both our programmers and artists had to work very hard to make sure that we hit 30FPS consistently throughout the whole game and so banish some of the issues with tearing and stuttering that we experienced with Uncharted: Drake's Fortune. We had to give people the analytic tools they needed to keep the game inside the frame-rate and we had to make a memory sacrifice to achieve the triple-buffering solution that finally got rid of the tearing."
Technologically speaking, the game concepts the Naughty Dog designers had come up with during pre-production were affecting and indeed helping to redefine engine performance and capabilities throughout the development cycle.
"The train level was one of the first levels we started on and one of the last that got finished and to be frank it was an evil monster of a level to create," Richard reminisces. "There are 50 separate cars that are really moving along through our streaming environments at a pretty good lick. You can see all 50 cars at pretty much any time during the level and when we first started to build the level, when we looked at the first car from the last car, a little lamp hanging on the front of the first car was still swinging! We hadn't really used a level of detail (LOD) system in the first Uncharted but the train level made us put it into action in double quick time."
The Naughty Dog dynamic object traversal system was being pushed to its limits by the train stage, with the team stubborn in its belief that the train should only progress in the world if the player - and everything else in the level - was moving along with it.
"In order to make this happen we had to do a lot of weird stuff, sometimes teleporting the train into new positions, depending on what you did," explains Lemarchand. "And this, combined with the general craziness of doing the train level led to a lot of bugs, particularly with the enemies' navigational systems. They were getting confused every time the train teleported for instance.
"Also, for a long time, when you shot the enemies and they dropped their weapons, the weapon would zoom off down the track as it shifted into the coordinates system of the world. Even better than that, grenades would fly back into your face and blow you up.
"To cap things off, we realised at one point that the player's gun-aim raycasts were aiming at where the enemies had been a frame ago. This hadn't made much difference in most of the levels but in the train level the enemy was back down the track two metres a frame ago, so suddenly your aim was two metres off. So that was just another bug that we had to fix."
Fixing those bugs in the most extreme of cases meant that the gameplay mechanics throughout the entire game were tightened up as a consequence. Every system was made more robust owing to the developmental headaches inflicted by that one level. As Lemarchand puts it:
"We could say to each other, 'If it works on train, it must work everywhere!' In other words, not only had we made our game run at 30 frames per second, we'd also made it run at 60 miles per hour!"