Запустить мобильный шутер на 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).

Как растёт количество установок в Google Play

Основной массив наших пользователей — молодые мужчины и подростки. 85% — до 18 лет, примерно 10% — с 19 до 21 года, 5% — старше 21 года.

Что отличает Standoff 2 от конкурентов:

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

  • Нет возможности прокачать персонажа за деньги — в игре можно купить только скины для оружия, а также наклейки, брелоки, граффити.

Почему перешли в Yandex Cloud

Мы сразу рассматривали переход в облако, чтобы снизить стоимость трафика и latency (задержки, которые могут возникнуть в процессе передачи и обработки данных) для основной аудитории — игроков из России. Также мы хотели повысить скорость создания виртуальных машин, чтобы вычислительных мощностей хватало при росте нагрузки.

Мы тестировали несколько облачных провайдеров. В некоторых сервисах время развёртывания одного инстанса доходило до 15 минут — это очень долго. Игроки в шутеры — требовательные клиенты, причём не только для разработчиков игр, но и, например, для интернет-провайдеров. Если популярная игра «лагает», то люди будут переходить к другому провайдеру.

В результате мы выбрали Yandex Cloud из-за стабильности: примерно в течение недели развернули тест на серверах и поняли, что при наращивании мощностей ничего не падает. При этом скорость развёртывания — три минуты.

Сейчас мы используем:

  • Виртуальные машины, на которых развёрнуты игровые серверы. Инстансы подняты в трёх зонах.

  • Yandex Vision для модерации аватарок и другого пользовательского контента.
  • CDN (Content Delivery Network) — сетевую инфраструктуру, которая ускоряет раздачу как тяжёлого контента (DLC), так и легковесных аватарок игроков.

Как проходят сезонные обновления

Дважды в год мы делаем глобальные обновления, когда сбрасывается рейтинговая статистика и происходят изменения в геймплее.

6 сезон Standoff 2 вышел в 2023 году

А ещё у нас четыре ивентовых обновления, приуроченных к праздникам, когда в игре появляются новые режимы и тематические скины.

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

Успешность обновлений мы оцениваем по количеству игроков. Если оно выросло — всё прошло как надо. Ещё учитываем оценку в магазине приложений и проводим внутриигровые опросы. Сейчас мы растём по всем показателям.

Во время обновлений аудитория увеличивается до полутора раз. Yandex Cloud помогает нам держать нагрузку на систему в допустимых пределах и следить за метриками. Если видим, что нагрузка растёт, — принимаем меры по оптимизации и масштабированию, увеличиваем количество серверов. Если выкатываем крупное обновление — стараемся выделить дополнительные ресурсы в облаке. Иногда выставляем границы — например, чтобы всегда было доступно минимум сто серверов. Или заранее поднимаем в Yandex Cloud тысячу серверов и держим их в течение нескольких дней.

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

Что дальше

Если у нас будут стабильные показатели, то мы хотим охватить и другие регионы России — Дальний Восток, центральную часть. Ещё подумываем над тем, чтобы потестировать распознавание текста через Yandex Vision, чтобы отслеживать рекламные предложения и контакты на аватарках игроков. Эта идея пока в разработке.

Если говорить про советы — нужно с самого начала задумываться о масштабировании своих проектов. Когда вышел Standoff 2, у нас был один сервер. Пришлось очень быстро накручивать различные очереди, оптимизировать, добавлять возможности горизонтального масштабирования. Мы не ожидали, что сразу станем популярными, но нужно учитывать этот сценарий и верить в свой успех.

Как и в любом другом деле, самое важное — это сделать крутой продукт. А монетизацию потом всегда можно докрутить. Если продукт понравится пользователям, то они будут готовы совершать внутриигровые покупки.

А ещё важно мониторить конкурентов и исследовать рынок, чтобы смотреть, что предлагают другие, и делать это лучше.

Подписывайтесь на Telegram-канал Yandex Cloud, чтобы узнавать еще больше новостей и историй о команде.

Другие истории наших партнеров и клиентов, которые активно читают наши подписчики:

0
4 комментария
Backup Service
если забить сервер полностью — это может ухудшить игровой опыт

Т.е. вы даже не стали выяснять причины возникновения "ухудшения игрового опыта" при 100% загрузке, а просто сделали костыль? Может проблема в поставщике услуг и AWS бы справился со 100% нагрузкой без "ухудшения игрового опыта"?

Ответить
Развернуть ветку
Marq

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

Ответить
Развернуть ветку
Артём А.

Тут не в этом дело. Держать нагрузку железа на уровне ниже 100% - вполне нормальная и распространенная практика. И 75-80% звучит здраво. Только вот измерять количество людей на сервере в процентах.. технические специалисты даже не читали этот текст перед публикацией) а писал его chatgpt

Ответить
Развернуть ветку
Иван

Неплохо было бы больше почитать про сам процесс разработки игры и к чему пришли в итоге, про команду. А так, как будто игра для Yandex Cloud, а не Yandex Cloud для игры. И да, текст как будто нейронкой написан, или через нее прогнан.

Ответить
Развернуть ветку
1 комментарий
Раскрывать всегда