Привет, Хабр! Меня зовут Александр, и я тестировщик. В тестировании я около 10 лет, последние 5 из которых работаю в геймдеве. И большую часть времени в геймдеве я работал в командах, которые запускали новые игры. За это время я поработал с разными командами и проектами, видел десятки запусков и сотни апдейтов. Сегодня хочу поделиться опытом о том, как QA может влиять на качество и успех игры, не только через поиск багов и проблем, но и через влияние на пользовательский опыт игроков, и почему это может помочь минимизировать риски.

Дисклеймер
Для того, чтобы применение следующих принципов и подходов было реализуемым, важно чтобы вся команда разработки, включая менеджмент, стейкхолдеров и самих QA, понимали, что QA — это не только поиск багов и улучшение процессов, но и валидация игрового опыта. А так же, чтобы культура в команде подразумевала возможность предлагать изменения в игру, которые при правильной подаче будут обсуждаться и приниматься. Ну и, конечно же, что на все эти проверки и раздумья вида "а удобно ли это?" у вас и у команды есть время.
Сегодня игровой QA — это не только и не столько про поиск багов и проверку игры на соответствие требованиям, а про полноценную продуктовую экспертизу, заботу о качестве опыта пользователя и команды.
Также важно понимать: успех продукта невозможен без командной работы, взаимного уважения и постоянного диалога между QA, геймдизайнерами, программистами, художниками, менеджерами и другими отделами команды.
Здесь вы найдете определение некоторых терминов, которые я буду использовать дальше
Ретеншен, он же retention, он же R1, R3, R7 и т. д. — метрика, показывающая, какой процент игроков вернулся в игру, — на следующий день, на третий день, на седьмой день и т. д.
Креатив — рекламный ролик, который мы показываем игроку, чтобы привлечь в игру.
Мислиды, он же misleading или fake ads — это реклама, которая показывает то, чего в игре нет.
Пользовательский опыт в мобильных играх и при чём здесь QA
Итак, поехали — сегодня привлечь, а тем более удержать внимание игроков на мобильном рынке довольно сложно — в сторах сотни тысяч игр на любой вкус и жанр. В такой среде одной хорошей идеи и билда без багов уже недостаточно, чтобы удержать пользователя хотя бы на первые несколько минут и мотивировать вернуться на следующий день.
Успех — это всегда результат слаженной командной работы. И часто роль QA по‑прежнему воспринимается узко или однобоко — проверить функциональность и завести баги. На самом деле, по моему опыту, хороший QA в геймдеве — это гораздо больше: это в том числе, взгляд на продукт глазами реального игрока, это про умение почувствовать, где пользователь столкнётся с фрустрацией, непонятным интерфейсом или просто неудобством, из‑за которых он закроет игру и больше в неё не вернется.
Флоу игрока: как пользователь попадает в игру и где мы его теряем
Для того, чтобы понять, где и как QA может влиять на игру и игровой опыт, я хочу показать примерное флоу того, как пользователи попадают в игру, где и по каким причинам они принимают решение закрыть игру. Собственно, очень коротко флоу выглядит так примерно так:
Вы закупили рекламный трафик в какой‑нибудь дешёвой (по стоимости закупки рекламы) стране, типа Бразилии
Игроки посмотрели рекламу
Игроки скачали вашу игру и поиграли в неё
Далее вы снимаете какие‑то метрики, например, это может быть ретеншен первого дня, ретеншен третьего дня, средний плейтайм и т. д. И исходя из этих метрик, скорее всего, будет приниматься решение о дальнейшей судьбе проекта.
А теперь давайте более детально:
Просмотр рекламы
Итак, мы закупили рекламный трафик где‑нибудь в TikTok, Youtube и прочих социальных и рекламных сетях. И здесь мы сталкиваемся с тем, что креатив должен цеплять, потому что кроме нас, ему покажут рекламу ещё десятки других компаний.
Собственно, если креатив не зацепил, то игрок к нам не пришёл. Важным моментом здесь является то, что по‑хорошему ваш ролик должен показывать настоящий геймплей. Маркетологи здесь могут со мной не согласиться, и сказать, что мислиды закупать иногда бывает дешевле и лучше и вообще — это новый (или уже старый?) тренд, но давайте честно — кто из игроков любит мислиды и какой ретеншен будет у таких игроков?
Открытие игры в сторе
Допустим, реклама понравилась игроку и он нажал на кнопку «скачать игру». Далее должен открыться стор с игрой. Здесь важно, чтобы открылся правильный стор, особенно на Android девайсах. Пару раз я попадал в ситуацию, когда при переходе по ссылке у меня открывался не Google Play, а родной стор моего китайского девайса, в котором этой игры, конечно же, не было. В случае с настоящим игроком это означает, что он просто не сможет скачать игру.
Скачивание и установка
Далее, если игрок попал на страницу игры в сторе, есть несколько возможных причин «отвала» игрока:
Скриншоты и видео в сторе не соответствуют просмотренной рекламе — это те самые мислиды, о которых я писал выше, из‑за которых игрок может не скачать игру.
Совет — делайте рекламу с честным геймплеем. Это в меньшей степени касается QA, но важно обращать на это внимание, потому что любые несоответствия (здесь в роликах/скриншотах и далее при разработке) могут быть банально из‑за плохой коммуникации или её отсутствия.Следующий момент — это локализация. Если описание игры, скриншоты игры не локализованы на родной язык пользователя, то часть потенциальных игроков тоже могут не скачать игру. Это важно учитывать так же, при выборе страны, на которую будет закупаться трафик.
Совет — локализуйте материалы или закупайте трафик в стране, где основной язык совпадает с языком в вашей игре.Третий, но не менее важный момент — это размер игры. Если вы не какая‑нибудь популярная игра типа Фортнайта, то если игрок увидит размер билда в районе гигабайта или двух, особенно, если мы вспомним, что дело происходит в Бразилии, то это снова может привести к отвалу части игроков.
Совет — уменьшайте размер скачиваемой игры. Например, подключите скачивание ресурсов уже после установки игры (об этом мы ещё поговорим).
Как мы видим, игрок ещё даже не запустил игру, а мы уже нашли как минимум 5 потенциальных точек отвала игрока.
Первый запуск
Допустим, игроку всё понравилось и он всё же скачал игру и запустил её.
Вот основные проблемы, с которыми он может встретиться при запуске игры:
Краши. Это почти стопроцентный шанс того, что игрок больше не вернется в игру.
Совет 1 — перед запуском игры проанализируйте популярность девайсов в стране закупки трафика, постарайтесь в парке своих девайсов иметь какие‑то популярные устройства и в идеале неплохо иметь в наличии разные комбинации популярных CPU/GPU. Это так же поможет отловить часть потенциальных проблем с отрисовкой графики и производительностью. Дополнительно можно использовать фермы девайсов.
Совет 2 — перед настоящей закупкой трафика проведите «техническую» закупку, здесь нам важнее просто проверить игру на краши как на старте, так и по ходу игры. Дополнительно, прикрутите какую‑нибудь клиентскую крашлитику, в которой вы будете отслеживать как краши, так и прочие ошибки, которые случаются у игроков.Если запуск игры прошел без проблем, дальше нас может ждать загрузка дополнительных файлов, которую мы прикрутили в пункте выше. Дополнительная загрузка после того, как игрок уже скачал игру — потратил и время и интернет, может так же отпугнуть и мы снова потеряем игрока.
Совет — попробуйте уложиться в какой‑то минимальный размер билда (~150MB), который позволит запустить туториал и поиграть первый час. А дополнительную загрузку включите фоном, пока игрок знакомится с игрой. Для этого полезно будет сделать первые минут 30–60 игры без требования подключения к серверу. Даже если у вас сетевой онлайн pvp шутер — сделайте первые бои локальные и с ботами. Таким образом вы решите несколько проблем — загрузите необходимые ресурсы для дальнейшей игры и игрок не столкнется с потенциальными сетевыми проблемами игры в первые же минуты.Далее — коннект к серверу, при выборе страны для покупки трафика стоит узнать — а всё ли хорошо с доступностью серверов вашей игры в этой стране. С этим также может помочь техническая закупка трафика.
И, пожалуй, последний момент в разделе запуска игры — это долгий запуск игры без каких либо индикаторов.
Совет — везде, где загрузка чего либо (открытие различных окон, загрузка матча, загрузка самой игры) может занимать больше секунды, прикручивайте индикаторы загрузки. Это покажет игроку, что что‑то происходит, что‑то загружается и игра не зависла. Такие места удобно выявлять и проверять на слабых девайсах и с плохим качеством интернета, т.к. проблемы долгой загрузки могут быть вызваны разными причинами — от медленного ответа от сервера (например, получение результатов матча или подключение к серверу) до неоптимизированного UI, который просто медленно открывается или переключается на не очень мощных девайсах.
Авторизация и разрешения
Если игра требует регистрацию, сложные пароли или просят доступ ко всему подряд — игрок уходит, не начав играть.
Туториал
Игроки не особо любят туториалы, особенно долгие и скучные. Не забывайте, что туториал, если вы его делаете — это первый игровой опыт, который получит игрок. Но, к сожалению, зачастую туториалы делаются в последнюю очередь. Поэтому будет здорово, если ваш тутор будет интересный, цепляющий, и с возможностью его пропустить. Не просто — «нажми стрелять, чтобы стрелять», а расскажите историю, которая зацепит. И здесь же очень важно проследить, чтобы игрок нигде не споткнулся и тутор у него не сломался, игрок не проиграл (если это не предусмотрено изначально) и не разочаровался.
Агрессивная монетизация
Если вы не хотите быстро потерять игрока — не стоит показывать ему пачку офферов на покупку всего подряд в первые же минуты игры. Это, безусловно, отталкивает. Особенно, если игрок ещё не понял всей ценности игры и ресурсов, которые вы ему предлагаете. Он просто закроет игру со словами «опять донатная помойка».
Матчмейкинг и ожидание
Здесь, на самом деле, всё тоже довольно просто (с одной стороны). Матчмейкинг — это тоже ожидание, во время которого стоит снизить неопределенность. Нет прогрессбара или таймера? Не ясно, сколько ждать? Игрок решает, что игра зависла и уходит.
В идеале — если таймер будет в виде обратного отсчета — так игрок понимает, сколько ему осталось ждать. Если такой возможности нет — вы не можете рассчитать время подбора игроков в матч, сделайте обычный таймер с подсказкой о среднем времени ожидания.
Сложность игры
С одной стороны кажется, что если игра будет очень сложной, то игроки уйдут. С другой стороны, игроки всё равно должны чувствовать челлендж, поэтому попробуйте понять и настроить, скорее всего вместе с геймдизайнерами, кривую сложности. Чтобы игроки не скучали, но при этом, игрокам не стало бы дико невыносимо играть (любителям souls‑like привет). В своей практике, когда в одной из игр мы в очередном обновлении уменьшили упростили врагов и уменьшили сложность, игроки стали жаловаться, что играть стало слишком просто и мы заметили небольшое, но снижение ретеншена первого дня.
Отсутствие причин возвращаться в игру
Даже не смотря на то, что игра может зацепить игрока в первый день, на следующий день, игрок может про неё просто забыть. Поэтому убедитесь, что в игре писутствуют фичи и механизмы возврашения игрока. Это могут быть уведомления на второй день. Это может быть "календарь наград". Просто поинтересуйтесь у команды - не хотите ли вы добавить эти фичи в игру.
Другие точки риска
Неинтуитивное меню, отсутствие нужного языка, сброс прогресса при повторном входе, неотключаемый звук, неинформативные сообщения об ошибках и т. д.
Что ещё может помочь?
Выявить пользовательские проблемы на этапе тестирования могут помочь исследовательское тестирование и командные плейтесты.
Во‑первых, оба подхода позволяют найти не самые очевидные проблемы.
Во‑вторых, плейтесты позволяют собрать очень разные девайсы, очень разных людей, даже если мы говорим про команду разработки, и проверить как все они взаимодействуют с игрой, всем ли всё понятно и на всех ли девайсах играется удобно.
Играйте в похожие игры, подмечайте удобные и не удобные моменты, приносите свой опыт в команду, делитесь наблюдениями.
Примеры из практики
Давайте теперь перейдем от теории к практике, и я покажу вам некоторые примеры из реальных игр и из своего опыта.
1. Первая сессия
Лично мне однажды игра Grimguard Tactics (P. S. это не реклама и отношения к игре я не имею) запомнилась своим туториалом. Прежде всего, открывающим трейлером, который плавно переходит в игру. Просто посмотрите первые полторы минуты этого видео — Grimguard Tactics Intro | Youtube
На мой взгляд, они учли много нюансов и сделали онбординг довольно приятным и запоминающимся.

