Кейс · нативное приложение

Metarun: мобильная игра на Unreal Engine, сделанная нами целиком

Соревновательный раннер для Android и iOS: трое игроков в одном забеге, и результат решает сервер, а не телефон. Шесть инженеров за четыре месяца сделали саму игру на Unreal Engine, игровые серверы, подбор соперников по рейтингу и защиту от читов. Игра есть в Google Play, так что написанное ниже можно проверить, установив её.

Три героя Metarun бегут по улице с фонарями, за каждым тянется след скорости
Скриншот: страница игры в Google Play. Metarun — Encore Games. Графика и сама игра принадлежат издателю, Encore Games. Наша — инженерная часть, о ней ниже.

Metarun в цифрах

39 000игроков одновременно на пике события
60 мсв среднем от телефона до игрового сервера и обратно
99,8 %доступность в работе; за всю историю, вместе с бетой, — 98 %
4 месяцаразработки командой из шести инженеров

Источник: кейс на yarvixo.com; цифры опубликованы с разрешения клиента. 39 000 — пик во время игрового события, а не обычная нагрузка. Удержание, выручку и долю платящих не публикуем: это цифры студии, которая ведёт игру.

Задача: гонка, которую нельзя доверить телефону

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

Играют при этом через мобильную сеть, где связь обрывается, переключается и скачет. Сервер должен держать гонку честной при таком соединении — а это не то же самое, что держать её быстрой, — и переподключение не должно давать преимущества.

Что сделали

Одной командой, а не тремя группами, которые передают работу друг другу: самые интересные ошибки в таких играх живут на стыках.

Клиент на Unreal Engine

Нативная игра на C++ для Android и iOS: сам забег, три класса персонажей со своими способностями, коллекция героев, магазин и экраны лиг. Два режима — соревновательная гонка на троих и бесконечный забег с прокачкой.

Сервер решает исход забега

Игровые серверы ведут гонку, пока она идёт: результат решается не на устройстве, и все трое получают один и тот же итог. Права на героев и скины записаны в блокчейне, а сама гонка туда не попадает и считается на сервере.

Подбор по рейтингу и лиги

Соперники подбираются по рейтингу, над этим — лестница лиг, рядом — игры без рейтинга. Условия подбора плохо сочетаются друг с другом, поэтому его выпустили после режима на троих, а не вместе с ним.

Защита от читов

Проверка на стороне сервера, а не доверие телефону игрока. Награды делают удачный обман выгодным и необратимым, поэтому защита вышла вместе с третьим игроком в гонке, а не после запуска.

Покупки и жизнь после релиза

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

Нагрузка под событие

39 000 игроков по трое в забеге — это порядка тринадцати тысяч гонок одновременно, у каждой своё состояние. Под это — масштабирование по числу подключений, а нагрузочные тесты шли на объёме в несколько раз больше целевого, а не ровно на нём.

Результат и что можно проверить

Игра вышла под собственным брендом и есть в Google Play. На 28 августа 2026 года Google показывал больше 50 000 скачиваний и оценку 4,0 примерно по 2 970 отзывам; последнее обновление студия выпустила в феврале 2023 года. Это цифры Google, а не наши: они говорят о магазине, а не о нашей работе. Сайт игры ссылается и на App Store, но там игра сейчас не находится ни в одном регионе, который мы проверили, — живая версия сегодня только для Android.

Четыре месяца — это наша разработка. Опубликованный план проекта тянется от концепции в конце 2021 года до глобального релиза, объявленного на начало 2024-го, но этот календарь — клиента: бета-тесты, публикации в магазинах и маркетинг между этапами — не время разработки. Четыре месяца — быстрая сборка для такого объёма, а два с половиной года плана не значат, что она была медленной.

Оставить заявку

Опишите задачу в двух-трёх предложениях и укажите бюджет: по нему сразу видно, какой вариант вам подходит. Проекты начинаются от 14 700 BYN. Если бюджет меньше, предложим платную консультацию за 150 BYN в час.

  1. 1–3 дняЧитаем заявку и созваниваемся: задача и бюджет. Если нам нечего предложить — так и скажем.
  2. Неделя 1Письменно: что входит, срок и одна сумма. Что не входит — тоже письменно.

Заявка отправлена

Мы прочитаем её и свяжемся с вами по указанному контакту.