Quality assurance is a process. Merely knowing that a bug exists isn’t enough: testers need to be able to reproduce the bug in order to access the root cause. Easier said than done.
Yesterday, Obsidian Entertainment QA Lead Taylor Swope took to Twitter to explain how the developer figured out and eventually fixed an annoying bug that caused The Outer Worlds to believe that a player’s companions are dead. The problem should be obvious: companions can’t die, and indeed, people who encountered this bug could see their pals behaving as they normally would. But, because the game treated companions as deceased, some players weren’t able to complete certain quests.
Obsidian was aware of the bug before launch, Swope says on Twitter — but the RPG-maker couldn’t recreate it, nor could it figure out what was causing it.
“One reason it was so hard to pin down is that it was impossible to tell when the bug actually happened,” Swope explained. “All of the cases we had were essentially ‘hey something bad happened in the last ten hours and now my quest is broken.’”
Swope says Obsidian went over “every script and line of code” that could have possibly affected companions this way. No dice. This, it turns out, was the start of a long and convoluted process, as Swope detailed on Twitter:
The only place in the game when a companion is present but *not* in the active party is when the player is on their ship— Taylor Swope (@_taylorswope) December 12, 2019
The problem is, when companions are on the ship, they are undamageable (8/18)
The problem with *that* is that there are no spots in the player's ship that are high enough to result in a lethal fall— Taylor Swope (@_taylorswope) December 12, 2019
So now we had to figure out how companions were mysteriously ending up way above the level (10/18)
My personal fav was "what if a companion is standing *right* where a cow spawns in during a random event and they're launched into space"— Taylor Swope (@_taylorswope) December 12, 2019
Was genuinely bummed when that theory didn't pan out (12/18)
Unable to suss the issue out, Obsidian crossed its proverbial fingers and hoped that the issue would be a “rare fluke” that may not appear in many players’ games. And then The Outer Worlds came out, and lo and behold, reports of dead companions seemed to be everywhere. No good! Obsidian was back on the case. But despite all the poking and prodding, what eventually led Obsidian to figure out what was going on turned out to be completely random: Swope came across a user review that complained of a companion who was “climbing nothing.” Suddenly, everything clicked into place:
Somewhere deep in the complex beast that is the furniture system, we had code that disabled all NPCs from starting new furniture interactions if the player was in a conversation (16/18)— Taylor Swope (@_taylorswope) December 12, 2019
So, if someone started climbing a ladder and the player entered a conversation before they stopped, they wouldn't be able to exit the ladder, and, well…. (18/18) pic.twitter.com/xcduTy4d12— Taylor Swope (@_taylorswope) December 12, 2019
Incredible. The bug is fixed now, of course — but Swope says that pinning this down took him more time than any glitch he’s encountered over the course of his entire career.
So, next time you wonder “why hasn’t this game developer fixed this common bug that screws with my experience,” remember that QA might have known about everything before the game even launched ... but actually remedying it is way harder than you might think!