Налаштування віддаленого керування параметрами (Remote Config) для ігор

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

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1Усі 242 послуг
Налаштування віддаленого керування параметрами (Remote Config) для ігор
Середній
~3 дні
Часті запитання

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

Які етапи розробки гри?

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1457
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    979
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    605
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    674
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    29

Реліз пройшов, білд у сторах — і ви розумієте, що хочете змінити баланс: збільшити вартість ресурсу, знизити шкоду боса, скоригувати частоту спавну. Без віддаленої конфігурації це тижневий цикл: патч, рев'ю Apple/Google, очікування. З ним — виправлення значення в консолі та миттєве застосування для потрібного сегменту гравців. Середній час доставки змін — 1–2 секунди після публікації. Використання Remote Config скорочує час випуску змін у 10 разів порівняно з традиційним патчем. За 8 років роботи з геймдев-проєктами ми впровадили віддалену конфігурацію у більш ніж 20 ігор, від гіперказуалок до RPG. Економія часу на патчі — до 90%, зниження витрат на QA при A/B-тестуванні ігор — до 60%.

Firebase Remote Config — не просто key-value сховище. Правильно спроєктована схема параметрів перетворює його на повноцінний інструмент A/B-тестування та Managed Rollout. Відповідно до документації, кешування за замовчуванням становить 12 годин.

Чому віддалена конфігурація критичний для live-операцій?

Типова помилка при самостійній інтеграції — складати всі параметри в один Default Config без структури. Через три місяці активної роботи з балансом у консолі Firebase накопичується 80+ параметрів з іменами на кшталт enemy_dmg_2, enemy_dmg_2_new, enemy_dmg_final. Жодного namespacing, жодної документації, параметри дублюються. У 95% проєктів-новачків ми знаходимо цю проблему.

Друга проблема — ігнорування кешу. remoteConfig.fetchAndActivate() за замовчуванням кешує значення на 12 годин. У продакшені це нормально, але в режимі розробки команда втрачає години, не розуміючи чому зміни в консолі не застосовуються. Мінімальний інтервал для dev-середовища виставляється через remoteConfig.settings.minimumFetchIntervalMillis = 0, і це потрібно робити через #if DEVELOPMENT флаги, а не забувати прибирати перед релізом.

Третя — відсутність fallback-значень на клієнті. Якщо віддалена конфігурація недоступний (офлайн, помилка мережі), гра повинна працювати з вшитими defaults, а не падати або видавати нульові значення балансу.

Як проєктувати схему параметрів?

Для середньої мобільної гри з кількома класами юнітів і кількома ігровими режимами оптимальна JSON-структура всередині одного параметра замість сотні плоских ключів. Один параметр balance_config містить JSON з вкладеною структурою:

{
  "enemies": {
    "goblin": { "hp": 120, "dmg": 15, "spawn_weight": 0.4 },
    "troll": { "hp": 400, "dmg": 35, "spawn_weight": 0.1 }
  },
  "economy": {
    "coin_multiplier": 1.2,
    "ad_reward_gems": 10
  }
}

На клієнті JSON парситься один раз при старті сесії та розкладається в ScriptableObject або статичний клас конфіга. Це зручніше, ніж 40 окремих викликів remoteConfig.GetValue("key").

Умови та персоналізація. Firebase Remote Config підтримує умови за платформою, версією застосунку, аудиторією (через Firebase Analytics), країною. Типовий сценарій: параметр first_purchase_bonus повертає 50 для нових користувачів (аудиторія new_user в Analytics) і 20 для решти. Це не A/B тест — це сегментована конфігурація параметрів, і налаштовується вона без змін клієнтського коду.

A/B-тести через Remote Config. Google Optimize застарів, Firebase A/B Testing інтегрований нативно. Створюємо експеримент прямо в консолі: варіант A — spawn_interval: 8.0, варіант B — spawn_interval: 5.0, метрика — retention D1. Розподіл 50/50, запуск на 10% аудиторії. Клієнтський код не знає про експеримент — він просто читає параметр spawn_interval.

Як працює Managed Rollout?

Managed Rollout — поетапне застосування конфігурації: спочатку на 1% аудиторії, потім збільшення до 5, 20, 50, 100%. Якщо на якомусь етапі метрики (retention, revenue, crash rate) просідають, відбувається автоматичний відкат до попередньої стабільної версії. Це знижує ризик від поганих налаштувань і дозволяє безпечно експериментувати навіть із критичними параметрами балансу.

Які інструменти використовуємо?

На Unity-проєктах використовуємо Firebase Unity SDK 11.x. Ініціалізація асинхронна — чекаємо FirebaseApp.CheckAndFixDependenciesAsync() перед першим fetch. На Unreal-проєктах Firebase Remote Config доступний через C++ SDK або плагін FirebaseFeatures (Epic Marketplace).

