Разработка мобильной игры-раннера
Раннер — жанр, где успех определяется шириной воронки: DAU, сессии, длина сессии, ads eCPM. Технически это один из самых «чистых» жанров для мобайла: простой геймплей, процедурная генерация, аналитика на первом месте.
Процедурная генерация уровня
Бесконечный раннер строится на chunk-based generation: заранее заготовленные секции уровня (с определёнными паттернами препятствий) стыкуются в рантайме. Алгоритм: при прохождении игроком N метров до конца текущего chunk'а — спавним следующий, за N метров за игроком — удаляем старый (возвращаем в pool).
Difficulty scaling: в ScriptableObject DifficultyConfig описываем кривую сложности — скорость, частота препятствий, редкость бонусов — как AnimationCurve от дистанции. Firebase Remote Config позволяет тюнить эту кривую без апдейта.
Pool управление: ObjectPool<T> из UnityEngine.Pool (доступен с Unity 2021) — строго типизированный, без boilerplate, с автоматическим вызовом IObjectPool колбэков.
Monетизация и метрики
Основной доход — interstitial и rewarded ads. Правило: interstitial только между сессиями (после Game Over), не во время игры. Rewarded — за продолжение после смерти, за x2 монеты, за стартовый бустер. AppLovin MAX с waterfall даёт лучший fill rate на CIS-рынке.
Ключевые метрики для оптимизации: session length (целевой — 3–5 минут), ads per session (2–4), D1 retention (целевой — 35–40%). Без Firebase Analytics с кастомными событиями (distance_reached, obstacle_hit, ad_watched) невозможно понять что именно влияет на отток.
Сроки: базовый раннер с монетизацией и аналитикой — 6–10 недель. С кастомными персонажами, магазином, ежедневными заданиями — 3–4 месяца.







