Тестирование в Инди-Играх
Если ты начинающий инди-разработчик, или хочешь узнать о тестировании игр, то эта статья тебе понравится!
Привет, дружище!
Не так давно, я поймал себя на мысли, что тематика тестирования игр, в т.ч. и инди-игр практически нигде не затрагивается. А ведь это очень важный аспект разработки любого проекта, даже самого простого. Что же, присаживайся поудобнее, сейчас мы с тобой немного поговорим о теории тестирования, и о ее применении в инди-проекте, чтобы твои крутые игры были еще круче!
Для удобства, статья будет разделена на несколько частей. Сегодня мы посмотрим, кто такие тестироващики игр, и какие ошибки им предстоит искать. Поехали!
Существует популярный миф, что тестировщиками являются школьники, целыми днями играющие в различные игры. Это не так. Найти хорошего тестера довольно таки сложно, ведь этот человек должен не только уметь играть в игры, но и иметь хотя бы минимальный технический бэкграунд. Иначе большинство скрытых "Багов" так и останутся не пойманными.
Если у тебя нет ни игрового опыта, ни бэкграунда, не переживай! Просто скачай какую-нибудь игрульку на телефон и читай статью дальше!
Фантастические Баги и где они обитают
Сейчас мы рассмотрим популярные ошибки, которые встречаются при разработке игр, а также ареал их обитания. В общем то, на что стоит смотреть в первую очередь.
Ошибки пользовательского интерфейса. Где их можно встретить, понятно из названия, вот примеры характерные особенности:
* Имеются кнопки или игровые элементы (постройки, ресурсы, валюта), которые выполняют не те функции, которые от них требуются или же вообще не выполняют никаких функций (пустышки);
* Имеются кнопки или игровые элементы, которых вообще не должно быть;
* Синтаксические ошибки (Не все это любят, но писать нужно правильно);
* Плохое расположение кнопок, диалоговых окон, информационных панелей (К примеру, когда работаешь с Unity и накосячил с иерархией объектов в Канвосе);
* Пропущенные команды. Игрок должен иметь возможность отменить действие или вернуться к предыдущему (К примеру отменить выбор здания для постройки);
* Низкая производительность. Интерфейс и картинки долго прогружаются. (Конечно, можно обвинить во всем железо игрока, но сперва нужно проверить код и по возможности его оптимизировать).
Обработка ошибок. Как бы странно это не звучало, но при обработке ошибок, т.е. выводе о них информации или выводе предупреждающего сообщения, тоже бывают ошибки. Вот примеры:
* Ввод неверных данных (стандартная защита от дурака, которая должна выводить сообщение игроку, если тот, к примеру, пытается записать новый логин недопустимыми символами);
* Ввод невозможных значений (к примеру, когда при регистрации, игрок пытается ввести несуществующую дату рождения - 32 декабря)
* Приобретение внутриигровых предметов без выполнения требуемых условий (например игрок хочет купить крутой скин за 1000 алмазов, а у него в наличии их всего 100).
Ошибки, связанные с обработкой граничных условий. Граничные условия имеются там, где можно задать условие "больше или меньше", "раньше или позже", "короче или длиннее". И именного на границах этих диапазонов обитают "Баги". Как их проверить:
* Ввод логина длинной 51 символ, при допустимом количестве - 50 (в идеале, ничего не произойдет, а не в идеале, будет переполнение памяти, и возникновение новых "багов" в абсолютно разных местах);
* Откат способности происходит на 10 секунде. Что будет если активировать способность на 9, 10 и 11 секунде?
* 2D враг может двигаться по Y в диапозоне от -2 до 2, по X от -4 до 4. Что произойдет, если врага поместить в координату (Y:-2, X:-4) или за допустимый диапозон?
Уловили логику? Едем дальше!
Ошибки вычислений. Эти ошибки возникают там, где происходят расчеты, а именно - атака, лечение, таймеры / секундомеры, использование ресурсов:
* Выполнение умножения вместо деления;
* Неверные округления (например, когда при создании таймера использована неправильная формула округления);
* Возникновение отрицательных значений (например при получении урона, количество ОЖ получается отрицательным).
Ошибка управления потоком. Во сути это нарушение очередности выполнения функций.
* К примеру, главный герой получил урон и скопытился, а затем враг проиграл анимацию удара;
* Отображение изменений внутриигровой валюты при повторном заходе в игру или в меню магазина (частый баг, но не критичный. На Unity случается, когда забываешь воткнуть в функцию Update отображение валюты);
* Зависание игры, бесконечное получение или нанесение урона (случается, когда забываешь поставить условия выхода в бесконечных циклах. Например - получение урона при входе в огонь);
* Условия проверок пересекаются и противоречат друг другу.
Перегрузки. Название говорит само за себя:
* Перегрузка игровых серверов;
* Переполнение памяти (Явный признак - потеря выполненных действий);
Начальное и последующее состояние. Очень противные "Баги". За частую, они случаются только один раз, при запуске игры, и при последующих запусках выскакивать не будет. Особенность этой ошибки в том, что ее сложно воспроизвести, для этого требуется либо переустановка, либо регистрация нового пользователя. Таким страдают RTS и различные фермы. Вот пример "Бага", обнаруженного на одной из ферм:
* При активации нового производственного здания, появляется окно с обучением, после чего можно продолжать игру. Но если просто закрыть обучение не проходя его, и активировать это здание у друга, то получаешь ERROR'ом в лицо.
Ошибки тестирования. Не только разработка допускает ошибки, но и тестировщик. За частую, ошибки тестера указывают на несовершенство пользовательского интерфейса, но есть и такие, которые возникают из-за неверных тестовых данных.
А вот как их избежать, я расскажу в следующей статье. Которая будет посвящена тестовым артефактам и тест-дизайну!


Лига Разработчиков Видеоигр
10.2K постов23.4K подписчика
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"