Wells relates, "We were three days from gold master -- a [few] weeks ago -- and our lead programmer comes in with Christophe and [game director] Justin Richmond, and they shut the door. I'm like, 'Why are we having a closed door conversation so close to gold master?' He sits down with the most depressed look on his face, and he says, Guys, I took the game home, and it's a mess.'" The problem: the game performs just fine -- for the first half. After reaching the halfway point, numerous bugs would crop up. Objects would disappear. Walls would flicker in and out of existence. Nathan could find himself in a hall devoid of anything -- geometry, texture, lighting, etc.
Wells continues, "All of these bugs point to the exact same problem in our streaming system. We are streaming stuff constantly; we're abusing the PlayStation 3 like a bad child. We're streaming audio, music, animation, video, levels, textures, everything. We're filling the memory, and about halfway through, it gets jammed up so that when we ask for a texture, it's not there; we ask for an animation, and it's not there." Balestra interjects to note that the reason this bug came up was because the programmer happened to play the game on an older test unit -- most of Naughty Dog's Quality Assurance team were using newer debug hardware and hence weren't running into this issue. The developers realized that a lot of fans still probably play games on launch-era PS3 systems, and this bug could end up ruining a lot of players' experiences.
Balestra remembers having an intense two-hour-plus discussion with lead programmers Travis McIntosh and Christian Gyrling to nail down exactly what triggers the game's meltdown at the halfway point, and they concluded that somehow, the streaming system was causing the PS3's hard-drive to fragment, which therefore led to lots of seeks when requesting data, and said seeks would cause the "traffic jam" that Wells described earlier. Wells notes, "Even though it's literally past the day that we told Sony, 'We're not changing the code anymore, trust us,' we went in and changed the most fundamental and frequently called function in the game."
The lead programmers made a tweak to the code and then burned a new disc with the revisions. Then they had two testers play the old and new code side-by-side; one tester played the old code on a relatively old system while the other tester played the freshly fixed version on the oldest PS3 in the office. Wells finishes, "Right away, we notice that one system is doing better while the other is pretty bad. There was this [specific] threshold we were looking for, 3000, and we knew that was when things would get bad. The number kept creeping up and up, and right when both systems hit 3000, we saw that one guy would go around a corner, and nothing in the world existed -- while the other guy went around the corner, and everything was fine."