Інтеграція GameSparks для серверної частини мобільної гри
GameSparks—хмарний ігровий бекенд від Amazon (AWS). У 2022 Amazon перевів GameSparks у режим обмеженої підтримки та оголосив про закінчення роботи сервісу—створення нових ігор через AWS GameSparks console закрито з січня 2024. Якщо проект уже використовує GameSparks, варіанти: підтримка та розширення існуючої інтеграції, або міграція на актуальний бекенд.
Існуюча інтеграція: що підтримувати
GameSparks на Unity використовував GS.GameSparksAvailable callback для ініціалізації та GameSparksAuthentication для входу:
GS.GameSparksAvailable = (available) => {
if (available) {
new DeviceAuthenticationRequest()
.SetDisplayName(playerName)
.Send(response => {
if (!response.HasErrors) {
// Успішна аутентифікація
var playerId = response.UserId;
}
});
}
};
Cloud Code (JavaScript на сервері GameSparks) обробляв бізнес-логіку: видачу валюти, валідацію ходів, leaderboard. Запит до Cloud Code—через LogEventRequest.
Підтримка існуючого проекту включає: оновлення SDK до останньої сумісної версії, усунення застарілих API, додавання нових cloud-script модулів у рамках існуючої архітектури.
Міграція з GameSparks
Для нових проектів та довгострокового розвитку—міграція на актуальний бекенд обов'язкова. Варіанти:
| Рішення | Тип | Особливості |
|---|---|---|
| Nakama | Self-hosted / Cloud | Open-source, TypeScript cloud code |
| PlayFab | Cloud (Microsoft) | Безплатний tier, Azure інтеграція |
| Unity Gaming Services | Cloud | Нативна Unity інтеграція |
| Go/Node.js App | Custom | Повний контроль |
Аудит даних—перший крок міграції. GameSparks зберігав дані у MongoDB-подібній структурі через Runtime Collections. Експорт через GameSparks REST API або Bulk Jobs. Схема даних переописується під цільову БД.
Cloud Code → серверна логіка. JavaScript з GameSparks переписується на TypeScript (Nakama) або Azure Functions/AWS Lambda (PlayFab). Семантика запитів інша, але бізнес-логіка переноситься блок за блоком.
Клієнтський SDK. SDK GameSparks видаляється, додаються SDK цільової платформи. Шар абстракції IGameBackend з методами Authenticate, SaveData, GetLeaderboard дозволяє замінити реалізацію без змін ігрової логіки.
Підтримка проектів на iOS та Android
Нативні SDK GameSparks для iOS (Objective-C/Swift) та Android (Java) офіційно не підтримуються. Нативні застосунки використовували REST API або WebSocket безпосередньо. Існуючі запити:
POST /rs/{credential}/{secret}/gsi
{
"@class": ".AuthenticationRequest",
"deviceId": "...",
"deviceOS": "IOS"
}
При міграції на PlayFab еквівалент—LoginWithIOSDeviceID / LoginWithAndroidDeviceID. Структури запитів відрізняються, але функціональність повністю покривається.
Графік
Підтримка та розширення існуючого GameSparks проекту: оцінюється по обсягу завдань. Аудит для міграції: 2-3 дні. Повна міграція GameSparks → Nakama або PlayFab: 3-8 тижнів залежно від обсягу Cloud Code та даних. Вартість розраховується індивідуально.







