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

Раннери втрачають гравців, коли траси повторюються, а баланс складності збивається вже в перших сесіях. Ми розробляємо мобільні ігри-раннери під ключ: керована процедурна генерація та налаштування монетизації без втрати інтересу. Ви отримуєте проєкт із прогнозованим утриманням і зрозумілими метриками зростання.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

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

Розробка ранера: де ламається утримання гравців

Безкінечний забіг ламається передбачувано: через вісім-десять спроб гравець запам’ятовує ритм перешкод і перестає помилятися — разом із напругою зникає й інтерес.

У мобільній грі-ранері це помітно раніше, ніж в інших жанрах, бо ядро механіки — повтор однієї й тієї самої дії, і якщо траси однотипні, десята спроба не відрізняється від третьої.

З боку даних картина виглядає як обрив: сесії короткі, повернення на другий-третій день падають, але незрозуміло, де саме зірвалося утримання гравців — на першій перешкоді, на зміні швидкості чи на довгій ділянці без перепочинку.

Розмітити забіг за сегментами й зібрати статистику за кожним зазвичай нічим: генерація видає потік, а не описаний рівень.

При цьому утримання гравців тримається на керованій варіативності: гравець має впізнавати правила й не впізнавати розстановку.

Процедурна генерація рівнів дає це лише в жорстких рамках — бібліотека перевірених блоків, крива складності, обов’язкові паузи на відновлення, правила сумісності сусідніх перешкод.

Без рамок виходить шум: непрохідні зв’язки й розкид за часом проходження ширший, ніж сама складність.

Розробка ранера тому починається не з малювання рівнів, а з моделі траси й метрик. Розбираємо, як це закривається: як будується генератор із контролем складності, як забіг отримує розмітку під аналітику і за якими даними видно точку, де гравець іде.

Що дає керована процедурна генерація рівнів

Ручне складання трас обмежує ранер швидкістю команди: 15–20 рівнів на тиждень, кожен вивіряється наживо, а сильний гравець проходить весь контент за кілька вечорів. Сесія тримається близько хвилини: за невдалої щільності перешкод забіг відчувається нечесним, і його покидають.

Автоматична побудова трас переносить цю роботу в правила. Рівень збирається із сегментів, у кожного описано точки входу й виходу, щільність перешкод і обов’язковий прохідний коридор.

Валідатор проганяє зібрану ділянку на розв’язність за поточної швидкості й відкидає варіанти, де вікно реакції менше за поріг.

Динамічна складність задається кривою, прив’язаною до темпу гравця й кількості падінь, а не до номера рівня. Щільність і розкид перешкод зростають у заданих рамках балансу: складність підтягується до сильного гравця й не обрушується на новачка.

Ефект вимірний. Довжина ігрової сесії зросла з 60–90 секунд до трьох із лишком хвилин, частка повторних забігів — приблизно вдвічі, покинуті спроби на перших 30 секундах скоротилися з 40% до 18%. Правка правил займає пару годин замість тижнів ручного складання.

Орієнтир щодо динаміки в жанрі — Subway Surfers: та сама безкінечна стрічка, але крива складності в нас налаштовується під конкретний показник утримання, а баланс рівня перевіряється звітом — де гравці частіше падають і які сегменти випадають із генерації.

Режими побудови трас: порівняння підходів

Схема побудови траси визначає, з якою швидкістю ви випускаєте нові сезони і наскільки передбачуваний баланс. У ранері це чутливіше, ніж у більшості жанрів: гравець проходить рівень десятки разів, тому потрібні водночас упізнаваність і варіативність. Нижче — три схеми, між якими реально обирають на старті.

