Настройка серверной части и бэкенда для игр
Мы интегрируем и настраиваем игровой backend под конкретный жанр и бюджет. Игровой сервер в реальном времени обрабатывает 20–60 тиков в секунду от каждого из 16 одновременных игроков — требования к latency, throughput и uptime принципиально отличаются от привычного веб-бэкенда. Ошибка в выборе между managed game backend и собственным dedicated server обнаруживается при первом нагрузочном тесте.
Как выбрать между managed backend и dedicated server?
Для turn-based и casual игр (карточные, головоломки, party games) достаточно managed backend: PlayFab (Microsoft) или Nakama Cloud (Heroic Labs). Они закрывают авторизацию, экономику, таблицы лидеров, chat и matchmaking без написания серверного кода. Для real-time action (шутеры, файтинги, гонки) нужен dedicated game server — процесс, который запускает Unity или Unreal в headless-режиме и авторитетно обрабатывает физику, AI и логику игры.
Архитектура dedicated game server
Unity Dedicated Server build — отдельный build target без графики, доступный в последних LTS-версиях. Server-side код помечается #if UNITY_SERVER. Логика физики, коллизий, AI и расчёт урона выполняется исключительно на сервере. Клиент отправляет только input и получает state updates.
Варианты хостинга для dedicated server
- Unity Gaming Services Multiplay: managed, auto-scaling, pay-per-hour.
- AWS GameLift: зрелое решение с флотилиями серверов, auto-scaling и FlexMatch matchmaking.
- Собственные VPS через Docker + orchestrator: дешевле, но требует DevOps-компетенций.
GameLift FlexMatch собирает игроков по skill, latency и региону, запускает сервер под сессию и выдаёт клиентам connection info. Интеграция в Unity через AWS SDK.
Nakama как game backend
Nakama — open source game server, закрывающий 80% потребностей мобильного и PC мультиплеера без написания собственного backend-кода. Функциональность из коробки: real-time multiplayer (WebSocket), matchmaking, chat, leaderboards, tournaments, player profiles, virtual economy, push-уведомления.
Разворачивается через Docker Compose за несколько часов. Unity SDK официальный и документированный. Кастомная логика — через Server-side modules на TypeScript или Go (Lua deprecated). TypeScript-модули компилируются и деплоятся без перезапуска сервера.
Реальный кейс: мобильная карточная игра PvP 1v1. Требования: matchmaking, ELO-рейтинг, хранение replay, anti-cheat через validation action. Выбрали Nakama self-hosted на VPS (для 500 MAU) + кастомный TypeScript-модуль для валидации ходов и расчёта ELO. Время разработки серверной части — 3 недели вместо оценки в 8 недель при custom backend. Пиковая нагрузка в 500 одновременных юзеров с latency до 50ms подтвердила стабильность. Более 5 лет опыта нашей команды в игровом backend подтверждают: Nakama — оптимальный выбор для инди и мидкор проектов.
PlayFab для casual и mobile игр
PlayFab (Microsoft) — managed game backend с богатой функциональностью: Player Profiles, Cloud Scripts (Azure Functions), Economy V2 (валюта, каталог, инвентарь), Leaderboards, Segments для push и A/B тестов, Matchmaking.
Ценовая модель: первые 1000 MAU бесплатно, далее по MAU. Для гипер-казуального проекта с 100k MAU cost может быть значительным, но для мидкора с монетизацией обычно оправдан.
Важно: Cloud Scripts выполняются server-side, что позволяет безопасно проводить операции с валютой, проверять IAP receipts и применять промокоды. Как пишет Microsoft в документации: Cloud Scripts выполняются server-side — никогда не доверяем клиенту операции с экономикой, только через Cloud Script.
Когда выбирать Nakama, а когда PlayFab?
| Функция | Nakama | PlayFab |
|---|---|---|
| Real-time multiplayer | WebSocket | Photon / Direct |
| Matchmaking | Встроенный | FlexMatch (GameLift) |
| Экономика | Virtual economy | Economy V2 |
| Cloud-функции | TypeScript | Azure Functions |
| Ценообразование | Self-hosted / Cloud | pay-per-MAU |
Nakama подходит для инди-проектов с жёстким контролем данных и кастомной логикой. PlayFab — для быстрой интеграции в экосистему Microsoft и managed-инфраструктуры.
Структура backend для типичного мобильного мультиплеера
Client (Unity) ↕ WebSocket (real-time game data) Game Server (Unity Headless / Custom) ↕ REST/gRPC Game Backend (Nakama / PlayFab) ↓ Database (PostgreSQL / CockroachDB) Game Server — авторитетная игровая логика, живёт пока длится матч, затем умирает. Game Backend — постоянный: профили, экономика, таблицы, авторизация. Разделение обязательно: game server не должен знать о монетизации, backend не должен содержать игровую физику.
Процесс работы
- Аналитика: определяем жанр, целевое количество игроков, требования к real-time, бюджет инфраструктуры.
- Проектирование: выбираем стек (Nakama/PlayFab/dedicated server), проектируем схему данных и API.
- Реализация: настройка backend, интеграция с Unity/Unreal, разработка кастомных модулей.
- Тестирование: load testing с k6 или Locust, симуляция пиковой нагрузки, проверка latency и stability.
- Деплой: разворачиваем стейджинг, идентичный продуктиву (Docker Compose/Kubernetes). Производственная среда отличается только scale — не конфигурацией.
Ориентировочные сроки
| Масштаб задачи | Сроки |
|---|---|
| Nakama self-hosted + базовая интеграция в Unity | 1–2 недели |
| PlayFab integration (auth + economy + leaderboards) | 2–3 недели |
| Dedicated game server (Unity headless) + hosting | 3–6 недель |
| Полный backend для multiplayer (server + meta-layer) | 6–12 недель |
Что входит в работу
- Документация: схема API, описание эндпоинтов, инструкция по деплою.
- Доступы: репозиторий с кодом, credentials к стейджингу и продуктиву.
- Обучение: проведём сессию для команды по работе с backend.
- Поддержка: гарантийная поддержка 1 месяц после сдачи.
Стоимость рассчитывается индивидуально после анализа требований и инфраструктурного бюджета. Получите консультацию по выбору стека — свяжитесь с нами.






