Как мы тестировали Zombotron

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

Уже больше месяца игра находится в стадии активного тестирования — это когда каждая новая сборка игры, которая попадает в Steam, проходится тестами от и до и по результатам такого забега в баг-трекере отмечаются исправленные ошибки и добавляются новые.

В одной из последних сборок я наконец-то исправил совершенно все баги из баг-трекера и с мыслями: «Интересно, а найдут ли еще что-нибудь в следующий раз!?» — сосредоточился на полировке игры. В это время, продюсер игры решив, что мы уже на финишной прямой, отправил игру на проверку в Steam, чтобы проверили наличие вредоносного ПО, технические особенности и вообще соответствие заявленному, и если все хорошо, то магазин разблокирует нам кнопку, позволяющую выпустить игру.

Через пару дней ожидания Steam прислал отказ, пояснив, что на странице с игрой у нас все оформлено так, как будто продукт является финальным, но по факту проверяющие обнаружили в игре отладочные инструменты, читы и некоторые другие вещи, которые тестеры используют для фиксации ошибок и подготовке баг-репортов для меня.

Продюсер сказал, что это было ожидаемо и нам следует выпустить финальную сборку без отладочных инструментов в ветку с игрой «Default» на Steam (эта ветка доступна по умолчанию всем пользователям купившим игру), а для тестирования сделать закрытую ветку, куда заливать девелоперскую версию игры с включенными отладочными инструментами. Так мы и сделали, на следующий день я подготовил две версии игры, а по факту шесть билдов под все платформы и красиво все разложил по нужным хранилищам. Игра ушла в новую итерацию тестирования, а я довольный собой пошел отдыхать.

На следующий день, с утра по раньше, сладко потягивая горячий кофе я бухнулся за компьютер и обнаружил, что Slack ломится от сообщений в чате тестировщиков. Тут, стоит отметить, что тестеры обычно кидают баги прямо в Slack пока они еще «теплые», чтобы я ничего не упустил, а потом уже добавляют их в баг-трекер. И в пустом баг-трекере (не считая ошибок которые должны были пройти проверку), я обнаруживаю почти 20 новых критических и не очень ошибок! Блин, что пошло не так, откуда столько проблем, что же я СЛОМАЛ!?

Свежие баги носили примерно следующий характер:

  • Оружие не наносит урон разрушаемым объектам, но разрушаемые объекты по прежнему можно уничтожить в рукопашную.
  • Сундук не выбросил содержимое.
  • Вещи, лежащие на полу, невозможно подобрать.

Дальше еще смешнее:

  • При открытии инвентаря игра не ставится на паузу.

Далее, побегав с открытом инвентарем тестер обнаруживает, что те вещи, которые все еще собираются героем — не отображаются в инвентаре пока его не закроешь и не откроешь вновь, и тут же добавляет новый баг:

  • Если подбирать вещи с открытым инвентарем, то инвентарь не обновляется.

(facepalm) Ну, конечно! Ведь ты не должен бегать с открытым инвентарем и собирать вещи — это не нормальное поведение игры. Но тестер входит в раш и пытается перейти на другой уровень с открытым инвентарем, после чего возникает еще несколько «артефактов», которые спровоцировал открытый инвентарь, который не может быть открыт во время перехода на другой уровень, потому что игра ставится на паузу, когда инвентарь открывается… А-а-а-а!

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

Ковыряясь в чате, читая описания, просматривая скриншоты и видео, подтверждающие наличие свежих ошибок, я замечаю, что тестеры проверяли финальный билд, в котором нет отладочных инструментов! Вот Йёжики!

Чуть позже выясняется, что тестерам просто забыли сообщить о том, что нужно переключиться с дефолтной ветки с игрой в Steam на закрытую девелоперскую ветку, и они взяли в работу условно финальный билд, где отладочные инструменты отсутствуют согласно рекомендациям Steam. А это значит, если что-то пошло не так, то игра об этом никак не сообщит тестеру, проглотит критическую ошибку, но при этом сама начнет разрушаться, как карточный домик, создавая никак не связанные друг с другом артефакты и ошибки.

То есть, это все равно что взять автомобиль, сесть за руль и начать его тестирование на трассе. Если в какой-то момент у него отвалится колесо и водитель не заметит этого (что и произошло с игрой — фатальный баг), то далее все будет происходить уже не так: авто потеряет управление, потеряет скорость, двигатель будет иметь повышенную нагрузку, перегреваться, шуметь, некоторые системы перестанут работать (откажет ABS, ESP и т.п.), даже горизонт в зеркалах будет завален!

Вот и в моем случае получилось так, что в баг-трекер попали те ошибки, которые стали следствием «отвалившегося колеса», но что именно стало первопричиной — это так и осталось загадкой.

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

В общем, сейчас баг-трекер опять пуст, не считая тех записей что ждут проверки и в Steam мы уже получили одобрение и доступ к заветной кнопки «Выпустить!», дело осталось за малым — дождаться даты релиза. И релиз уже случится совсем-совсем скоро!


Индикаторы: Разработка, Zombotron3
Постоянная ссылка