Запустить мобильный шутер на 200 миллионов пользователей
Антон Донской, СТО Axlebolt, рассказывает, как Standoff 2 переехал в Yandex Cloud
С чего всё началось — немного про Standoff 2
Изначально у нас был шутер Standoff Multiplayer — действие в нём велось от третьего лица. Игровое комьюнити очень просило сделать игру от первого лица, и мы стали думать, как это реализовать. Сразу стало понятно, что менять камеру от третьего лица на камеру от первого — плохая идея, ведь пришлось бы очень много переделывать. Поэтому мы решили, что правильнее разработать новый продукт с нуля и учесть все совершённые ранее ошибки. Тогда в команде было 6 человек: 4 программиста, 3D-моделлер и художник. Мы переписали весь бэкенд и начали развёртывать игровые сервера в облаках. Так в 2017 году появился Standoff 2.
На старте у нас было более 1000 игроков. Мы этого не ожидали, и наш единственный сервер не смог выдержать такую нагрузку. Сейчас у игры 4 млн уникальных пользователей в день (DAU — daily active users) и около 30 млн уникальной месячной аудитории (MAU — monthly active users).
Основной массив наших пользователей — молодые мужчины и подростки. 85% — до 18 лет, примерно 10% — с 19 до 21 года, 5% — старше 21 года.
Что отличает Standoff 2 от конкурентов:
Нацеленность на хардкорную, а не казуальную аудиторию. То есть пользователи должны хорошо знать игру, оттачивать умения и взаимодействовать с командой. Например, важно правильно пользоваться джойстиком и системой управления боем, знать позиции на карте и держать прицел.
Нет возможности прокачать персонажа за деньги — в игре можно купить только скины для оружия, а также наклейки, брелоки, граффити.
Почему перешли в Yandex Cloud
Мы сразу рассматривали переход в облако, чтобы снизить стоимость трафика и latency (задержки, которые могут возникнуть в процессе передачи и обработки данных) для основной аудитории — игроков из России. Также мы хотели повысить скорость создания виртуальных машин, чтобы вычислительных мощностей хватало при росте нагрузки.
Мы тестировали несколько облачных провайдеров. В некоторых сервисах время развёртывания одного инстанса доходило до 15 минут — это очень долго. Игроки в шутеры — требовательные клиенты, причём не только для разработчиков игр, но и, например, для интернет-провайдеров. Если популярная игра «лагает», то люди будут переходить к другому провайдеру.
В результате мы выбрали Yandex Cloud из-за стабильности: примерно в течение недели развернули тест на серверах и поняли, что при наращивании мощностей ничего не падает. При этом скорость развёртывания — три минуты.
Сейчас мы используем:
Виртуальные машины, на которых развёрнуты игровые серверы. Инстансы подняты в трёх зонах.
- Yandex Vision для модерации аватарок и другого пользовательского контента.
- CDN (Content Delivery Network) — сетевую инфраструктуру, которая ускоряет раздачу как тяжёлого контента (DLC), так и легковесных аватарок игроков.
Как проходят сезонные обновления
Дважды в год мы делаем глобальные обновления, когда сбрасывается рейтинговая статистика и происходят изменения в геймплее.
А ещё у нас четыре ивентовых обновления, приуроченных к праздникам, когда в игре появляются новые режимы и тематические скины.
Готовиться к обновлениям мы начинаем заранее — примерно за шесть месяцев до выхода, потому что это самый ответственный момент для команды. Так, сейчас мы уже разрабатываем новогоднюю концепцию. Маркетинг начинает работу где-то за два месяца: готовит видео и презентацию, согласовывает бюджет к запуску.
Успешность обновлений мы оцениваем по количеству игроков. Если оно выросло — всё прошло как надо. Ещё учитываем оценку в магазине приложений и проводим внутриигровые опросы. Сейчас мы растём по всем показателям.
Во время обновлений аудитория увеличивается до полутора раз. Yandex Cloud помогает нам держать нагрузку на систему в допустимых пределах и следить за метриками. Если видим, что нагрузка растёт, — принимаем меры по оптимизации и масштабированию, увеличиваем количество серверов. Если выкатываем крупное обновление — стараемся выделить дополнительные ресурсы в облаке. Иногда выставляем границы — например, чтобы всегда было доступно минимум сто серверов. Или заранее поднимаем в Yandex Cloud тысячу серверов и держим их в течение нескольких дней.
У одного гейм-сервера есть лимит на максимальное количество пользователей. На каждом мы стараемся держать примерно 75% игроков: если забить сервер полностью — это может ухудшить игровой опыт. Наша система масштабирования настроена таким образом, что как только серверы достигают нагрузки 75–80%, развёртываются новые. Игроки перераспределяются, средняя нагрузка падает и всё работает быстро.
Что дальше
Если у нас будут стабильные показатели, то мы хотим охватить и другие регионы России — Дальний Восток, центральную часть. Ещё подумываем над тем, чтобы потестировать распознавание текста через Yandex Vision, чтобы отслеживать рекламные предложения и контакты на аватарках игроков. Эта идея пока в разработке.
Если говорить про советы — нужно с самого начала задумываться о масштабировании своих проектов. Когда вышел Standoff 2, у нас был один сервер. Пришлось очень быстро накручивать различные очереди, оптимизировать, добавлять возможности горизонтального масштабирования. Мы не ожидали, что сразу станем популярными, но нужно учитывать этот сценарий и верить в свой успех.
Как и в любом другом деле, самое важное — это сделать крутой продукт. А монетизацию потом всегда можно докрутить. Если продукт понравится пользователям, то они будут готовы совершать внутриигровые покупки.
А ещё важно мониторить конкурентов и исследовать рынок, чтобы смотреть, что предлагают другие, и делать это лучше.
Подписывайтесь на Telegram-канал Yandex Cloud, чтобы узнавать еще больше новостей и историй о команде.
Другие истории наших партнеров и клиентов, которые активно читают наши подписчики: