Причиной загадочных «смертей» компаньонов в The Outer Worlds оказались лестницы
Вчера для The Outer Worlds выпустили патч 1.2, исправивший баг, с которым разработчики бились всё это время. Глава отдела контроля качества Obsidian Тейлор Своуп (Taylor Swope) рассказал в своём «Твиттере», что для устранения ошибки авторам пришлось провести целое расследование.
Суть бага — иногда игра считала задание компаньона проваленным, потому что тот якобы умер, несмотря на то что с союзником всё в порядке. При этом ваши спутники не могут окончательно погибнуть на любом уровне сложности, кроме максимального.
С проблемой девелоперы пару раз сталкивались ещё до выхода игры, однако воспроизвести её никому в команде не удалось. После долгих поисков студия пришла к выводу, что баг может возникать лишь тогда, когда товарищи не находятся в команде, — иначе, пав во время сражения, они оживают по окончании боя. Местом, где компаньоны не считаются частью группы, оказался корабль.
Однако это умозаключение стало причиной ещё большей головной боли. Спутники игрока на корабле неуязвимы для атак, но могут получить урон от падения с большой высоты. Правда, дело в том, что на корабле нет настолько высоких точек, откуда NPC бы могли упасть, разбившись насмерть.
Своуп придумывал множество теорий, почему появляется этот баг, но ни одна из них не работала. Obsidian оставалось лишь надеяться, что это просто странная случайность, которую не заметят игроки. Но игроки заметили — и в конечном счёте благодаря им удалось починить болячку.
Один из геймеров сообщил, что видел на корабле персонажа, который лез по невидимой лестнице прямо сквозь текстуры. Своуп сообразил, что ключ к разгадке кроется в системе взаимодействия NPC с окружением, которая запрещает им начинать новое взаимодействие, если игрок вступает в диалог.
Использование лестницы — это два разных действия: взобраться на лестницу и начать подниматься, а потом прекратить подниматься и слезть. Если игрок начинал с кем-нибудь разговор, пока другой персонаж взбирается по лестнице, то этот персонаж бесконечно долго лез вверх до тех пор, пока игрок не закончит диалог. После этого NPC падал с уже несуществующей лестницы.
Ролик с демонстрацией бага можно увидеть ниже. Как отмечает Своуп, он потратил на это расследование больше времени, чем на любую другую ошибку в его карьере.
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