Saltar al contenido principal

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
Produccion

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)

  1. Cree una cuenta en heroiclabs.com.
  2. Cree un nuevo proyecto de Nakama.
  3. 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:

  1. Navegue a Assets/MCE_Online/Resources/OnlineConfig.asset.
  2. Si no existe, creelo: Assets > Create > MCE Online > Online Config.

Configure los siguientes campos:

CampoDescripcionValor local predeterminado
Server HostNombre de host del servidor Nakamalocalhost
Server PortPuerto HTTP7350
Server KeyClave de API (de la consola de Nakama)defaultkey
Use SSLHabilitar HTTPS/WSSfalse (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:

  1. Vaya a Edit > Project Settings > Player > Other Settings > Scripting Define Symbols.
  2. Anade MCE_ONLINE a la lista.
  3. 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

  1. Compile los modulos del servidor:
cd MCE_Online/Server
npm install
npm run build
  1. Copie la salida JS compilada al directorio data/modules/ de su Nakama.
  2. 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)
EstadoDescripcion
DisconnectedSin conexion, sin intento
ConnectingIntentando conectar o reconectar
ConnectedConexion activa, todos los servicios disponibles
OfflineFallo al conectar, operando en modo sin conexion

Paso 5: Probar la conectividad

Prueba rapida

  1. Inicie Nakama (Docker o alojado).
  2. Abra su proyecto de Unity.
  3. Entre en Modo de juego.
  4. 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):

  1. Vaya a Users: deberia ver la cuenta de dispositivo creada automaticamente.
  2. Vaya a Runtime Modules: deberia ver los modulos de servidor MCE cargados.
  3. Vaya a API Explorer: pruebe RPCs directamente.

Resumen de servicios online

MCE Online proporciona 18 servicios:

ServicioDescripcion
AuthServiceAutenticacion por correo, dispositivo, SSO
SessionManagerPersistencia y renovacion de tokens
WorldSyncServiceMovimiento de jugadores en tiempo real, filtrado AOI
PlayerNetworkEntityRepresentacion de jugador en red
BattleServicesPvP con autoridad del servidor, emparejamiento
NetworkedBattleManagerOrquestacion de batalla online
EconomyServicesGlobal Trade Link, billetera, tienda
SocialServicesChat, gremios, amigos, comercio
HousingServiceCRUD de viviendas de jugadores
PersistenceAndSystemsGuardado en la nube, respaldos
AntiCheatManagerValidacion de velocidad, auditoria de inventario
EventServiceEventos en vivo
LeaderboardServiceClasificaciones y puntuaciones
AchievementServiceSeguimiento de logros
ModLoaderGestion de mods del lado del servidor
OnlineCommandBridgeConecta acciones online a CommandGraph
OnlineSceneBootstrapperCiclo de vida de escenas online

Cada servicio esta documentado en su propia guia en esta seccion.

Solucion de problemas

ProblemaSolucion
"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_ONLINEAsegurese de que el simbolo de scripting define esta establecido
Timeout al conectarVerifique 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 produccionAsegurese de que UseSSL = true y certificados validos

Siguientes pasos