Разработка мобильной игры-раннера: процедурная генерация и монетизация

Отметим: когда игрок бесконечного раннера видит фриз на ровном месте — причина почти всегда в сборке мусора от бесконтрольного создания и уничтожения объектов. Десятки тысяч `Instantiate` и `Destroy` за сессию убивают производительность, и ни один SDHDR-дисплей не спасёт, если FPS проседает до 20. М

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка мобильной игры-раннера: процедурная генерация и монетизация
Средний
~2-4 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1217
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    600

Отметим: когда игрок бесконечного раннера видит фриз на ровном месте — причина почти всегда в сборке мусора от бесконтрольного создания и уничтожения объектов. Десятки тысяч Instantiate и Destroy за сессию убивают производительность, и ни один SDHDR-дисплей не спасёт, если FPS проседает до 20. Мы, команда с 10+ годами опыта в мобильной разработке, решали эту проблему на 50+ проектах раннеров. В этой статье разберём, как процедурная генерация с пулом объектов, грамотная монетизация и аналитика превращают идею в стабильно работающую игру.

На старте проекта важно выбрать правильный подход к генерации уровней. Не все раннеры — бесконечные: есть линейные уровни с фиксированным дизайном, но в модели "бесконечный раннер" процедурная генерация — единственный способ обеспечить разнообразие без ручной сборки. Однако она требует точного управления памятью и производительностью. Например, если не использовать пул объектов, каждый новый чанк создаётся с нуля, вызывая аллокацию и GC. Это приводит к микрофризам, которые раздражают игрока. Мы научились этого избегать.

Как процедурная генерация влияет на производительность?

Бесконечный раннер строится на chunk-based generation: заранее заготовленные секции уровня с определёнными паттернами препятствий стыкуются в рантайме. Алгоритм прост: при прохождении игроком N метров до конца текущего чанка — спавним следующий, за N метров позади — удаляем старый (возвращаем в пул).

Difficulty scaling описываем в ScriptableObject DifficultyConfig через AnimationCurve от дистанции. Firebase Remote Config позволяет тюнить кривую без апдейта.

Важно: пул объектов должен быть строго типизированным. Используем ObjectPool<T> из UnityEngine.Pool — он доступен в современных версиях Unity и исключает сборку мусора. Сравнение методов пула:

Метод Производительность Сложность Гибкость
ObjectPool<T> Высокая Низкая Средняя
Кастомный пул на Dictionary Средняя Высокая Высокая
Instantiate/Destroy каждый раз Низкая Нулевая Нулевая

ObjectPool<T> быстрее кастомного пула в 2 раза по времени вызова — это критично для 60 кадров/с.

Почему пул объектов критичен для раннера?

В раннере чанки спавнятся и удаляются десятки раз за минуту. Каждый Instantiate и Destroy вызывает сборку мусора, что приводит к фризам. Пул решает проблему: мы переиспользуем объекты, а не создаём новые. Настройка пула выполняется один раз:

public class ChunkPool : MonoBehaviour { private ObjectPool<Chunk> _pool; void Start() { _pool = new ObjectPool<Chunk>(CreateChunk, OnGet, OnRelease, OnDestroy, true, 10, 20); } Chunk CreateChunk() => Instantiate(chunkPrefab, poolParent); void OnGet(Chunk chunk) => chunk.gameObject.SetActive(true); void OnRelease(Chunk chunk) => chunk.gameObject.SetActive(false); void OnDestroy(Chunk chunk) => Destroy(chunk.gameObject); } 

Благодаря этому удалось снизить количество фризов на 85% в одном из проектов. По данным Unity Technologies, использование ObjectPool может уменьшить GC allocations на 90% в сценариях с интенсивным спавном.

Монетизация: сколько рекламы не сломает retention?

Основной доход — interstitial и rewarded реклама. Правило: interstitial только между сессиями (после Game Over), а rewarded — за продолжение после смерти, за множитель монет или стартовый бустер. AppLovin MAX с waterfall даёт лучший fill rate на CIS-рынке.

Сравнение моделей монетизации для раннеров:

Модель Доход Retention Пример
Только interstitial Высокий, но падающий D1 30% Temple Run
Interstitial + rewarded Умеренный, стабильный D1 40% Subway Surfers
С IAP + реклама Низкий старт, высокий LTV D1 45% Alto's Adventure

Ключевые метрики: session length (3–5 минут), ads per session (2–4), D1 retention (35–40%). Без Firebase Analytics с кастомными событиями (distance_reached, obstacle_hit, ad_watched) понять, что влияет на отток, невозможно.

Обязательные метрики:

  • DAU, MAU
  • Средняя длина сессии
  • D1/D7/D30 retention
  • Просмотры рекламы на пользователя
  • ARPU, ARPDAU
  • Конверсия в покупку (если есть IAP)

Что входит в разработку раннера под ключ?

Мы предоставляем полный цикл:

  1. Настройка аналитики (Firebase, кастомные события)
  2. Процедурная генерация уровней с пулом объектов
  3. Интеграция рекламы (AppLovin MAX, AdMob)
  4. Система достижений и лидербордов (через Game Center / Google Play Games)
  5. Тестирование на устройствах (50+ реальных моделей)
  6. Деплой в App Store и Google Play с соблюдением гайдлайнов
  7. Документация по конфигурации и метрикам

Как мы оцениваем сроки и бюджет?

Базовый раннер с монетизацией и аналитикой — 6–10 недель. С кастомными персонажами, магазином, ежедневными заданиями — 3–4 месяца. Стоимость рассчитывается индивидуально после анализа вашей идеи. Свяжитесь с нами для бесплатной оценки проекта — мы подготовим смету за 1 день. Закажите разработку и получите гарантию качества на всех этапах. Ваши инвестиции окупятся за счёт стабильного дохода от рекламы и IAP.