Розробка мобільної гри-раннера
Раннер — жанр, де успіх визначається шириною воронки: DAU, сесії, довжина сесії, ads eCPM. Технічно це один з найбільш «чистих» жанрів для мобайла: простий геймплей, процедурна генерація, аналітика на першому місці.
Процедурна генерація рівня
Нескінченний раннер будується на chunk-based generation: заготовлені заздалегідь секції рівня (з визначеними паттернами перешкод) стикуються в runtime. Алгоритм: при проходженні гравцем N метрів до кінця поточного chunk'a — спавним наступний, за N метрів позаду гравця — видаляємо старий (повертаємо в pool).
Difficulty scaling: у ScriptableObject DifficultyConfig описуємо криву складності — швидкість, частоту перешкод, редкість бонусів — як AnimationCurve від дистанції. Firebase Remote Config дозволяє тюнити цю криву без апдейту.
Pool управління: ObjectPool<T> з UnityEngine.Pool (доступна з Unity 2021) — строго типізована, без boilerplate, з автоматичним викликом IObjectPool колбеків.
Монетизація та метрики
Основний дохід — 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 місяці.







