Уявіть: ви випустили мобільну гру, а через тиждень гравці почали скаржитися, що золото зникає, лідерборди не оновлюються, а push-сповіщення не приходять. Бекенд не витримує навантаження, а на його підтримку йде 50% часу команди. Знайомий біль? Ми стикалися з цим десятки разів. Конкретний кейс: RPG-гра з піком 10 000 CCU — власний сервер впав через годину, міграція на PlayFab вирішила проблему за тиждень, витрати на інфраструктуру знизилися в 3 рази. Вихід — PlayFab, хмарний BaaS від Microsoft, заточений під ігри.
PlayFab закриває 80% типових потреб мобільного бекенду «з коробки»: аутентифікація, інвентар, віртуальні валюти, магазин, лідерборди, матчмейкинг, Push-сповіщення, серверна логіка через Cloud Script. Але головний ризик — не технічний. Якщо архітектура даних спроектована неправильно (структура Title Data, Player Data, Catalog), потім переробляється болісно. На старті варто витратити час на проектування. Наш досвід — понад 20 успішних інтеграцій — гарантує, що ви не потрапите в цю пастку.
Чому PlayFab, а не власний бекенд?
Порівняйте: власний бекенд — це розробка API, бази даних, серверної логіки, адмінки, моніторингу. Мінімум 3 місяці роботи команди з двох backend-розробників і devops. PlayFab дає готові рішення, скорочуючи час до 1–2 тижнів. За статистикою, використання PlayFab знижує витрати на інфраструктуру в 2–3 рази та економить до 40% бюджету на розробку бекенду. PlayFab сертифікований Microsoft і відповідає стандартам безпеки SOC 2 та ISO 27001. В одному з проєктів ми замінили Firebase на PlayFab — продуктивність зросла на 30% за рахунок оптимізованої черги повідомлень.
| Критерій | Власний бекенд | PlayFab |
|---|---|---|
| Час на запуск | 3+ місяці | 1–2 тижні |
| Витрати на розробку | Високі (команда 2–3 ос.) | Низькі (підписка + інтеграція) |
| Підтримка та масштабування | Вимагає devops | Автоматичне |
| Безпека | Налаштовується вручну | Вбудована (SOC 2, ISO 27001) |
Як Cloud Script захищає економіку гри?
Cloud Script — серверний JavaScript, що виконує критичні операції. Якщо нараховувати валюту прямо з клієнта, будь-хто зможе додати собі золото через сніфер. Усі критичні операції (нагороди, крафт, покупки) мають йти через серверні функції. Приклад: функція AddDailyReward перевіряє час останнього отримання, нараховує валюту та записує в Player Data. Клієнт лише викликає хмарну функцію — прямого доступу до бази гравця немає. PlayFab підтримує атомарні транзакції: покупка предмета списує валюту та видає інвентар за один серверний виклик.
Які помилки допускають при інтеграції PlayFab?
Перша і найнебезпечніша — ігнорування Cloud Script. Друга — неправильна структура Catalog. Без продуманих ItemId та CustomData складно додавати нові предмети. Використовуйте ієрархію типів і версійність. Третя — відсутність кешування Title Data. Кожен виклик GetTitleData — мережевий запит. Кешуйте глобальні конфіги на клієнті та оновлюйте по таймеру. Ми гарантуємо, що ваш проєкт не зіткнеться з цими проблемами — у нашому портфоліо понад 20 успішних інтеграцій PlayFab для ігор різних жанрів. Зв'яжіться з нами — ми безкоштовно оцінимо ваш проєкт і вкажемо на потенційні ризики.
Як ми налаштовуємо PlayFab під ваш проєкт?
Ініціалізація SDK та аутентифікація
using PlayFab; using PlayFab.ClientModels; public class PlayFabManager : MonoBehaviour { public static PlayFabManager Instance { get; private set; } public string PlayFabId { get; private set; } void Awake() { PlayFabSettings.staticSettings.TitleId = "YOUR_TITLE_ID"; } // Анонімна авторизація через Device ID public void LoginAnonymous(Action onSuccess, Action<string> onError) { #if UNITY_IOS PlayFabClientAPI.LoginWithIOSDeviceID(new LoginWithIOSDeviceIDRequest { DeviceId = SystemInfo.deviceUniqueIdentifier, CreateAccount = true, InfoRequestParameters = new GetPlayerCombinedInfoRequestParams { GetPlayerProfile = true, GetUserInventory = true, GetUserVirtualCurrency = true } }, result => { PlayFabId = result.PlayFabId; ApplyPlayerData(result.InfoResultPayload); onSuccess?.Invoke(); }, error => onError?.Invoke(error.GenerateErrorReport())); #elif UNITY_ANDROID PlayFabClientAPI.LoginWithAndroidDeviceID(new LoginWithAndroidDeviceIDRequest { AndroidDeviceId = SystemInfo.deviceUniqueIdentifier, CreateAccount = true, InfoRequestParameters = new GetPlayerCombinedInfoRequestParams { GetPlayerProfile = true, GetUserInventory = true, GetUserVirtualCurrency = true } }, result => { PlayFabId = result.PlayFabId; ApplyPlayerData(result.InfoResultPayload); onSuccess?.Invoke(); }, error => onError?.Invoke(error.GenerateErrorReport())); #endif } } Віртуальні валюти та Cloud Script
PlayFab підтримує до 10 валют на Title. Налаштуємо GO (Gold), GE (Gems), EN (Energy). Поповнення тільки через Cloud Script:
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest { FunctionName = "AddDailyReward", FunctionParameter = new { rewardType = "daily_login" } }, result => { var newBalance = JsonUtility.FromJson<CurrencyResult>(result.FunctionResult.ToString()); CurrencyManager.Instance.UpdateBalance(newBalance); }, error => { }); Покупка предмета атомарна: PlayFab списує валюту та додає предмет в інвентар за один серверний виклик.
Title Data та кешування
Player Data — дані конкретного гравця (прогрес, налаштування). Title Data — глобальні конфіги (баланс-таблиці, подієві розклади). Кешуємо Title Data:
PlayFabClientAPI.GetTitleData(new GetTitleDataRequest { Keys = new List<string> { "balance_config", "event_schedule" } }, result => { var balanceJson = result.Data["balance_config"]; BalanceManager.Instance.ApplyConfig(balanceJson); }, null); Що входить в інтеграцію PlayFab?
| Компонент | Деталі |
|---|---|
| Налаштування PlayFab Title | Валюти, Catalog, Title Data, політики аутентифікації |
| Інтеграція SDK | Unity / iOS / Android, авторизація (Device ID, Email, Google Play / Game Center) |
| Player Data | Збереження/завантаження прогресу, синхронізація між пристроями |
| Інвентар та магазин | Віртуальні валюти, покупки через StoreKit 2 / Billing 6 |
| Cloud Script | Нагороди, квести, крафт, верифікація покупок |
| Лідерборди та статистика | Таблиці рекордів, агрегація метрик |
| Push-сповіщення | APNs / FCM через PlayFab |
| Матчмейкинг | Багатокористувацькі кімнати (опціонально) |
Скільки часу займає інтеграція PlayFab?
Базова інтеграція (авторизація + інвентар + лідерборди): 5–7 днів. Повний ігровий бекенд (квести, крафт, магазин, матчмейкинг): 3–6 тижнів. Вартість розраховується індивідуально залежно від складності архітектури. Отримайте консультацію з інтеграції PlayFab — зв'яжіться з нами для безкоштовної оцінки вашого проєкту.
Засновано на офіційній документації PlayFab.







