Friday, September 25, 2009

Mistakes Were Made

"The Life Vol.2" in NBA 07, a late PS2 release, was much shorter, and the title defense story is never as exciting as the rise up. But the sequel did add an interesting twist by having players alternating between the parallel seasons of The Kid and his nemesis from the first game, "Big W." The rivalry comes to a head in a scenario that pits the two protagonists against one another in a mid-season game. The player plays the first half as The Kid, then switches to Big W to finish things off. The actual execution is kind of disastrous, since players basically end up kicking their own asses, but I know of no other game in any genre that allows players to experience consecutive phases of a single contest from opposing angles.
I have a confession to make: I was inadvertently kind of directly responsible for the disaster that was that episode of "The Life Vol. 2."

To begin with, let me describe how the scenario originally played out, before I meddled with it.

(Note: Although I have a copy of NBA 07, I don't have any save data allowing me to access these stages. After playing it through hundreds of times as a tester, I have no intention of playing it again on my own time. Therefore I am describing the following from memory alone. The details may not be exactly accurate, but the basic idea should hopefully come across fine.)

This showdown between The Kid and Big W actually spanned four consecutive stages. Each episode corresponded to one quarter of the same single NBA game, but the player could save and stop after each, just as with any other self-contained stages.

The first two quarters had you playing as The Kid's team. The first, starting from tip-off, was fairly straightforward. A player skilled enough to have made it that far into the story mode should have been able to meet all of the mission's required statistical goals with time to spare, at which point they would probably just run up the score, draining three-pointers to pass the time against the hopeless AI. The second stage was more of the same.

For the last two stages, the player would switch over to the opposite team to finish the game. The third was a one-play scenario that began players at the final seconds of the third quarter. The fourth was nearly a full quarter (Note: "The Life" ran on five-minute quarters) that required the player, as Big W's team, to win the game by at least six points, in addition to fulfilling other goals.

The issue that I originally observed was that there was no statistical continuity across stages, even though they were all the same game. In other words, even if, at the end of the first quarter, I was leading 50-2, the second stage would begin with a preset score that was closer to 21-23 (again, I don't remember the exact numbers). The minor issue did not detract from the playability, but it clearly made no sense and was therefore a bug.

I submitted a report on it, which was all I could do. Indeed, one of the more frustratingly unfounded accusations that reviewers often make is that a buggy game must not have been thoroughly tested. The reality is that testers can only find and document the bugs. It's up to the programmers how to fix them, or to the producers whether to even bother. In the case of this minor NBA 07 issue, they did address it, but the fix ended up more problematic by far than the original bug.

In the finished version of the game, the score did carry over from the first stage to the second, the second to the third, and the third to the fourth. But remember how I mentioned that the first two scenarios left the player ample time to establish a huge lead with The Kid? Well, now that huge lead carried over to the third stage, and in the fourth it became the unknowingly self-inflicted deficit that the player would have to overcome in order to win as Big W.

Theoretically, this could be a truly heinous, game-stopping defect. If the player had played their absolute best during the first two stages, then the fourth quarter would have been more than just a surprising challenge; the game would have become impossible, because stage four would have required them to be six points better than their best, in about half the time.

In practice, it was a major enough issue that the episode was specifically described in Aaron Thomas's even-handed review for GameSpot:
By far the biggest problem, and the only one likely to keep you from seeing the story all the way through, is the uneven difficulty. Some challenges are quick and a piece of cake, while others are lengthy and involve multiple challenging goals. One in particular gives you 4:51 to complete four dynamic goals, make 10 shots with Big W, and limit the opposing small forward to two field goals. You also have to win the game by at least six points, which means you'll need to outscore the other team by 18 points in that time span. Some challenges ask you if you want to temporarily drop down to easy if you fail repeatedly, but after failing over and over for 30 minutes in the case above, the game never offered any sort of mercy.
There was no scenario in NBA 07 that explicitly required the player to come back from a twelve-point deficit to then win by six. It's apparent that Thomas did not know know why he started that stage so far behind. Therein lay the true deviousness of it all. Unless the player were paying the same careful attention to statistical continuity as I had as a tester, chances were that they would never realize that they were burying themselves in those first two stages as The Kid. Because each of the four quarters was its own short scenario, because most scenarios were self-contained with predetermined scores to work from, and because most were easy enough that players hardly had to keep track of team scores, the average player would not have been conditioned to even consider that they had done this to themselves. They would have just thought, as Thomas did, that it was a particularly unreasonable mission.

Since a tester's work is ordinarily the stuff that you don't see when playing a finished title, I have to admit it was oddly gratifying to have something I was responsible for, albeit inadvertently and not proudly, mentioned so specifically in a published review. But this was probably a case where I would have done my job better by keeping quiet, where playability would have been better served by suspending logic. Of course, even if I hadn't pointed it out, I'm sure some young go-getter colleague would have noticed it eventually.

Furthermore, in my defense, there was actually one more bug contributing to the nightmare in the "fixed" game, which, had it been addressed, might have solved everything. Astute readers may already have spotted it.

Remember that the third stage actually only covers the final play of the third quarter. Yet the score at the beginning of the third stage is the exact score carried over from the end of stage two. In other words, neither team scores a single basket during the third quarter, up until the final play, which is the only part that the player plays. Even if both teams were putting up the most tenacious defense and deficient offense of all time, that's nearly a statistical impossibility. Yes, I wrote up this bug too, but, alas, there would be no fix this time.

The proper fix should have carried over the score from stage one to stage two, but then taken advantage of the elapsed "missing" time in the third quarter to balance things out in advance for the fourth stage. The programmers should have set it to automatically add twenty points to The Kid's score while boosting Big W's to, say, six points behind whatever that would be. So if the second quarter had ended with The Kid leading 86-12, the third stage would have begun at 106-100. Would it have been reasonable for Big W's team to have scored 88 points in under five minutes? No, but I don't think even I would have submitted that one as a bug.

No comments: