Лестница в небеса — в буквальном смысле
13 декабря The Outer Worlds получила патч 1.2, в котором исправили один из самых раздражающих багов. Многие геймеры жаловались, что они не могли выполнить квест компаньонов по той причине, что они считались мертвыми. И то, что они свободно бродили по кораблю и разговаривали с героем, игру никак не волновало.
Оказалось, что этому багу несколько месяцев и он появился еще до релиза игры. Почему авторы его не исправили? Потому что не могли найти. Разработчик The Outer Worlds написал целое письмо в Твиттере, в котором признался, что ошибка «игра думает, что компаньоны мертвы» стала самым затратным по времени и ресурсом багом в его карьере.
«Суть бага в том, что для некоторых игроков квест компаньона отображался в игре как проваленный. В качестве причины указывалось, что компаньон мертв. И это несмотря на то, что он был очень даже живой и невредимый. Это озадачило нас еще потому, что кроме как в режиме сложности СуперНова компаньоны умереть никак не могли. Этот баг возникал один или два раза до того, как игра вышла, но воспроизвести его мы никак не могли, несмотря на все наши усилия»
Разработчик перечислил различные идеи, которые предлагала команда в качестве причины возникновения бага. Подозревали, что в коде была какая-то строчка, которая случайным образом активировалась и делал компаньона как бы мертвым. Может быть игра думала, что компаньон умирал, когда в бою его здоровье доходило до нуля. В общем, идей было много, но ни одна из них не была правильной.
В результате авторам помог случай. Один из игроков написал обзор на The Outer Worlds, в котором рассказал о багах, что ему удалось поймать во время игры. Одним из них оказался подъем персонажа по невидимой лестницы. Разработчик понял, что за это можно зацепиться.
«Благодаря этому комментарию я раскрутил весь клубок. Со стороны разработчиков система, которая отвечает за взаимодействие с окружающими предметами, называется фурнитура. Иногда это задействована реальная мебель, например, персонаж садится на стул. Но чаще всего это обобщенное понятие, включающее в себя как использование терминала, так и подъем по стене. Где-то в глубине этого монструозного кода системы фурнитуры закралась строчка, которая отключала для 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