В The Outer Worlds был баг, заставляющий компаньонов совершать суицид в космосе

The Outer Worlds вышла одной из лучших ролевых игр нынешнего года, однако игра вышла не без багов. Один из них был особенно неприятным, так как проваливал квесты компаньонов, совершенно случайным образом и без активного участия самих игроков. Проблема была настолько странной, что тестерам потребовалось много времени для выяснения происходящего. 

Тейлор Своуп, руководитель по контролю качества в Obsidian объяснил в твиттере, как его команда обнаружила странный суицидальный баг. 

Все началось с того, что игроки The Outer Worlds после релиза начали сообщать, что лог квестов показывал задания компаньонов проваленными, так как компаньон был мёртв. Загадка в том, что за исключением режима SuperNova, компаньоны не могут умереть. Однако по какой-то причине игра думала, что компаньон умер, помечая квест, как проваленный.

Поиски бага значительно усложнило то, что долгое время было совершенно не ясно, в какое время компаньон погибает. Все жалобы игроков сводились к сообщениям, что за последние несколько часов игры произошло что-то плохое и теперь квест не работает.

В таких условиях команда просто не могла воспроизвести ситуацию, приводящую к ошибке. Однако со временем разработчики смоги выяснить, что баг возникал только на космическом корабле, так как это единственное место, где одновременно присутствуют все персонажи, даже не входящие в активную партию. Несмотря на то, что код игры защищает персонажей от получения боевого урона на корабле, это не означает, что они совершенно неуязвимы. Команда решила, что тут и возникает баг. Каким-то образом компаньоны разбивались насмерть, будучи на космическом корабле. Но где? Архитектура корабля не включает мест, где можно забраться так высоко, чтобы разбиться.

После этого тестеры проверяли несколько теорий. Одна из них касалась данных о высоте, которые сохранялись при быстром перемещении. Другая гласила, что компаньон мог находиться в месте во время спавна коровы во время случайного события. Еще одна теория касалась выброса персонажа с корабля в космос. Но ни один вариант не подтвердился, пока кто-то не обратил внимание на комментарий о совершенно другом баге — геймер сообщал, что заметил персонажа, поднимающегося по невидимой лестнице. Это натолкнуло Тейлора на ответ.

Когда игрок вступает в разговор с кем-то, код The Outer Worlds не позволял персонажам запускать новое взаимодействие с окружающими предметами, которые включают все — от стульев, до терминалов и лестниц. Но у последних есть еще одна любопытная сторона: код игры разделял взаимодействие на два отдельных действия. Одно для "входа" на лестницу и начало подъема, второе завершало подъем и персонаж мог слезть с лестницы. 

Таким образом, когда кто-то из компаньонов начинал подниматься по лестнице и игрок начинал разговор, то NPC не останавливался. После окончания разговора компаньон оказывался в открытом космосе и начинал падение в сторону корабля, разбиваясь насмерть. 

Данный баг был исправлен в патче 1.2, вышедшем на этой неделе. 

Больше статей на Shazoo
Тэги: