Интеграция GameSparks для серверной части мобильной игры
GameSparks — облачный игровой бэкенд от Amazon (AWS). В 2022 году Amazon перевёл GameSparks в режим ограниченной поддержки и объявил об окончании работы сервиса — создание новых игр через консоль AWS GameSparks закрыто с января 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 | Custom | Полный контроль |
Аудит данных — первый шаг миграции. GameSparks хранил данные в MongoDB-like структуре через Runtime Collections. Экспорт через GameSparks REST API или Bulk Jobs. Схема данных описывается заново под целевую СУБД.
Cloud Code → серверная логика. JavaScript из GameSparks переписывается на TypeScript (Nakama) или Azure Functions/AWS Lambda (PlayFab). Семантика запросов другая, но бизнес-логику можно переносить блок за блок.
Клиентский SDK. GameSparks SDK удаляется, добавляется 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 и данных. Стоимость рассчитывается индивидуально.







