Бэкенд для вашей игры на Unity

Аккаунты игроков, таблицы лидеров, удалённая конфигурация, облачные сохранения и ежедневные награды — один Unity SDK, одна панель управления и запуск за несколько минут.

Бесплатный тариф на 1 000 игроков. Банковская карта не нужна.

Один бэкенд для любого движка

Мгновенный гостевой вход, который сохраняется между запусками, а затем привязка к email или Google на защищённой веб-странице — вместе со всем прогрессом.

ИгрокВходcoins
NovaGoogle1 240
KaitoEmail860
LunaГость410
RakaGoogle1 975
MiraГость95
POST/v1/auth/guest
{ "ok": true, "auth_method": "guest", "player": { "player_id": "player_3f9c…", "display_name": "Guest 4821" } }

Несколько строк кода в вашем движке

Выполните вход игрока, отправьте результат и получите актуальную конфигурацию. Каждый вызов возвращает ответ, а не выбрасывает исключение.

Unity
C# SDK для Unity 2021.3+ с async, корутинами и сценой Starter.
Godot
Аддон на GDScript для Godot 4.2+ с автозагрузкой и настройкой в редакторе.
Web / JavaScript
Один файл JavaScript для HTML5-игр, сайтов и Node.js.
REST API
Обычный HTTPS и JSON для любого другого движка или сервера.
using MajacloudSdk;
using UnityEngine;

public class GameStart : MonoBehaviour
{
    private async void Start()
    {
        // Restores the saved session or creates a guest
        var signIn = await Majacloud.Auth.SignInAnonymouslyAsync();
        if (!signIn.Ok)
        {
            Debug.LogWarning(signIn.Error.Message);
            return;
        }
        Debug.Log("Hello " + signIn.Value.DisplayName);

        await Majacloud.Leaderboards.SubmitScoreAsync("coins", 120);
        int damage = Majacloud.RemoteConfig.GetInt("enemy_damage", 25);
    }
}

Всё, что нужно live-игре

Каждый сервис работает сам по себе и через одни и те же вызовы SDK — от редактора до сборок для WebGL и мобильных устройств.

Меняйте игру без обновления

Каждое изменение версионируется и подписывается. Откатывайте любое значение в один клик — игры подхватят его при следующей загрузке конфигурации.

Удалённая конфигурация
Удалённая конфигурация
Текущая версия 14 RSA-SHA256
КлючТипЗначение
enemy_damagenumber30
player_speednumber4.5
double_xp_weekendbooleantrue
event_bannerstringLunar festival: 2× coins!
shopjson{"sale": 0.2}
enemy_damage 25 → 30Восстановить

Знайте каждого игрока

Мгновенный гостевой вход, который сохраняется между запусками, а затем привязка к email или Google на защищённой веб-странице — вместе со всем прогрессом.

Игроки
ИгрокВход
NovaGoogle
KaitoEmail
LunaГость
RakaGoogle
MiraГость
Nova
player_3f9c…
Кошелёк
coins1 240
gems15
Документы
progressr12
settingsr3

Облачные сохранения

Сохраняйте любой сериализуемый объект каждого игрока с ревизиями, чтобы два устройства никогда незаметно не перезаписали данные друг друга.

Облачные сохранения
Phone
PUT/v1/cloud/progress
{ "revision": 12, "data": { "level": 9 } }
200"revision": 13
Tablet
PUT/v1/cloud/progress
{ "revision": 12, "data": { "level": 8 } }
409revision_mismatch · current_revision 13

Отладка на реальных запросах

Дневной объём запросов и ошибки, а также каждый запрос со статусом, задержкой и ID запроса.

Логи
Объём запросов
7 дней
ЗапросСтатусЗадержка
POST/v1/leaderboards/coins/scores20034 ms
GET/v1/config30412 ms
PUT/v1/cloud/progress40921 ms
POST/v1/rewards/claim20019 ms
POST/v1/auth/refresh20018 ms

От нуля до первого запроса

  1. Создайте проект

    Зарегистрируйтесь, создайте проект и держите под рукой ID проекта и клиентский ключ. Стартовый контент добавится автоматически.

  2. Импортируйте Unity SDK

    Импортируйте .unitypackage, откройте Tools ▸ Majacloud ▸ Setup, вставьте ключи и проверьте подключение.

  3. Нажмите Play

    Сцена Starter выполняет вход, отправляет результаты, сохраняет прогресс, получает награду и читает конфигурацию — останется скопировать то, что вам нужно.

Не используете Unity? Тот же бэкенд работает с Godot, Web SDK.

