Gamedev Степан Дубовой
3 294

Не фича, а баг: тестировщик о классификации игровых глюков

В закладки
Аудио

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

Игровая механика представляет собой набор правил, по которым работает игра, и математическую модель, которая стоит за этими правилами. Вместе с дизайном уровней и системой обратной связи с игроком эти три столпа составляют тот самый геймплей. Вот по нему и оценивают геймеры свои впечатления об игре.

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

Сегодня мы затронем тему не только локализационного, но и функционального тестирования. А помогать нам будет наш эксперт и руководитель отдела тестирования, Андрей Васильев.

Чтобы успешно заводить баги, нужно их систематизировать. Разделить и властвовать.

Итак, баги в играх можно условно классифицировать по следующим категориям.

Баги, связанные с самой игрой

  • Баги функциональности. Не работают или неправильно работают какие-то функции в игре. Например, при переходе в настройки приложения происходит аварийное завершение работы.
  • Баги интерфейса. Искажается графика, элементы не находятся на своих местах, текст не вписывается в отведенные ему рамки.
  • Баги локализации. Ошибки в текстах, присутствие непереведённых строк. Скажем, вместо перевода выводятся заглушки, вроде «russian_text_001».
  • Баги производительности. Приложение на устройстве работает медленно. Например, во время анимации атаки персонажа FPS заметно «проседает» на устройствах high-end сегмента.
  • Баги логики и баланса. Выставленные настройки баланса и игровой логики не позволяют пройти игру или достигнуть нужных целей. К примеру, персонаж наносит урон в 100 единиц, вместо 150 обещанных в игре.
  • Технические баги. Игра неправильно работает в условиях нестабильного интернет-соединения, как вариант, приложение не может подключиться к серверу в 3G сетях.
  • Баги совместимости. Игра попросту не работает на совместимом устройстве или запускается с критическими ошибками.
Потренируемся: какой это баг по классификациям? Если вы ответили «Функциональный, низкоприоритетный, графический, затрагивающий команду разработки», то ура — вы тестировщик (нет)

Багам присваивается степень критичности: какие-то устраняются в первую очередь, а какие-то можно даже оставить в финальном релизе:

  • максимальный приоритет — баги явно не дают игроку пройти дальше, влияют на способность приложения приносить деньги;
  • средний приоритет — баги заметны пользователям, но не влияют на прогресс игрока или на заработок приложения;
  • низкий приоритет — баги практически незаметны игрокам, очень редко воспроизводятся или только в очень ограниченных условиях, не мешают прогрессу и заработку.
Иногда разработчики специально оставляют низкоприоритетные баги в игре — для вирусного эффекта. В конце концов, это ведь уморительно, а игры должны развлекать, так почему бы и да?

Баги различают по затрагиваемой стороне. То есть кому они будут больше всего мешать использовать продукт:

  • баги, затрагивающие пользователей. Влияют на популярность приложения, средний рейтинг в магазинах приложений;
  • баги, затрагивающие бизнес. При этом могут не мешать пользователям. Например, игра слишком простая: это радует игроков, но не побуждает их вкладывать деньги;
  • баги, затрагивающие команду разработки. Если функционал реализован не так, как задумывала команда, что не замечают пользователи (они не знают, как задумывалось) и не мешает приложению зарабатывать деньги.

От чего зависит число багов в игре

Действительно, от чего? Почему в одних играх их просто огромное количество на альфа-тестах (привет, No Man’s Sky), а в других — практически нет? Всё довольно очевидно.

  1. В первую очередь это зависит от опытности команды разработки.
  2. На втором месте стоит техническая сложность проекта. Шансы появления багов прямо пропорциональны количеству кода и числу используемых библиотек.
  3. На третьем месте — количество возможностей в игре и разнообразие игрового процесса в целом.
  4. Серьёзная статья — это сетевой режим и пути взаимодействия игроков друг с другом. Для сетевого режима разработчики зачастую даже в играх, уже прошедших тестирование на этапе производства, запускают закрытые тестирования для настройки баланса и поиска неочевидных багов.
  5. Ну и конечно, прямая зависимость от эффективности тестирования именно на раннем этапе разработки. Дело в том, что чем больше багов будет найдено как можно раньше, тем меньше шансов, что эти баги позже приведут к появлению новых.