Варіант Коли підходить Обмеження
Повністю процедурна генерація Безкінечний режим, довга дистанція, невелика команда дизайнерів рівнів Складно гарантувати чесну складність: піки перешкод потребують налаштування параметрів за статистикою проходжень
Ручні траси Кампанія, навчання, забіги на рекорд з однаковими умовами для всіх Кожна нова траса — час дизайнера; за частого повтору гравець запам’ятовує все напам’ять
Гібридний рівень: процедурне складання з ручних сегментів Безкінечний потік контенту плюс керований баланс, змагальні режими Дорожче на старті: потрібна бібліотека сегментів, правила стикування й перевірка на прохідність

Гібрид зазвичай беруть, коли гра живе на сезонних оновленнях: дизайнер робить сегменти, а генератор збирає з них трасу під поточну складність.

Тоді параметри генерації — щільність перешкод, довжина безпечного вікна, крок ускладнення й стартове зерно — стають частиною балансу, а не налаштуванням «на око».

Окремо фіксуємо зерно генерації: без нього не можна відтворити баг на конкретній трасі або повторити рекордний забіг, а отже, і розбирати скарги гравців доводиться наосліп. Розбираємо, як це закривається у вашому проєкті.

Етапи розробки ранера: від прототипу до релізу

Порядок етапів вибудувано так, щоб кожен наступний крок спирався на вже перевірену цифру, а не на «здається, грається».

Механіка, генератор і баланс перевіряються на сірому прототипі задовго до появи фінальної графіки — так правки коштують години роботи, а не переробку рівнів і анімацій. Монетизація підключається останньою, коли цикл сесії вже стабільний.

  1. Розбір механіки. Фіксуємо довжину забігу, набір перешкод, вісь керування й умови програшу. Різне розуміння цих речей спливає тут, а не на релізі.
  2. Прототип ранера. Сірі блоки, чесна фізика стрибка й ковзання. Міряємо час до першої смерті й з якого разу гравець проходить ділянку — за цими числами правимо чутливість керування.
  3. Схема генератора. Визначаємо, з яких блоків збирається траса, їхні ваги, правила ускладнення й коридори гарантованої прохідності.
  4. Налаштування генератора. Проганяємо тисячі автоматичних забігів, дивимося частку непрохідних зв’язок і розкид складності. Правимо ваги й правила, а не окремі рівні вручну.
  5. Перевірка балансу. Крива складності за дистанцією, тривалість сесії, частка виходів на першій хвилині. Сюди ж додаємо нагороди й рекламні включення, щоб вони не ламали темп.
  6. Підготовка до публікації. Збірки під магазини, політика конфіденційності, навчальний перший запуск, тестові треки й робота з відгуками.
  7. Передача проєкту. Репозиторій, документація за параметрами генератора й економіки, навчання команди замовника — подальші правки балансу робляться вже без нас.

Що залишається в проєкті після передачі

Передача не закінчується на зібраному білді в магазині застосунків. Разом із релізом замовник отримує весь комплект, яким застосунок живе далі: код, налаштування генерації, правила складності й регламент випуску нових версій.

Усе складається в репозиторій замовника, доступи оформлюються на його акаунти, а за кожним пунктом проходить розбір із командою.

  • Вихідний код застосунку й ігрової логіки цілком, включно із захищеною збіркою — проєкт перезбирається силами будь-якої іншої команди, без закритих модулів і «чорних ящиків».
  • Конфігурація генератора: параметри процедурних ділянок, таблиці ваг і шаблони сегментів траси. Правка балансу рівня не потребує правок у коді.
  • Правила складності: крива зростання швидкості, вікна невразливості після відродження, пороги появи перешкод — зведені в одну таблицю з описом, а не розкидані по логіці.
  • Документація проєкту: карта модулів, точки інтеграції з рекламними й аналітичними модулями, порядок локального запуску й збирання релізної версії.
  • Регламент оновлень: як готується версія, хто і за якими перевірками її приймає, як виконується відкат на попередню збірку при регресії.
  • Доступи й інфраструктура: акаунти магазинів застосунків, ключі підпису, кабінети аналітики й рекламних мереж — переведені на власника продукту.
  • Панель метрик: утримання за днями, конверсія в перший рівень, тривалість сесій і воронка монетизації — видно, де гравець відпадає.

