Реалізація механіки Battle Pass у мобільній грі

Ми розробляємо механіку Battle Pass як один із найбільш технічно об'ємних елементів монетизації. В одному з проєктів по мобільній RPG з 500 тис. DAU ми впровадили Battle Pass з п'ятирівневою прогресією. Перша версія призвела до того, що 30% гравців пройшли його за перший тиждень, що вимагало перерах

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація механіки Battle Pass у мобільній грі
Середній
~5 днів

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

Часті запитання

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Ми розробляємо механіку Battle Pass як один із найбільш технічно об'ємних елементів монетизації. В одному з проєктів по мобільній RPG з 500 тис. DAU ми впровадили Battle Pass з п'ятирівневою прогресією. Перша версія призвела до того, що 30% гравців пройшли його за перший тиждень, що вимагало перерахунку XP кривої. На основі цього досвіду ми виробили архітектуру, яка повторно використовується та масштабується.

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

Як збалансувати прогресію Battle Pass?

Одне з ключових питань — вибір між flat та scaling XP. Flat XP простіше реалізувати, але створює ситуацію, коли хардкор-гравець проходить весь Battle Pass за перший тиждень і втрачає мотивацію платити. Scaling XP утримує інтерес, але може стати занадто агресивним.

Добре працює linear scaling with plateau: перші 20 рівнів дешево, рівні 21–80 рівномірно зростають, 81–100 — фіксована висока вартість для «перфекціоністів». Casual-гравець без покупки skip-levels доходить до 70–75 рівня до кінця сезону — це правильний баланс. Таблицю XP проєктуємо в spreadsheet: задаємо очікувану кількість XP за різні активності (проходження рівня, дейлі-квест, івент) і рахуємо, скільки днів потрібно casual-гравцю для проходження кожного рівня Battle Pass.

Рівні XP за рівень Примітка
1–20 100 Швидкий старт
21–80 100 + 10*(рівень-20) Рівномірне зростання
81–100 800 Плато

Архітектура даних

Модель Battle Pass на сервері включає мінімум три сутності:

Season — поточний сезон з датами start/end, список рівнів (50–100) з нагородами для free- та premium-треку.

PlayerSeasonProgress — прогрес конкретного гравця: поточний рівень, накопичений XP, прапорець isPremium, список claimedRewards.

SeasonXPTransaction — лог нарахувань XP: джерело (level_complete, daily_quest, mission), кількість, timestamp. Потрібен для аудиту та anti-cheat.

struct BattlePassLevel: Codable { let level: Int let xpRequired: Int let freeReward: Reward? let premiumReward: Reward? } struct PlayerSeasonProgress: Codable { let seasonId: String let currentLevel: Int let currentXP: Int let isPremium: Bool let claimedRewards: [String] // "level_\(n)_free", "level_\(n)_premium" } 

Як інтегрувати IAP для Battle Pass?

Battle Pass продається як non-consumable або auto-renewable subscription — залежно від моделі:

  • Разова покупка на сезон (non-consumable) — простіше для гравця, легше реалізувати
  • Підписка з авторенью — стабільний дохід, але вимагає грамотного управління через StoreKit 2 (iOS) або Google Play Billing Library 6+

Згідно з документацією StoreKit 2, валідація транзакції на сервері обов'язкова для premium-контенту. Клієнт передає transactionId, сервер верифікує через App Store Server API або Google Play Developer API.

На iOS з StoreKit 2:

let products = try await Product.products(for: ["battle_pass_season_1"]) guard let battlePass = products.first else { return } let result = try await battlePass.purchase() switch result { case .success(let verification): let transaction = try verification.payloadValue await transaction.finish() await unlockPremiumTrack(for: transaction.id) case .pending: break case .userCancelled: break } 

Механіка Battle Pass описана в Wikipedia, але наша реалізація включає ряд додаткових фіч.

Коли використовувати підписку замість разової покупки?

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

Параметр Non-consumable Auto-renewable subscription
Тип доходу Разовий Регулярний
LTV Нижче В 2 рази вище
Складність реалізації Низька Висока (управління підписками)
Приклад розрахунку XP для casual-гравця При 10000 XP на день (дейлі+місія) casual проходить 20 рівнів за ~7 днів, 50 рівнів за 20 днів.

Skip Levels та Gifting

Skip levels (пропуск рівнів за тверду валюту) — додаткове джерело доходу. Зазвичай 1 рівень = 100–150 gems, пакет з 10 рівнів з невеликою знижкою. Технічно: consumable IAP або списання gems з гаманця з серверною верифікацією.

Подарувати Battle Pass другу — фіча, яку запитують часто, але реалізують рідко. Вимагає підтримки Gift Purchase від платформи: iOS підтримує через StoreKit, Android — частково через Google Play Gifting API (в beta з 2023).

UI Battle Pass

Стандартний UI — горизонтальний скрол з рівнями, поточний рівень по центру, нагороди вище/нижче для free/premium треків. Кнопка «Отримати» активна тільки для зароблених та не отриманих нагород.

Ключові UI-стани для кожного рівня:

  • Locked (ще не досягнуто)
  • Earned, not claimed (досягнуто, нагорода не забрана)
  • Claimed (забрана)
  • Premium locked (тільки для premium, гравець не купив)

Анімація отримання нагороди — повноекранна, з партиклами. Це retention-момент: гравець повинен відчувати задоволення від прогресу.

Сезонний таймер та закінчення сезону

Таймер зворотного відліку нагнітає urgency. Відображається в головному меню та на екрані Battle Pass. За 3 дні до кінця — push-повідомлення: «До кінця сезону 3 дні, тобі залишилося X рівнів».

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

Що входить в роботу

В процесі реалізації ми надаємо:

  • Повну серверну документацію по API
  • Код клієнтської інтеграції на Swift та Kotlin
  • Інструкцію з налаштування IAP в консолях App Store та Google Play
  • 30-денну підтримку після релізу

Строки та етапи

Базова реалізація (без підписки, без skip levels) — 5 днів. Повна система з підпискою, skip levels, gifting та аналітикою — 2–3 тижні. Ми гарантуємо дотримання строків та прозору звітність.

Зв'яжіться з нами для обговорення вашого проєкту — ми допоможемо реалізувати Battle Pass, який утримає гравців та збільшить дохід.