Для ігор на власному сервері замість Firebase піднімаємо GrowthBook або власне рішення на Redis + API: параметри зберігаються в Redis з TTL, клієнт отримує їх через REST при старті сесії, fallback — вшитий JSON-файл у білді.

Гарантуємо сумісність з Unity 2022+ та Unreal Engine 5. Над проєктами працюють інженери з сертифікацією Firebase. За 8 років досвіду та 5 років на ринку ми виконали понад 20 проєктів, середня оцінка клієнтів — 4.9/5.

Етапи роботи

  1. Аудит поточних хардкодів — шукаємо в проєкті значення, які повинні бути конфігурованими. Зазвичай це баланс юнітів, параметри економіки, feature flags, інтервали показу реклами. Економія часу на патчі — до 90%.
  2. Проєктування схеми — namespacing параметрів, JSON vs flat keys, версіонування конфіга.
  3. Інтеграція SDK — правильна ініціалізація, обробка офлайну, dev/prod конфіг інтервали.
  4. Налаштування умов та аудиторій — підключення до Firebase Analytics для сегментації.
  5. A/B тест пілот — налаштування першого експерименту, перевірка івентів у DebugView.
  6. Документація схеми — таблиця параметрів з описом, діапазонами значень, власником (геймдизайнер/програміст).

Що входить у результат

Складова Опис
Схема параметрів JSON-структура з namespacing, версіонуванням та fallback-значеннями
Інтеграція SDK Коректна ініціалізація, обробка офлайну, dev/prod конфіги
Налаштування умов Сегментація за країною, версією, аудиторією Analytics
A/B-експеримент Пілотний тест із метрикою retention/purchase
Документація Таблиця параметрів із власниками, діапазонами
Підтримка Консультації 2 тижні після впровадження

Вартість інтеграції починається від $1,500, економія ресурсів — до $8,000 на місяць. Часта помилка: дублювання хардкодів. Якщо в проєкті вже є часткова інтеграція Remote Config, часто виявляємо: параметри дублюють хардкоди в коді (значення з Remote Config ігнорується через помилку в ключі), умови в консолі налаштовані неправильно (відсоток аудиторії не сумується до 100), метрики A/B тесту не пробрасовуються в Analytics. Лікувати накопичений хаос довше, ніж вибудувати схему з нуля.

Зв'яжіться з нами для оцінки вашого проєкту. Замовте консультацію з інтеграції Remote Config — наші інженери проаналізують код і запропонують оптимальну схему.

Підтримка та розвиток ігор

Релиз — це не фінальний білд, а старт системи неперервної підтримки. У нашій практиці 80% проєктів без live ops втрачають до 30% аудиторії в перші два тижні: crash-рейтинг вище 1%, онбординг відсіває 40% нових гравців, контентні оновлення застрягають у рев'ю сторів на 3–4 дні. Ми вирішуємо це зв'язкою Remote Config, crash reporting та A/B-тестів. Зв'яжіться з нами — оцінка поточного стану проєкту займе один день.

Проблеми, які вирішує підтримка та розвиток ігор

  • Retention — без онбордингу за даними аналітики D1 падає до 45%. Ми перебудовуємо туторіал: скорочуємо кроки з 10 до 4, додаємо пропуск для повертаючих гравців. Результат: +18% до D3.
  • Контентна втома — якщо новий контент не виходить кожні 2–3 тижні, D30 падає на 25%. Вводимо сезонні події через Remote Config без нової збірки.
  • Технічний борг — міграція на Unity 6 LTS з попередньої версії знижує FPS-баги на 30%, але вимагає оновлення SDK (Firebase, Adjust, AppLovin). Відкладання призводить до блокування публікації через застарілі бібліотеки.

Live ops як головний інструмент підтримки ігор

Здатність змінювати поведінку гри без перевипуску додатку — основа сучасної пост-релізної стратегії. Правильно побудований pipeline дозволяє змінити баланс, включити івент або протестувати нову монетизаційну механіку за 15 хвилин, не чіпаючи збірку. За вісім років ми пройшли шлях від хотфіксів через стори до повноцінної live ops-архітектури, яка економить до 30% часу на контентні оновлення.

Архітектура Remote Config

Типова схема виглядає так:

Dashboard / CMS
      ↓
Remote Config Provider (Firebase / PlayFab)
      ↓
Game Client (fetch on session start + періодичний polling)
      ↓
Local Cache (fallback при відсутності мережі)

Firebase Remote Config — найбільш поширене рішення для мобільних ігор. Ключі зберігаються в консолі, клієнт отримує їх при старті сесії через RemoteConfig.FetchAndActivateAsync(). Важливий момент: Firebase кешує значення на 12 годин за замовчуванням — у продакшні потрібно явно налаштовувати minimumFetchInterval. Для живих івентів використовуємо minimumFetchInterval = 0 з ручним throttling на клієнті. Firebase Remote Config Documentation.

