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

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

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

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

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

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

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

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

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

Релиз пройшов, білд в сторах — і розуміємо, що хочемо поміняти баланс: підвищити вартість ресурсу, знизити шкоду босса, скорегувати частоту спавну. Без Remote Config це патч, ревю Apple/Google, очікування. З ним — правка значення в консолі та миттєве застосування для потрібного сегменту гравців.

Firebase Remote Config — не просто key-value сховище. Правильно спроектована схема параметрів перетворює його в повноцінний інструмент A/B-тестування та managed rollout.

Де звичайно ломається «очевидна» інтеграція

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

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

Третя — відсутність fallback-значень на клієнті. Якщо Remote Config недоступний (офлайн, помилка мережі), гра повинна працювати з вшитими 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.

Стек та інструменти

На 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-файл в білді.

Етапи роботи

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

Вартість розраховується індивідуально після аналізу проекту та поточної архітектури.

Що варто перевірити перед початком

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