logo
ReferenciaAPI

Eco

Fachada central de Eco para conexiones, canales, jugadores, objetos, datos, eventos y diagnóstico.

Eco

Eco es la fachada principal del sistema de red. Se inicializa como sistema de Pandora y concentra las operaciones que el código de juego necesita para trabajar con la sesión sin acceder directamente a los detalles del runtime.

Regla de uso

En gameplay utiliza Eco. Accede a Eco.Cliente, Servidor o ServidorJuego cuando necesites diagnóstico, integración o infraestructura avanzada.

Estado

MiembroResultado
Eco.EstaConectadobool, conexión activa
Eco.IntentandoConectarbool, intento de conexión
Eco.EstaEnAlgunCanalbool, pertenece a uno o más canales
Eco.IdJugadorint, ID del jugador local
Eco.NombreJugadorstring, nombre actual
Eco.Pinglatencia observada
Eco.JugadorJugador, participante local
Eco.Canalescolección de canales activos

Conexión

Firmas de uso habitual:

Eco.Conectar(string direccion, int puerto = 5127);
Eco.Conectar();
Eco.Desconectar();
Eco.Desconectar(float retraso);

Eco.Conectar() se utiliza cuando la sesión local ya tiene disponible el servidor correspondiente.

Canales

Eco.UnirseACanal(int idCanal, string nombreNivel, bool persistente, int limiteJugadores, string contraseña);
Eco.SalirDeCanal(int idCanal);
Eco.SalirDeTodosLosCanales();
Eco.ObtenerCanal(int idCanal);
Eco.EstaEnCanal(int idCanal);

Para crear o buscar una partida existen además las operaciones de creación y selección aleatoria de canal.

Multicanal

No utilices idUltimoCanal como sustituto de idCanal en una arquitectura multicanal. Pasa siempre el contexto de canal a las operaciones que lo necesiten.

Datos

Eco dispone de tres ámbitos de datos antes de llegar a los datos de Objeto:

Servidor → datos globales
Canal    → datos del ámbito de partida
Jugador  → datos del participante

Ejemplo:

Eco.EstablecerDatosJugador("Perfil/Nivel", 25);
int nivel = Eco.ObtenerDatosJugador<int>("Perfil/Nivel", 1);

Eco.EstablecerDatosCanal(10, "Reglas/Modo", "Arena");
string modo = Eco.ObtenerDatosCanal<string>(10, "Reglas/Modo", "Normal");

Los datos globales del servidor están sujetos a autorización cuando se modifican.

Objetos

Eco.Instanciar(
    10,
    "CreateAtPosition",
    "Player",
    false,
    posicion,
    rotacion
);

Para operaciones persistentes existen además exportación e importación de objetos.

Retorno y coordinación

Eco.EnviarConRetorno(() =>
{
    // Procesamiento remoto anterior ha alcanzado su retorno.
});

yield return Eco.EsperarRetorno();

Utiliza estos mecanismos para coordinar operaciones concretas, no para reemplazar la sincronización de estado.

Diagnóstico

Eco.Ping;
Eco.PaquetesEnviados;
Eco.PaquetesRecibidos;
Eco.BytesEnviados;
Eco.BytesRecibidos;
Eco.DimensionPaqueteEntrada;
Eco.DimensionPaqueteDisponible;

Son especialmente útiles para construir una pantalla de diagnóstico o registrar telemetría de red.

Archivos y caché

Eco también expone operaciones para el servicio de archivos y caché asociada al servidor. Son independientes de la persistencia lógica de objetos.

Eventos

Los eventos de conexión, canales, jugadores y datos permiten reaccionar sin consultar cada frame:

Eco.alConectar += OnConectar;
Eco.alDesconectar += OnDesconectar;
Eco.alUnirseACanal += OnCanal;
Eco.alEntrarJugador += OnJugador;
Eco.alCambiarDatosJugador += OnDatosJugador;

Suscríbete y desuscríbete en el ciclo de vida del sistema que consume los eventos.

Integración avanzada

Eco.Cliente expone ClienteJuego para acceder a estado interno de sesión. Los paquetes personalizados y IConnection son mecanismos de infraestructura y deben documentarse junto con transporte y protocolo.

Fuente

Eco.cs

Implementación de la fachada principal.

ClienteJuego.cs

Runtime cliente utilizado internamente por Eco.

Inicio rápido

Ruta recomendada para la primera integración.

On this page