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
| Miembro | Resultado |
|---|---|
Eco.EstaConectado | bool, conexión activa |
Eco.IntentandoConectar | bool, intento de conexión |
Eco.EstaEnAlgunCanal | bool, pertenece a uno o más canales |
Eco.IdJugador | int, ID del jugador local |
Eco.NombreJugador | string, nombre actual |
Eco.Ping | latencia observada |
Eco.Jugador | Jugador, participante local |
Eco.Canales | colecció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 participanteEjemplo:
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.