1 240Space Runner
CoinsЕженедельный сброс
1Nova12 480
2Kaito12 290
3Luna12 010
4Raka11 840
5Mira11 620
Ежедневная наградаПолучить +50

Безопасность по умолчанию

То, что в игровом бэкенде обычно идёт не так, уже решено за вас.

  • Секретные ключи хранятся в виде хеша и показываются один раз; публичный клиентский ключ действует только от имени вошедших игроков.
  • Короткоживущие токены доступа, ротация токенов обновления и обнаружение их повторного использования.
  • Удалённая конфигурация подписывается RSA-SHA256 и проверяется на устройстве перед использованием.
  • Результаты, награды и кошельки проверяются на сервере — данные клиента не принимаются на веру.
  • Ограничение частоты запросов, дневные квоты и лог каждого запроса с его ID — для каждого проекта.
GET/v1/config200
{
  "ok": true,
  "version": 14,
  "configs": [
    { "key": "enemy_damage", "type": "number", "value": "30" },
    { "key": "double_xp_weekend", "type": "boolean", "value": "true" }
  ],
  "checksum": "9c41f0…e27b",
  "signature": "Kq3vR8yJ…Wm0=",
  "signature_algorithm": "rsa-sha256",
  "signing_key_id": "config-v1"
}

Простые ежемесячные тарифы

Оплата в рупиях через Midtrans: QRIS, электронные кошельки, банковский перевод или карта. Без автоматических списаний — продлевайте, когда удобно.

Free

Всё, что нужно для выпуска небольшой игры.

0 ₽ / мес.

 

  • 4 000 API-запросов в день
  • 1 000 аккаунтов игроков
  • 1 проектов
  • 1 таблиц лидеров на проект
  • 3 ключей удалённой конфигурации
  • 32 MB для облачных сохранений
Начать бесплатно

Starter

Запас для роста игр с настоящим сообществом.

≈ 161 ₽ / мес.

Оплата в рупиях: Rp29.000

  • 10 000 API-запросов в день
  • 10 000 аккаунтов игроков
  • 3 проектов
  • 3 таблиц лидеров на проект
  • 10 ключей удалённой конфигурации
  • 256 MB для облачных сохранений
Выбрать Starter

Max

Максимальная ёмкость для крупных и нагруженных игр.

≈ 1 661 ₽ / мес.

Оплата в рупиях: Rp299.000

  • Без ограничений API-запросов в день
  • Без ограничений аккаунтов игроков
  • 25 проектов
  • 30 таблиц лидеров на проект
  • 1000 ключей удалённой конфигурации
  • 10 GB для облачных сохранений
Выбрать Max

Лимиты действуют на аккаунт. При достижении лимита API возвращает понятную ошибку plan_limit — ничего не удаляется. Цены в RUB указаны приблизительно. Средства списываются в индонезийских рупиях (IDR) через Midtrans, а итоговый курс определяет ваш банк или электронный кошелёк.

Вопросы

Какие версии Unity поддерживаются?

Unity 2021.3 LTS и новее, включая Unity 6. У SDK нет сторонних зависимостей, он работает со встроенным конвейером рендеринга, URP и HDRP.

Работает ли SDK в WebGL и на мобильных устройствах?

Да. SDK не использует потоки, поэтому асинхронные вызовы работают в WebGL, на Android и iOS. У каждого async-метода есть и вариант для корутин.

Можно ли использовать его с Godot или на сайте?

Да. Основной SDK — для Unity, но есть и аддон для Godot 4, и JavaScript SDK без зависимостей для HTML5-игр, сайтов и серверов на Node.js. Все они работают с одним и тем же REST API, поэтому его можно вызывать и из любого другого движка.

Что происходит, когда игрок офлайн?

Удалённая конфигурация продолжает работать из проверенного локального кеша, гостевая сессия восстанавливается при следующем запуске, а каждый вызов вместо исключения возвращает результат с кодом ошибки.

Что будет, когда я достигну лимита тарифа?

Новые объекты отклоняются с ошибкой plan_limit, которую игра может показать. Существующие игроки и данные не затрагиваются, а переход на старший тариф сразу снимает ограничение.

Как устроена оплата?

Выберите тариф и оплатите один месяц через Midtrans. Повторная оплата того же тарифа добавляет ещё месяц. Перед окончанием периода мы пришлём напоминание на email.

Можно ли просматривать и удалять данные игроков?

Да. В панели управления видны все игроки с их результатами, сохранениями и кошельком, и любого из них можно удалить. При удалении проекта удаляются все его данные.

Добавьте онлайн-функции в свою игру уже сегодня

Начать можно бесплатно. До первого запроса — считаные минуты.