Настройка MCE Online
MCE Online добавляет полноценный MMORPG-слой к Monster Capture Engine с использованием Nakama в качестве бэкенда. Это руководство проведёт вас через настройку сервера, конфигурацию клиента и тестирование подключения.
Доступно в уровне Online и выше.
Что такое Nakama?
Nakama -- это игровой сервер с открытым исходным кодом, предоставляющий:
- Аутентификацию пользователей (email, устройство, SSO).
- Мультиплеер в реальном времени (WebSockets).
- Серверно-авторитетную игровую логику (RPC).
- Матчмейкинг с рейтингами на основе ELO.
- Таблицы лидеров, достижения и живые события.
- Облачные сохранения и хранилище.
- Чат, друзья, гильдии.
MCE Online оборачивает Nakama 18 специализированными сервисами для жанра захвата монстров.
Предварительные требования
- MCE Core установлен и работает.
- Docker Desktop (для локальной разработки) или размещённый экземпляр Nakama.
- Дополнение MCE Online импортировано в ваш проект.
Шаг 1: Запуск сервера Nakama
Локальная разработка (Docker)
MCE включает docker-compose.yml для локальной Nakama:
# Из корня вашего проекта или директории сервера MCE_Online
docker-compose up -d
Это запускает:
- Сервер Nakama на порту 7350 (gRPC) и 7351 (HTTP/консоль).
- CockroachDB как базу данных на порту 26257.
Доступ к консоли администратора Nakama: http://localhost:7351
Учётные данные администратора по умолчанию:
- Имя пользователя:
admin - Пароль:
password
Конфигурация Docker по умолчанию предназначена только для разработки. Для продакшена используйте размещённый экземпляр Nakama (Heroic Cloud или самостоятельное размещение с надлежащей конфигурацией безопасности).
Размещённый (Heroic Cloud)
- Создайте аккаунт на heroiclabs.com.
- Создайте новый проект Nakama.
- Запишите URL сервера и ключ сервера из панели управления.
Шаг 2: Настройка клиента Unity
Ассет OnlineConfig
MCE Online использует ScriptableObject OnlineConfig для настроек подключения:
- Перейдите к
Assets/MCE_Online/Resources/OnlineConfig.asset. - Если его нет, создайте:
Assets > Create > MCE Online > Online Config.
Настройте следующие поля:
| Поле | Описание | По умолчанию (локально) |
|---|---|---|
| Server Host | Имя хоста сервера Nakama | localhost |
| Server Port | HTTP-порт | 7350 |
| Server Key | API-ключ (из консоли Nakama) | defaultkey |
| Use SSL | Включить HTTPS/WSS | false (локально), true (продакшен) |
OnlineConfig также содержит настройки:
- Auto-Connect: Подключаться ли автоматически при запуске игры.
- Reconnection: Настройки экспоненциального отката для разорванных подключений.
- Timeout: Длительность тайм-аута запросов.
- Feature Toggles: Включение/отключение определённых онлайн-функций.
Включение символа MCE_ONLINE
MCE Online требует символ скриптинга MCE_ONLINE:
- Перейдите в
Edit > Project Settings > Player > Other Settings > Scripting Define Symbols. - Добавьте
MCE_ONLINEв список. - Нажмите Apply.
Это активирует все пути кода, связанные с онлайн-функционалом.
Шаг 3: Развёртывание серверног о кода
MCE Online включает серверные модули TypeScript для Nakama:
MCE_Online/
Server/
src/
main.ts # Точка входа, регистрация RPC
battle.ts # Серверно-авторитетные RPC боёв
gtl.ts # RPC Global Trade Link
housing.ts # RPC системы жилища
tsconfig.json
package.json
Развёр тывание на Nakama
- Соберите серверные модули:
cd MCE_Online/Server
npm install
npm run build
- Скопируйте собранный JS в директорию
data/modules/Nakama. - Перезапустите Nakama для загрузки модулей.
Для Docker docker-compose.yml обычно монтирует директорию модулей:
volumes:
- ./MCE_Online/Server/dist:/nakama/data/modules
Шаг 4: NakamaManager
NakamaManager -- синглтон, управляющий подключением:
- Создаётся автоматически при запуске через
[RuntimeInitializeOnLoadMethod]. - Управляет 18 сервисами (Auth, Battle, Economy, Social и т.д.).
- Обрабатывает переподключение с экспоненциальным откатом.
- Маршрутизирует всю коммуникацию Nakama через очередь основного потока (потокобезопасно).
Вам не нужно создавать или настраивать NakamaManager вручную. Он читает из OnlineConfig и инициализирует себя сам.