Двери не нужны

Привязка выявляемого количества багов к жанрам

В группе риска:

  • RPG с сетевым режимом. Большой мир, масса сценариев взаимодействия игроков друг с другом;
  • Игры с открытым миром. Очень много возможностей поведения игрока, которые надо тщательно тестировать;
  • Любые игры с мощной графической составляющей. Практически невозможно одинаково оптимизировать игру под все устройства, если речь не о консольных тайтлах.
Хороший пример того, как игроки испытывают игру на прочность. Skyrim в этом смысле рекордсмен

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

  • игры в жанре match-3. Здесь игрок ограничен только игровым полем и комбинациями фишек, бонусов и количеством игровых механик;
  • игры в жанре hidden objects (поиск предметов), в которых, как правило, свобода игрока ограничена;
  • файтинги;
  • казуальные игры, действие которых происходит на одном экране — тайм-менеджеры, кликеры, shoot’em up и т.д.
COD WWII за принципиально новый эко-транспорт

Такова классификация багов с нашей точки зрения. В ходе написания материала мы нашли интересное видео с выступлением Дмитрия Химиона про «Тестирование игровой механики в компьютерных играх». Он утверждает, что есть ещё одна классификация ошибок в игре.

Ошибки дизайна уровней

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

Ошибки обратной связи

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

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

Ошибки игрового баланса

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

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

Знаменитая BFG 9000, несмотря на безумную мощь, является сбалансированным оружием — боеприпас на неё найти непросто

А с какими багами сталкивались вы? Присылайте нам в комментарии — похохочем, что ли.

Если вдруг вы разработчик и хотите, чтобы подобных ошибок в вашем проекте было поменьше, пишите нам на order@inlingogames.com — мы придумаем что-нибудь вместе.

И вообще, доверяйте свои игры профессиональным тестировщикам, да поменьше багов вам в готовых продуктах: далеко не все из них станут легендарными, вроде знаменитого «geddan».

#опыт

