Достаточно часто у игроков возникает резонный вопрос к разработчикам: откуда вообще берутся баги, если существуют ПТС, отделы QA и прочие инструменты, направленные на "отлов" ошибок.
Чем сложнее система, тем больше шансов на появление ошибок, особенно, когда в систему превносятся изменения, считают разработчики. На примере онлайн шутера Warface они рассказали о том, как появляются баги и что лучше всего подходит для их отлова.
Почему баги вообще существуют?
Все, кто знаком с кодированием понимает простую связь: чем сложнее система, тем больше шансов на появление ошибок, особенно, когда в систему привносятся изменения. Аналогичную связь можно увидеть и в игре: Warface в течение нескольких лет превратилась в супер-сложную систему, в которой каждый компонент тесно связан с остальными. Получается, что даже небольшие изменения могут привести к неисправности в других системах или областях. Баги неизбежны в любой игре, поиск и исправление - это основная часть работы разработки игр. Пока игра существует и развивается, баги будут появляться вновь и вновь.
Что влияет на скорость устранения багов?
Первый и основной фактор – это насколько критична существующая ошибка. Все баги и ошибки можно разделить на три основные категории: критические - это те, которые влияют на основные игровые процессы и не дают возможность попросту играть; серьезные ошибки – те, которые влияют на большинство игроков, но не затрагивают основные игровые процессы; и ошибки с низким приоритетом, те, которые едва ли влияют на игровой процесс.
Например, ошибка, которая не позволяет починить оружие будет критической: такое игровое обновление определенно не установят на главный сервер. А даже если ошибку не выявят на этапе тестирования, ее оперативно исправят раньше других.
Серьезные или общие ошибки - это такой тип ошибок, который возникает у 1 из 20 игроков. Они не влияют на большинство игроков и не приводят к более серьезным проблемам. Исправление подобных ошибок заложено в месячный план. В эту категорию входит множество багов и ошибок, которые сложно починить, поскольку часто они привязаны к конкретным областям в игре. Порой требуется несколько последовательных фиксов для решения проблемы, и все это может занять несколько месяцев.
Баги с низким приоритетом, как правило, связаны с плохой анимацией, что не влияет на игровые процессы. Это специфические текстуры и визуальные баги. Словом, это все, что связано с косметическими и эстетическими вопросами и никоим образом не влияет на ядро игры и основные игровые функции. Такого рода ошибки возникают часто, и поскольку их проще и быстрее чинить, они появляются в каждом багфиксе.
Если QA тестировщики не могут воспроизвести проблему, то процесс становится немного сложнее, поскольку нам нужно будет собирать информацию от игроков. Обычных описаний «я не наношу урон», «я телепортировался», «я не могу присоединиться к матчу» недостаточно для разработчиков, здесь требуется конкретная техническая информация: видео, скриншоты и логи игрового клиента. Все это требует тщательного изучения, именно поэтому такого рода репорты очень важны. Как только удалось определить источник проблемы, мы начинаем ее исправлять. Этот процесс может занять некоторое время, поскольку разработчик сталкивается с несколькими проблемами сразу, и каждый баг или проблема может влиять на несколько областей сразу.
Как так получается, что баги с ПТС все же переходят на основной сервер?
ПТС – это последний этап перед релизом игрового обновления. На этом этапе очень важно найти критические ошибки (если такие вообще есть), которые не были выявлены в ходе внутреннего тестирования. Каждый ПТС работает по строгому графику, и каждое промедление ведет к отсрочке других обновлений. Чем дольше игровое обновление остается на ПТС, тем меньше возможность того, что обновление выйдет в установленное время.
Если ошибка не критическая и не влияет на большинство игроков, обновлению дают зеленый свет, и каждый новый баг фиксируется в последующих обновлениях. Хотя тут все еще есть исключения: некоторые проблемы могут быть менее вредоносными, но более неприятными или даже раздражающими. Если есть способы это исправить, то, скорее всего, такую проблему исправят до выхода обновления.
Почему некоторые ошибки и вовсе не возникают на ПТС?
Это достаточно сложный вопрос и одного ответа тут не может быть. Прежде всего, ПТС во многом отличается от других способов, простейший из которых - рабочая нагрузка сервера, которая становится причиной множества проблем в игре. Во-вторых, если ошибка непостоянная, то это означает, что она вызвана особыми условиями, которых нет у большинства игроков. Часто сложно найти то, что возникает в редких случаях на ПТС. В-третьих, баг может появляться в игровых режимах, которыми игроки не часто пользуются. Лучший пример – это изменения в оружии. Обновление обычно содержит 2 новых вида оружия, в то время как остальные пушки получают различные изменения в характеристиках. Очевидно, что большинство игроков рванет тестировать новое оружие, в то время как старое останется без внимания. Это один из возможных способов упустить ошибку.
Все это ведет к простейшему выводу: если вы направились на ПТС, пожалуйста, помните, что значит «Публичный Тестовый Сервер». Ваша цель не только получить удовольствие от игры, но и проверить различные функции, отмеченные в логах и чтобы найти баги. Пожалуйста, сообщайте нам, если находите ошибки в игре, мы очень тщательно проверяем все репорты пользователей на ПТС.
У вас есть тестировщики? Почему постоянные игроки должны прилагать усилия для поиска ошибок?
Да, у нас есть два QA департамента, один относится к разработке, другой работает непосредственно с отделом локализации. Все новые игровые версии, выпущенные отделом разработки, проходят тестирование. Тем не менее, важно отметить, что массовое тестирование и внутреннее тестирование – это два совершенно разных процесса. Некоторые ошибки сложно воспроизвести, поэтому не стоит исключать возможности того, что их не обнаружат при тестировании. Другие сложности могут возникнуть только при выкатывании новой версии «на лайф», поскольку многие баги невозможно воссоздать без «реальных» действий в «реальной» среде – на игровом сервере.
Вне зависимости от того, насколько тщательно все было проверено, невозможно избавиться от всех багов, поскольку нам дано бесконечное число потенциальных комбинаций, и проверка их может занять не только недели, но и целые месяцы, мощные технические ресурсы и целый QA отдел. Чтобы устранить максимальное количество багов перед релизом, мы создали ПТС серверы.
Как обрабатываются сообщения об ошибках?
Безусловно, все запросы обрабатываются и передаются в отделы разработки и QA. Все запросы подобного характера обрабатываются специалистами команды поддержки. Начиная с этого момента, специалисты службы поддержки проверяют текущую базу данных известных багов, и если подобная проблема до этого встречалась и новой информации не получено, то репорт закрывают соответствующим ответом. Если же баг новый, и получена дополнительная информация, ее потом запрашивают у игрока. После этого собранные репорты добавляют в общую базу, с которой и работают QA и разработчики.
Как вы можете заметить, все баг репорты обрабатываются командой поддержки пользователей и достигают команды разработки.
К сожалению, такие очевидные истины понятны не всем.
Доктор Кинг Шульц +
Потому что программисты криворукие дауны. Кармак свой Дум 3 откопмилировал так, что не было ни одного! варнинга при компиляции, код дума 3 безупречен. И как следствие в игре баги возникают только с НПЦ, и то наверное из-за кривого маппинга и триггеров.
Ruv1k От многих факторов зависит, на примере одной игры осуждать другие трудновато. А вообще смотрю ребята нормально так объяснили что к чему, даже для тех кто не в теме.
Ruv1k
Сказал человек, который "ни бум-бум" в программировании. Успешная компиляция вообще никак и никогда не является показателем стабильности кода. Успешная компиляция гарантирует только успешный запуск программы. Все. Больше компиляция ничего не гарантирует. Ну и "откомпилировал так, что ни одной ошибки"... Ох... Знал бы ты, как это глупо звучит.)))
Ermiq
Успешный запуск и некорректную работу, мамкин программер. Ты вот иди там кучку скриптов, шейдеров и ИИ напиши чтоб все это в одной системе работало, а потом кукарекай про успешность.
Ruv1k
??? Как успешная компиляция может гарантировать некорректную работу?
У тебя что-то со способностью связно мыслить и мысли свои излагать. Ее нет. Напомню, о чем я сказал. "Кармак откомпилировал свой код так, что не было ни одного предупреждения об ошибках" - в этой фразе нет никакого смысла. Компиляция ничего не делает с ошибками, ты хоть 100 раз закомпилируй код, но если ошибки были, они никуда не денутся. Ошибки исправляются при отладке, дебаггинге, тестировании кода и внесении исправлений, вручную, программистом. Потом этот код компилируется и, если компилятор не ругается, значит, код в принципе рабочий, и компилятор выдает запускаемый файл на выходе. Но это все еще не дает никакой гарантии стабильности работы, потому что компилятор проверяет только синтаксис. Работа всей логики и прочего функционала целиком зависит от программиста, а не от компилятора.
Ermiq
Значит ты мало кодил, лол. Ты не слышал историю как у Тойоты присходил баг от определенной череды последовательностей из-за которого акселератор срабатывал на максимум и машина просто ехала вперед без остановки? Ну так вот это потому что их код говна кусок в кучей тысяч переходов. Все остальное не читал. Зря такую стену текста высрал.
Спросите еще, почему у лекарств есть побочные эффекты... Они были есть и будут всегда
Интересненько написано. Они на самом деле это имели ввиду? Ведь правда, обычно каждый баг-фикс вместе с исправлением старых ошибок приносит и новые ошибки.
Вспоминаю недавний фэйл в Elder Scrolls Online. В игру добавили сундуки для хранения вещей в доме игрока. И если зайти одним из персонажей в дом, а потом его (персонажа) удалить, то из сундуков исчезнут вещи. Баг репортили на ПТС, но разрабы выпустили это на лайв-сервера и ни слова ни полслова не сказали, что такая проблема есть. Освещением этой проблемы пришлось заняться мне, создал тему-предупреждение на форуме, но не очень помогло, многие отписывались там уже после того, как потеряли свои вещи. Забавно, что в этом же обновлении ввели награды за прокачку персонажа с нуля, и многие игроки как раз складывали вещи в сундук, удаляли перса, чтобы освободить слот персонажа и начать качать нового, и потом "с радостью" обнаруживали, что их золотые посохи, донатные плюшки и прочее просто исчезло.
Они об этом и говорят. Тут уже большая система создана и ошибки попросту неизбежны.
Всем бы играм таких пользователей. Но хорошо, если и сами разрабы делают хоть какие-то выводы, что-то в свитках сглупили с такой обновой.
Сложность в том, что нужно быть очень внимательным и терпеливым. Не просто проходить одни и те же карты, не просто играть, а именно тестировать. Это не по фану гонять с друзьями, что не так уж сложно. Это работа, за которую отчитываешься.
Игра по фану - это не обязательно игра на результат. Это игра чисто для приятного времяпровождения. Если слишком фиксироваться на результате, фан можно и потерять (зато в киберспорт податься вполне реально).
Да все индивидуально. Даже если человеку очень нравится его работа, его может периодически что-то не устраивать, он может уставать от монотонности, от сложности задач. Также и тут. Совсем простой работой тестирование не назвать.
Ирония в том, что подгоняют-то сами игроки. Их позиция ясна: им нужен результат и желательно прямо сейчас. Но, к сожалению, тут вступает классический парадокс быстро/качественно.
Сам раньше хотел стать тестировщиком! Но что-то не срослось) Тестирую тестовые версии лишь как игрок. И не ною, а шлю репорты, если встречаю баги. Этим мы же помогаем сделать игру лучше.
Чем больше игра, тем больше вероятность получить баги.
Baphomеt Я обычно репорты кидаю если вижу что то такое. Сложная работа у этих тестировщиков.
Viridium - конечно, сложная, ведь приходится одно и тоже раз за разом переигрывать.
Если по фану играть бои с другими людьми, но кто то из друзей - "лоханется", это уже будет НЕ фан. Так вот чтоб играть по фану, нужно чтоб каждый участник понимал локацию и знал что от него требуется, для достижения хорошего результата. А для этого нужно внимательность, терпение и еще много каких качеств. Дак вот, люди играют(причем долго!) с подобными правилами и условиями, потому что для них это не сложно. Так же и с тестерами: они могут сидеть и 30ч. перед монитором, даже если их никто не заставляет. Они знают почему для них это важно. И им это не сложно. В противном те кто не справляются ,там не задерживаются.
Большинство режимов прекочевывают из одной игры в другую. Уже никто ничего нового не делают, одно заимствование да копирование. Например Battle Royale:
До боли избитый "захват чего либо", играет человек в танчики, на другой день врубает шутер и там начинает раздавать люлей, виртуальным оппонентам(как и в танчиках), Но только в приоритете там флаг, а не защита базы. Один и тот же уровень, только другие декорации и аватары, вновь и вновь люди играют в таких условиях. Разработчики прекрасно знают что геймер не играет только в одну их игру, и этим они пользуются в процессе разработке!
Эм, играть годами на одних и тех же карт - сложно?
WanRoi - иногда даже впадло перепроходить одни и те же уровни в полноценных играх, а тут тебе дают один уровень и ты его затираешь до дыр. А потом тебе выдают новую версию и ты делаешь всё по новой.
Надо тестить игры лучше. Надо давать достаточно времени на тест. Не надо подгонять тестеров. Не надо релизить игру до отлова всех багов. Но сейчас зачастую делают всё наоборот.
Олег Дудин Ты хоть раз читал как проходят такие тестирования? Столько раз уже многие компании писали что тестовый сервер и общий разные. Иногда не видно багов на тестовом, хоть ты год сиди. На словах то все легко, вот только почему то пишут об этом обычные пацаны с района.
Quesha Доктор Кинг Шульц Подгоняют как раз обычно издатели. Игроки-то, наученные провальными забагованными релизами, готовы подождать. Да, небольшой процент багов можно на тесте и не выловить, но достаточное время для тестирования хотя бы сведёт процент к минимуму. А сейчас у нас как? Я нашёл баг! А, пофиг, уже не успеваем поправить, так сойдёт!