PlayFab дає більше можливостей для game-специфічних сценаріїв: Title Data, Player Data, CloudScript. Зручно для серверної валідації покупок, зберігання прогресу гравця та A/B-тестування сегментів. Якщо у гри є серверна складова (PvP, leaderboards, інвентар), PlayFab часто вигідніше Firebase за сукупністю функцій. PlayFab підтримує ключі до 1 МБ, що в 16 разів більше ліміту Firebase (64 КБ).

Типова структура ключів Remote Config

Ключ Тип Приклад значення
event_halloween_active bool true
event_halloween_end_ts long 1730332800
iap_sale_multiplier float 2.0
tutorial_skip_enabled bool false
daily_reward_sequence JSON [10, 20, 50, 100, 200]
ads_interstitial_cooldown_sec int 120

Порівняння Firebase Remote Config і PlayFab Title Data

Критерій Firebase Remote Config PlayFab Title Data
Максимальний розмір ключа 64 KB (загальний ліміт) 1 MB на ключ
Типи даних примітиви + JSON рядки (JSON всередині)
A/B-тестування вбудоване (Firebase A/B Testing) через CloudScript + сегменти
Безкоштовний ліміт 10M запитів/міс необмежено для базових викликів
Робота в офлайні кеш на 12 годин кеш на 1 годину (налаштовується)
Приклад налаштування ключа для сезонного івенту

Ключ event_config містить JSON з параметрами: active, end_ts, reward_multiplier. Клієнт завантажує при старті сесії. Якщо ключ відсутній або сервер недоступний — використовується кешоване значення з попередньої сесії. Це гарантує, що гра не «зламається» при проблемах з мережею.

Як Remote Config прискорює доставку контенту?

A/B-тести через Firebase дозволяють розподіляти користувачів за групами та збирати статистику по retention D1/D7, revenue і custom events. Один користувач завжди потрапляє в одну групу завдяки прив'язці до Installation ID. Якщо тест зав'язаний на монетизацію — додатково перевіряємо через Unity Analytics, що розподіл покупок випадковий. Середній ріст retention D7 після впровадження таких тестів — 12%.

Як ми моніторимо стабільність гри?

Без crash reporting ви дізнаєтеся про критичні баги з відгуків, а не з дашборду. Firebase Crashlytics — стандарт для мобільних ігор. Інтегрується через Firebase SDK, автоматично фіксує необроблені виключення C# та native crashes (включаючи IL2CPP).

Crash-free users rate — має бути вище 99.5% для стабільного проєкту. ANR rate — часта проблема при важких завантаженнях на головному потоці. Top crashes за кількістю зачеплених користувачів — не за кількістю подій.

Backtrace використовуємо для проєктів з нативним кодом або складною C++ складовою (Unreal, кастомні плагіни). Backtrace краще декодує символи для нативних крашів. Для Unity-проєктів налаштовуємо Unity Cloud Diagnostics — дає додатковий контекст по помилках движка.

Аналітика та ітерація контенту

Unity Analytics (колишній Unity Gaming Services Analytics) використовуємо для трекінгу воронок. Для більш складних сценаріїв — власний event pipeline з відправкою в BigQuery або ClickHouse. Мінімальний набір подій:

  • session_start / session_end
  • level_start / level_complete / level_fail
  • tutorial_step_N
  • iap_purchase / ad_watched
  • feature_unlocked

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

Що входить у підтримку та розвиток ігор

  • Налаштування Remote Config зі схемою ключів і документацією.
  • Інтеграція crash reporting (Firebase Crashlytics, Unity Cloud Diagnostics) з алертами.
  • Проведення A/B-тестів і аналіз результатів.
  • Контентні спринти: нові івенти, балансування, сезонний контент.
  • Щотижнева аналітика та звіти за метриками.
  • SLA для критичних багів — до 24 годин.

Процес роботи та терміни

Для проєктів на підтримці використовуємо виділений ритм: щотижневі звіти за метриками, спринти по 2 тижні для контентних апдейтів, черговий інженер на критичні баги з SLA до 24 годин. Всі зміни проходять через стейджинг-середовище перед деплоєм у прод.

Терміни впровадження live ops — від 2 до 4 тижнів залежно від складності та поточної архітектури. Вартість розраховується індивідуально, але в середньому економія на контентні оновлення складає 30–40% бюджету порівняно з традиційними хотфіксами (до $3000 щомісяця). Ми гарантуємо дотримання термінів і прозоре ціноутворення — замовте аудит вашого проєкту, і ми підготуємо кошторис за один день.

Отримати консультацію з налаштування підтримки та розвитку ігор — зв'яжіться з нами. Досвід супроводу понад 50 проєктів різного масштабу підтверджений сертифікованими спеціалістами Unity та PlayFab. Пишіть нам — ми проконсультуємо вас з будь-яких технічних питань.