Configuracion de MCE Online
MCE Online agrega una capa MMORPG completa al Monster Capture Engine usando Nakama como backend. Esta guia le acompana en la configuracion del servidor, la configuracion del cliente y las pruebas de conectividad.
Disponible en el nivel Online y superiores.
Que es Nakama?
Nakama es un servidor de juegos de codigo abierto que proporciona:
- Autenticacion de usuarios (correo, dispositivo, SSO).
- Multijugador en tiempo real (WebSockets).
- Logica de juego con autoridad del servidor (RPCs).
- Emparejamiento con clasificaciones basadas en ELO.
- Tablas de clasificacion, logros y eventos en vivo.
- Guardado en la nube y almacenamiento.
- Chat, amigos, gremios.
MCE Online envuelve Nakama con 18 servicios especializados para el genero de captura de monstruos.
Prerrequisitos
- MCE Core instalado y funcionando.
- Docker Desktop (para desarrollo local) o una instancia de Nakama alojada.
- Complemento MCE Online importado en su proyecto.
Paso 1: Iniciar el servidor Nakama
Desarrollo local (Docker)
MCE incluye un docker-compose.yml para Nakama local:
# From your project root or the MCE_Online server directory
docker-compose up -d
Esto inicia:
- Servidor Nakama en el puerto 7350 (gRPC) y 7351 (HTTP/consola).
- CockroachDB como base de datos en el puerto 26257.
Acceda a la consola de administracion de Nakama en: http://localhost:7351
Credenciales de administrador predeterminadas:
- Usuario:
admin - Contrasena:
password
La configuracion de Docker predeterminada es solo para desarrollo. Para produccion, use una instancia de Nakama alojada (Heroic Cloud o auto-alojada con configuracion de seguridad adecuada).
Alojado (Heroic Cloud)
- Cree una cuenta en heroiclabs.com.
- Cree un nuevo proyecto de Nakama.
- Anote la URL del servidor y la clave del servidor del panel de control.
Paso 2: Configurar el cliente de Unity
Asset OnlineConfig
MCE Online usa un ScriptableObject OnlineConfig para los ajustes de conexion:
- Navegue a
Assets/MCE_Online/Resources/OnlineConfig.asset. - Si no existe, creelo:
Assets > Create > MCE Online > Online Config.
Configure los siguientes campos:
| Campo | Descripcion | Valor local predeterminado |
|---|---|---|
| Server Host | Nombre de host del servidor Nakama | localhost |
| Server Port | Puerto HTTP | 7350 |
| Server Key | Clave de API (de la consola de Nakama) | defaultkey |
| Use SSL | Habilitar HTTPS/WSS | false (local), true (produccion) |
El OnlineConfig tambien contiene ajustes para:
- Auto-Connect: Si conectarse automaticamente al iniciar el juego.
- Reconexion: Ajustes de retroceso exponencial para conexiones perdidas.
- Timeout: Duracion del timeout de solicitudes.
- Toggles de funcionalidades: Habilitar/deshabilitar funcionalidades online especificas.
Habilitar el define MCE_ONLINE
MCE Online requiere el simbolo de scripting define MCE_ONLINE:
- Vaya a
Edit > Project Settings > Player > Other Settings > Scripting Define Symbols. - Anade
MCE_ONLINEa la lista. - Haga clic en Apply.
Esto habilita todas las rutas de codigo relacionadas con online en el motor.
Paso 3: Desplegar codigo del lado del servidor
MCE Online incluye modulos de servidor en TypeScript para Nakama:
MCE_Online/
Server/
src/
main.ts # Entry point, RPC registration
battle.ts # Server-authoritative battle RPCs
gtl.ts # Global Trade Link RPCs
housing.ts # Housing system RPCs
tsconfig.json
package.json
Desplegar en Nakama
- Compile los modulos del servidor:
cd MCE_Online/Server
npm install
npm run build
- Copie la salida JS compilada al directorio
data/modules/de su Nakama. - Reinicie Nakama para cargar los modulos.
Para Docker, el docker-compose.yml tipicamente monta el directorio de modulos:
volumes:
- ./MCE_Online/Server/dist:/nakama/data/modules
Paso 4: NakamaManager
El NakamaManager es el singleton que gestiona la conexion:
- Creado automaticamente en tiempo de ejecucion via
[RuntimeInitializeOnLoadMethod]. - Gestiona 18 servicios (Auth, Battle, Economy, Social, etc.).
- Maneja la reconexion con retroceso exponencial.
- Enruta toda la comunicacion de Nakama a traves de una cola del hilo principal (thread-safe).
No necesita crear ni configurar el NakamaManager manualmente. Lee del OnlineConfig y se inicializa a si mismo.
Estados de conexion
Disconnected -> Connecting -> Connected
| |
Offline Disconnected
^ ^
(reconnect) (connection lost)
| Estado | Descripcion |
|---|---|
| Disconnected | Sin conexion, sin intento |
| Connecting | Intentando conectar o reconectar |
| Connected | Conexion activa, todos los servicios disponibles |
| Offline | Fallo al conectar, operando en modo sin conexion |
Paso 5: Probar la conectividad
Prueba rapida
- Inicie Nakama (Docker o alojado).
- Abra su proyecto de Unity.
- Entre en Modo de juego.
- Verifique la consola para mensajes de conexion:
[NakamaManager] Connecting to localhost:7350...
[NakamaManager] Connected successfully. Session ID: xxxx
Script de prueba de conexion
using UnityEngine;
public class OnlineConnectionTest : MonoBehaviour
{
private void Start()
{
// NakamaManager auto-creates itself
// Check connection state after a short delay
Invoke(nameof(CheckConnection), 3f);
}
private void CheckConnection()
{
var nakama = NakamaManager.Instance;
Debug.Log($"Connection State: {nakama.ConnectionState}");
Debug.Log($"Session Valid: {nakama.IsSessionValid}");
}
}
Consola de administracion
Mientras esta conectado, verifique en la consola de administracion de Nakama (http://localhost:7351):
- Vaya a Users: deberia ver la cuenta de dispositivo creada automaticamente.
- Vaya a Runtime Modules: deberia ver los modulos de servidor MCE cargados.
- Vaya a API Explorer: pruebe RPCs directamente.
Resumen de servicios online
MCE Online proporciona 18 servicios:
| Servicio | Descripcion |
|---|---|
AuthService | Autenticacion por correo, dispositivo, SSO |
SessionManager | Persistencia y renovacion de tokens |
WorldSyncService | Movimiento de jugadores en tiempo real, filtrado AOI |
PlayerNetworkEntity | Representacion de jugador en red |
BattleServices | PvP con autoridad del servidor, emparejamiento |
NetworkedBattleManager | Orquestacion de batalla online |
EconomyServices | Global Trade Link, billetera, tienda |
SocialServices | Chat, gremios, amigos, comercio |
HousingService | CRUD de viviendas de jugadores |
PersistenceAndSystems | Guardado en la nube, respaldos |
AntiCheatManager | Validacion de velocidad, auditoria de inventario |
EventService | Eventos en vivo |
LeaderboardService | Clasificaciones y puntuaciones |
AchievementService | Seguimiento de logros |
ModLoader | Gestion de mods del lado del servidor |
OnlineCommandBridge | Conecta acciones online a CommandGraph |
OnlineSceneBootstrapper | Ciclo de vida de escenas online |
Cada servicio esta documentado en su propia guia en esta seccion.
Solucion de problemas
| Problema | Solucion |
|---|---|
| "Connection refused" | Asegurese de que Nakama esta ejecutandose (docker ps para verificar) |
| "Invalid server key" | Verifique que OnlineConfig.ServerKey coincide con la configuracion de Nakama |
Errores de MCE_ONLINE | Asegurese de que el simbolo de scripting define esta establecido |
| Timeout al conectar | Verifique ajustes de firewall, verifique host/puerto del servidor |
| Errores de RPC "Module not found" | Despliegue los modulos TypeScript del lado del servidor y reinicie Nakama |
| Errores SSL en produccion | Asegurese de que UseSSL = true y certificados validos |
Siguientes pasos
- Autenticacion -- Configure cuentas de usuario y flujos de inicio de sesion.
- Sincronizacion del mundo -- Habilite el mundo multijugador en tiempo real.
- Batallas PvP -- Batallas online con autoridad del servidor.
- Economia -- Comercio, tiendas y moneda.