Такий комплект знімає головний ризик розробки ранера: через пів року ніхто не пам’ятає, чому складність зростає саме так і який параметр відповідає за частоту бонусів.

Кейс: утримання й довжина сесії до і після

Проєкт — ранер із безкінечним забігом і процедурною генерацією траси. На старті складність наростала за номером рівня: гравець або проходив відрізок із першої спроби, або впирався в непрохідну зв’язку перешкод і закривав застосунок.

Метрики утримання показували це прямо: 2,1 забігу за сесію, довжина сесії близько трьох хвилин, на другий день поверталося менше чверті тих, хто встановив.

Спочатку зібрали телеметрію за кожним забігом: точку, де гравець припиняв спробу, кількість спроб до виходу, інтервал між запусками.

Відтік концентрувався у двох місцях — на перших 40 секундах, коли новачок не встигав зчитати патерн перешкод, і на ділянках, де генератор видавав комбінації без вікна для реакції.

Що змінили в генерації

Задали генератору керовані параметри: щільність перешкод, гарантоване вікно реакції, розподіл нагород за ризик, окрема стартова крива для перших забігів. Складність стала функцією від показників гравця — пройдених метрів, точності ухилянь, серій без втрат — а не від номера рівня. Після двох невдалих спроб підряд генератор знижує щільність на складних ділянках.

Результат упровадження за когортами в Google Play: забігів за сесію стало 4–5, середня довжина сесії зросла до семи хвилин, частка повторних запусків застосунку наступного дня вища в 1,8 раза. Частка гравців, які дійшли до третього відрізка траси, зросла з 41% до 68%.

Чим процедурна генерація відрізняється від ручних трас?

Ручна траса — це авторський набір сегментів, де дизайнер вручну розставляє перешкоди, нагороди й ритм рівня.

Генерація — правило плюс зерно: алгоритм збирає трасу із заздалегідь підготовлених блоків за вагами, і однакове зерно завжди дає один і той самий результат — це потрібно для повторних спроб і чесних таблиць лідерів.

Ключова відмінність — передбачуваність. У ручному дизайні крива складності задається точно: відомо, де гравець отримає перепочинок, а де впреться в стіну.

У генерації складність — похідна від параметрів, і без валідатора з’являються непрохідні зв’язки: розрив ширший за стрибок за поточної швидкості. Тому прохідність перевіряють на етапі складання сегмента, а не після скарг гравців.

Швидкість випуску контенту відрізняється кратно. Ручний рівень — години роботи дизайнера й повторне налагодження під кожен розмір екрана. Новий набір для генератора — правка ваг: той самий код видає інший характер трас, обсяг зростає без зростання ручної праці.

Зворотний бік — супровід: помилка живе не в одному рівні, а в розподілі, тому у збірку закладають прогони десятків тисяч сесій.

Варіант Коли підходить Обмеження
Ручні траси Навчальні рівні та точна драматургія Обсяг зростає лише з кількістю дизайнерів
Повна генерація Безкінечний режим, щоденні випробування Баланс тримається лише на валідаторі
Гібрид Основний режим: генерація та якірні ділянки Складніший у підтримці — дві системи та їхнє стикування

Технічні сумніви щодо генерації та балансу

Сумніви навколо процедурної генерації зазвичай конкретні: чи не збереться непрохідна ділянка, чи потягне слабкий пристрій і чи доведеться перезбирати застосунок заради правки балансу. Нижче — як кожен з них закривається на рівні коду, а не обіцянок.

Як гарантується, що ділянка завжди прохідна?

Траса не будується «як вийде»: вона збирається із заздалегідь вивірених блоків перешкод з відомими вікнами прохідності, а конкретне розкладання задає числове зерно.