Материал дополнен редакцией

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Степан Дубовой", "author_type": "self", "tags": ["\u043e\u043f\u044b\u0442"], "comments": 35, "likes": 68, "favorites": 104, "is_advertisement": false, "subsite_label": "gamedev", "id": 30926, "is_wide": false, "is_ugc": true, "date": "Wed, 07 Nov 2018 16:52:51 +0300" }
{ "id": 30926, "author_id": 47154, "diff_limit": 1000, "urls": {"diff":"\/comments\/30926\/get","add":"\/comments\/30926\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/30926"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954 }

35 комментариев 35 комм.

Популярные

По порядку

Написать комментарий...
38

На работе пишу про баги, на ДТФ читаю про баги.

Ответить
8

Если исключить из статьи всё от методологии тестирования "обычного" софта, то остальное в статье выглядит немного очевидным. Только часть про "влияют на способность приложения приносить деньги" в высоком приоритете показалась занимательной.

И почему-то файтинги записаны в "казуальные игрушки".

Ответить
0

Наверное большинство играет в них казуально в компании, иногда под пивко

Ответить
1

У меня почему-то сходу ассоциации с выдрачиванием таймингов и комбо, хех.

Ответить
0

Наверное имеются в виду какие-нибудь мобильные файтинги, где надо пошагово выбирать один из трёх ударов и посмотреть что получилось. Как камень ножницы.
Браузерки такого рода были одно время популярны.

Ответить
0

выглядит немного очевидным

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

Ответить
0

Смотрите, тут вопрос и правда интересный. Потому что казуальные и хардкорные игрушки могут быть любыми по сути — сегодняшние игры имеют несколько слоёв и уровней сложности: их можно проходить ради сюжета, pressing X to win, или же мучить каждый тайтл на платину. То же касается и файтингов. Аркадная жанровая принадлежность мало о чём говорит. Наверное, и правда не стоило относить к казуальным играм файтинг, потому что такое разделение весьма субъективно.

Ответить
4

А тиммейты-дауны считаются за игровой баг высокого приоритета? Просто, судя по описанию - да..

Ответить
2

Тиммейты-дауны это баг матчмейкинга. Либо развития...

Ответить
4

Пост рекламный, но интересный, даже рука не поднимается минус ставить.

Ответить
0

Статья, конечно, не исчерпывающая, но будет полезна для обычного игрока, который в основном считает, что тестирование это альфа и бета, а второе проводится только в рекламных целях. Неплохо было бы еще и про требования расписать, какие бывают и откуда берутся.

Ответить
11

Требования - это старый миф. Наиболее олдовые айтишники на древних форумах пишут, что существуют такие мифические существа как аналитики. По легенде, они подпускают к себе только девственниц и ПМов. Говорят, что когда Луна находится в нужной фазе, а звезды сходятся под верным углом, аналитик может окуклиться у себя на рабочем месте. Если правильно ухаживать за этой куколкой, то спустя 3-5 рабочих дней погружения в астрал и взаимодействия с эфиром, куколка аналитика раскрывается и тогда у проекта появляются записанные на священных скрижалях заветы - требования.
К сожалению, из-за вырубки лесов и вмешательства человека в экологию, сейчас этих дивных существ почти не встретишь, а потому труд обычного тестировщика тяжел и неблагодарен, поскольку приходится работать без требований.

Ответить
0

Наверное я не обычный игрок, но я так не считаю...

Ответить
1

А как же баги, которые стали фичами (как возможный этап их "развития")?
Можно вспомнить хотя бы L4D+L4D2, где многие баги так удачно появились, что в какой-то мере влились в механику?
Или, например, Warhammer: End Times - Vermintide, когда разработчики, основываясь на мнении комьюнити оставляли баги функционала.
Вообще наверное потянет на отдельную статью рассказ про такие баги.

Ответить
0

Да, вы правы, тут, скорее, тема для дальнейших изысканий в более узком русле, благо таких багов масса. Единственное, что про подобные вещи уже на ютубе снята масса сюжетов. Но если требуете хлеба и зрелищ на DTF, то почему бы и да?

Ответить
0

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

Ответить
0

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

Ответить
4

"Да ты достал одним ударом бить!"

Ответить
1

Скажи это марвел и капком...

Ответить
0

Так можно сказать про любую игру с нормальным управлением - TES, GTA, X-COM, NFS, FIFA, CoD, шахматы, Starcraft.

Авиасимуляторы и подобное, конечно, исключения

Ответить
0

Страурафт явно не для новичков. Извини. Но я видел как многие люди месяцами не могут выполнить простейший порядок команд за минимум времени

Ответить
0

Чтобы играть в SC, совсем не надо выполнять простейший порядок команд за минимальное время

Ответить
0

Видел людей для которых безостановочный заказ рабочих - уже проблемма. Они просто не понимают логику : рабочий ->больше ресурсов.
Больше речурсов-> больше войск.

Ответить
0

В комментарии было о низком пороге входа для того, чтобы ИГРАТЬ, а не ВЫИГРЫВАТЬ.
Т.е для того, чтобы провести бой нужно потратить пару минут и понять основную механику. Все остальное - опыт и скилл.

Ответить
0

Ничего нового для себя как для тестировщика не узнал, но было интересно.
Спасибо!

Ответить
2

:D смешанные чувства) Спасибо, буду уходить в детали в следующих публикациях.

Ответить
0

Отлично, буду ждать!)

Ответить
0

В Doom BFG довольно баганутая .(BFG+замедло)
На ней основываться спидраны.

Ответить
0

А у вас в написании текст стринг поехал (:

Ответить
1

Это не поехал, это я рукожоп_

Ответить
0

Добрый день. На сайте среди услуг нашел только тестирование локализации. Это идет несколько вразрез с тем, что вы написали тут. Вы занимаетесь другими видами тестирования?

Ответить
0

Добрый день!
Да, занимаемся, на сайте ещё не обновили инфу. Напишите на нашу почту order@inlingogames.com и мы ответим на все ваши вопросы.

Ответить
0

Спасибо, я свяжусь с вами.

Ответить
0

За сотни часов в скайриме встретил багов меньше за несколько в рдр2 :/

Ответить
0

Если пользователь не донатит на игру - то это баг? Ох лол.

"Ваша гипножаба не работает. Пользователи не кидают деньгами в монитор- исправьте!"

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Игру с лучшим стелсом никто не заметил
Подписаться на push-уведомления