Играем на опережение: как ускорить разработку игры в два раза
Матрица контента, распределённая команда разработки и Docker-образы — рассказываем, как запустили игру за три месяца вместо полугода
Весной к нам пришла команда Альфа-Тревела — сервиса бронирования путешествий. Они хотели запустить свою первую игру для вовлечения клиентов, причём провести её летом, в разгар отпускного сезона. То есть на создание игры у нас было ровно 3 месяца (для справки: у других агентств на разработку большой контентной игры уходит 6 месяцев и больше). Чтобы уложиться в такие сжатые сроки, нам пришлось серьёзно пересмотреть рабочие процессы. Делимся сложностями, с которыми столкнулись в процессе, и лайфхаками, как их решали.
Знакомая механика как точка старта
Оптимизация началась уже с выбора формата игры — мы остановились на квизе, понятной механике вопросов-ответов. Благодаря тому, что долго правила объяснять не пришлось, мы быстро согласовали концепцию и перешли к разработке.
Вот как устроена игра: игрокам нужно было соединять названия валют со странами, которые их используют. В каждом раунде квиза — 7 вопросов и 140 секунд на ответ. Чтобы опытные игроки не заскучали, мы добавили:
- Многоуровневые розыгрыши. Кроме главного розыгрыша в финале игры, были ещё еженедельные, чтобы добавить динамики, и секретные, которые открывались за выполнение определённых целевых действий.
- Ограничения по времени и количеству игр. Изначально была одна попытка в день, но целевое действие открывало ещё одну ежедневно до конца игры.
- Выбор, за какие призы бороться. Правильные пары приносили внутриигровую валюту, которую можно было менять на билеты для розыгрышей.
Призов было много: от сертификатов Золотого яблока до чемоданов RIMOWA и 500 000 ₽ на путешествие.
Этапы работы идут параллельно, а не друг за другом
Обычно разработка игр происходит поэтапно: сначала концепт, потом гейм-дизайн, отрисовка экранов и так далее. Мы использовали другой подход. Большинство процессов шли параллельно: дизайн, написание вопросов, согласование с заказчиком, разработка и тестирование.
Для разработки гейм-дизайна и отрисовки иллюстраций мы усилили команду фрилансерами. Это потребовало дополнительного онбординга, чтобы встроить новых участников в наши процессы, и готовности быстро реагировать на их вопросы. Мы сделали единый чат для всей команды проекта: так все были в курсе любых задач и могли оперативно помогать друг другу.
Матрица контента — наша супернаходка
Игра шла 42 дня, каждая игровая сессия состояла из 7 вопросов. Квиз можно было пройти 3 раза в первый день и 1 или 2 раза дальше. Получается, максимум участник мог увидеть 595 вопросов — примерно в 3 раза больше, чем стран в мире.
Чтобы не повторять много раз одни и те же пары стран и валют, мы разработали систему повторного показа тех вопросов, на которые игрок ответил неверно, — так для игрового разнообразия хватало 300 вопросов.
Мы быстро поняли, что однотипные формулировки «В каких странах используют эти деньги?» — не наш вариант. Они бы утомили игроков, а нам нужно было поддерживать любопытство. Поэтому мы решили добавить в каждый вопрос интересный географический или культурный факт.
К текстам были и другие требования:
- краткость, чтобы уместиться в лимит по символам;
- универсальность, потому что каждый факт должен был объединять несколько стран;
- отсутствие повторов: нельзя было, чтобы игроку несколько раз подряд выпадали похожие формулировки или одни и те же страны и валюты в ответах.
Невозможно было выполнить все эти требования разом, просто написав 300 вопросов и выдавая их в случайном порядке. Поэтому мы создали матрицу контента: разбили вопросы на 10 категорий по темам и разработали алгоритм двухуровневого подбора вопросов, который сделал игру гибкой и уникальной для каждого. Так мы исключили вероятность, что игрок получит несколько однотипных текстов.
Благодаря алгоритму мы получили возможность использовать схожие формулировки внутри каждой категории — эти вопросы всё равно не могли появиться подряд. Работа пошла намного быстрее, в том числе из-за того, что находить интересные факты по конкретной теме проще, чем без неё.
Визуальное разнообразие при минимуме иллюстраций
Мы остановились на минималистичном дизайне и стиле Nordic Doodle, который напоминает быстрые зарисовки на полях тетради. Ручная графика отсылает к старым картам и скандинавской графической эстетике — получилось выдержать тематику географической игры, сделать её ламповой и выделиться среди частого сейчас ИИ-стиля.
Благодаря матрице контента удалось уменьшить и количество иллюстраций. Дизайнеры также использовали 10 категорий, только рисовали уже по паре картинок: большую — под короткий вопрос и маленькую — под длинный, на несколько строк.
В итоге дизайнеры создали более 250 иллюстраций: картинки к вопросам, анимированные заставки для игровых экранов, иллюстрации для розыгрышей, заглушки для технических экранов. А ещё — пара сотен флагов разных стран.
Распределённая команда разработки и образ вместо архива
Ещё одна удачная находка на этом проекте — распределённая по разным часовым поясам команда разработки. Она позволяла разбить работу на смены и обеспечить почти круглосуточную разработку. Это очень выручало в случае неожиданных багов или срочных правок: мы могли быстро разобраться с ними хоть 8 утра, хоть в 10 вечера, и всё это не сверхурочно.
Здесь процессы тоже шли параллельно. Классически сначала согласовывают весь игровой контент, затем начинается проработка бэкенда, фронтенда и тестирование. Мы же разбили этапы работы на блоки, связанные с прогрессом дизайна:
- Пока экраны не были готовы, мы готовили бэкенд-архитектуру, базы данных и всё, что могли, для фронтенда.
- Как только согласовали ключевые экраны, они тут же отправились во фронтенд-разработку.
- Дальше связывали фронт- и бэкенд, настраивали сценарии.
Отдельная находка для нас — переход с архивов на Docker-образы. Раньше мы собирали игры в один статичный архив, который отправляли клиенту, а он уже запускал всё у себя. Если нужно было что-то поправить или обновить, приходилось вносить изменения на нашей стороне, пересобирать архив и заново его раскатывать.
В случае с Docker-образом мы могли напрямую взаимодействовать с игрой, в том числе уже после релиза. Вносить обновления в образ можно гораздо быстрее, а перекатывать архив больше не надо.
Благодаря этому решению могли запустить тестирование параллельно другим процессам. Над ним работали одновременно с командой со стороны банка. Здесь тоже потребовалась гибкость — такой подход был новым для всех. Помогла коммуникация: мы очень чётко указывали, какие блоки надо проверить.
Сначала мы отдали на тестирование первый вход, потом следующие экраны по мере готовности. Так, тестируя параллельно разработке и дизайну, мы смогли вдвое сократить время на тестирование и при этом отловить и поправить все ошибки до релиза.
Что в итоге получилось
Проект удалось запустить всего за 3 месяца, а у нас теперь есть рабочий алгоритм, который позволяет максимально ускорять разработку.
Игра «Соедините валюту и страну» вошла в топ-3 игр банка по вовлечённости. За 6 недель в неё сыграли 1 060 835 раз, игроки на 159% выполнили план по целевым действиям, 40% новичков пришли в сервис через игру и совершили первую покупку.
Больше драйвовых кейсов — на нашем сайте: https://memotions.ru/cases. А если вам тоже нужна такая геймификация — приходите, всё сделаем.