Уявіть: ви випустили мобільну гру, а через тиждень гравці почали скаржитися, що золото зникає, лідерборди не оновлюються, а 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.