Після складання маршрут проходить автоматичну перевірку — віртуальний прогін по всіх смугах із запасом за часом реакції й контролем досяжності кожної платформи. Якщо перевірку не пройдено, зерно відкидається й розкладання перезбирається, доки не з’явиться валідний варіант. Гравець не отримує комбінацію, яку неможливо пройти.

Як балансується крива складності?

Крива задається не вручну за рівнями, а профілем: швидкість, щільність перешкод, частка вузьких місць і частота бонусів змінюються за настроюваною функцією від пройденої дистанції.

Профілі описані окремими наборами параметрів, тому один генератор видає спокійний початок, пікові відрізки й паузи на відновлення. Крива перевіряється масовими автопрогонами ботів із різною реакцією — за ними видно, де складність зростає швидше, ніж гравець устигає адаптуватися.

Чи потягне генерація слабкий пристрій?

Рахується лише те, що потрапляє в кадр: перешкоди й декорації беруться із заздалегідь підготовленого набору об’єктів і повертаються в нього після проходження, замість постійного створення нових.

Для слабких пристроїв діє окремий профіль якості — спрощені матеріали, менше декоративних шарів, рідше оновлення ефектів, при цьому логіка рівня й зони влучання не змінюються, щоб гра залишалася чесною. Бюджет кадру замірюється на реальних слабких моделях, а не лише на стенді розробника.

Чи можна правити контент і баланс без перезбирання?

Так. Параметри профілів складності, набори блоків, таблиці нагород і розклад подій винесені в конфігурацію, яку застосунок забирає із сервера під час запуску.

Правка балансу або нова перешкода викочуються як оновлення конфігурації: гравець отримує зміни при наступному вході, перевстановлення й повторна перевірка в магазині застосунків не потрібні.

Конфігурація версіонується, тому невдале оновлення відкочується поверненням попереднього набору параметрів.

Ці чотири механізми знімають основну частину ризиків до старту розробки — решта питань зазвичай стосується строків, команди й порядку приймання.

Обговоримо задачу й повернемося з планом робіт

Щоб розмова була предметною, а не про «застосунок-ранер загалом», нам корисно побачити вашу картину до дзвінка. Достатньо того, що вже є: начерк механіки, референси, нотатки щодо монетизації, дані за минулими спробами, якщо вони були.

  • Механіка ядра: як задається швидкість, з чого складається рахунок, чи є прискорення з часом і чим закінчується забіг — від цього залежить структура процедурної генерації.
  • Референси й антиреференси: 2-3 гри, які подобаються, і 1-2, які точно не підходять, із поясненням чому. Це знімає половину правок на етапі прототипу.
  • Цільові платформи й пристрої: на чому запускаємо насамперед і який рівень пристроїв вважаємо нижньою межею — впливає на бюджет продуктивності й на те, де генеруємо рівні: на клієнті чи на сервері.
  • Модель монетизації: реклама між забігами, нагорода за перегляд, внутрішньоігрові покупки або їх поєднання. Від цього залежить, як вбудовуються точки показу й що ми виносимо в аналітику.
  • Обмеження: жорсткі дати, обов’язкова інтеграція з вашою аналітикою або платежами, вимоги щодо приватності й зберігання даних гравців.
  • Хто ухвалює рішення: одна людина чи кілька, і як часто зможете дивитися збірки — від цього залежить ритм ітерацій.

На дзвінку розберемо спірні місця: як балансувати складність, щоб генерація не видавала непрохідні ділянки, де зберігати прогрес і покупки, як рахувати утримання за днями й не збирати зайві персональні дані.

Після цього повернемося з оцінкою проєкту, складом робіт за етапами й планом: прототип ядра, генерація рівнів, метрики й монетизація, полірування, підготовка до публікації. Опишіть задачу в зручному вигляді — текстом, схемою або посиланням на поточний прототип.

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

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1009
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    902
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1179
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1106
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    713