При старте игры показывают загрузочный экран с прогрессбаром и процентами загрузки
Чтобы игрок не скучал, ему показывают «интерактив» в виде подсказок и истории о вселенной
После загрузки игроку предлагают выбор — подключить существующий аккаунт, если он вдруг уже играл. Часто сам попадал в эту историю, когда хочу подключить существующий аккаунт, а игра мне не дает этого сделать и заставляет играть туториал.
Тут же нас предупреждают, что игра скачает какие‑то данные, но сделает это в фоне, что игрока в целом не блокирует.
После чего нам показывают потрясающий, хоть и короткий ролик (да, всё ещё напоминаю, что это не реклама игры)
И затем начинается туториал, который сразу нас закидывает в основной геймплей
Сразу чувствуется, что ребята делали игру с заботой об игроке.
2. Неинформативные ошибки
В мобильной игре Warcraft Rumble, когда они только зарелизились, попадались странные неинформативные ошибки: «Generic user error title» — «An error occurred».
Для игрока это значит только одно — «что‑то пошло не так, и я не знаю, что делать». Справедливости ради — здесь присутствует кнопка ОК, нажатие на которую перезапускает игру и делает «хорошо».

Как улучшить:
Писать понятные сообщения («Не удалось подключиться к серверу. Проверьте интернет.»), давать простые рекомендации («Попробуйте перезапустить игру.»), а код ошибки убирать под «кат». Примерно через полгода это окно они починили.
3. UX системы квестов
В одном проекте (action с активным геймплеем), на котором я работал, мы делали фичу с квестами в бою, при этом по дизайну, все они, и активные и завершённые, выводились одним списком и отличались только чекбоксом.
В целом, всё работало отлично — по дизайну, багов не было. Бери, да релизь. Однако, после тестирования мне показалось, что я слишком много времени трачу на то, чтобы понять, а какие ещё квесты мне нужно завершить.
В итоге я предложил следующие изменения:
Активные (не завершенные) квесты оставляем в начале списка, цель квеста выделяем цветом
Завершённые квесты двигаем вниз, зачеркиваем и меняем цвет на более нейтральный
Результат: игрокам становится легче ориентироваться в целях, не теряются, соответственно, больше времени фокусируются непосредственно на геймплее и (в идеале) получают удовольствие от игры.

4. Туториал в шутере
Перед релизом другой игры мы добавили туториал, когда команда уже играла в игру довольно долго и мы с легкостью пробегали туториал. И тут я точно не помню деталей — то ли мы нашли проблему на внутренних плейтестах, то ли нашли проблемы уже после запуска, в роликах на ютубе: но суть была в том, что игрок мог умереть в обучении, после чего его выкидываело в меню — обучение не завершалось, флоу ломается, в игре случается софтлок.
Решение: сделать игрока неуязвимым на время туториала или не давать опуститься жизням ниже 10%, чтобы любой мог пройти обучение.
5. Долгое скачивание игры
Когда‑то давно я решил скачатть тот самый Fortnite, но в гугл сторе игра, кажется, была уже заблокирована. Поэтому мой опыт был примерно такой:
— Найти в интернете лаунчер для игр Epic Games
— Скачать его и установить
— Из лаунчера установить игру
— После установки игра тут же попросила обновиться
— После обновления я запустил игру, которая тут же начала скачивать ресурсы несколько раз, по несколько Гб каждый, в итоге у меня не хватило места на телефоне и всё пришлось удалить, время потрачено было впустую. Хотя, казалось бы — довольно известная игра, большая студия разработки...
6. Локализация
Всё в том же Warcraft Rumble в окне смены языка, все названия языков тоже переводились на выбранный язык. т. е. если я по какой‑то причине сменил язык на незнакомый мне, возвращение обратно на понятный язык могло превратиться в квест.
Хорошим решением в такой ситуации было бы, конечно, названия языков не переводить.

Вместо заключения
QA в мобильных играх — это не только про стабильность и баги. Это ежедневная забота о том, чтобы реальный игрок не столкнулся с UX‑проблемами. Даже если вы не принимаете решения по дизайну, ваш голос и вовлечённость могут повлиять на игровой опыт и помочь как игрокам, так и проекту. Не игнорируйте свой опыт пользователя, доносите его до команды, выстраивайте общение, и делайте игры ещё лучше!
P. S. Если у вас есть похожие кейсы, опыт или статистика по UX и роли QA — обязательно поделитесь в комментариях!