Buffer
Lectura y escritura binaria de bajo nivel utilizada por el protocolo de Eco.
Buffer
Buffer es la estructura binaria que Eco utiliza para construir y leer mensajes de red. Se encuentra debajo de Objeto, Componente y RFC, pero por encima del transporte físico.
Gameplay
↓
RFC / estado
↓
Paquete
↓
Buffer
↓
TCP / UDP / conexión personalizadaPara qué sirve
Un Buffer mantiene los bytes y la posición de lectura/escritura necesarios para serializar parámetros, identificadores y datos de protocolo.
En el uso normal no necesitas construir buffers manualmente.
API avanzada
Manipular Buffer directamente significa asumir responsabilidad por el orden, tipos y longitud exacta de los datos. Utilízalo para protocolos personalizados, herramientas de red y extensiones del runtime.
Escritura
El buffer dispone de operaciones especializadas para los tipos soportados por Serializacion y por el protocolo de Eco.
var buffer = new Buffer();
buffer.Write(42);
buffer.Write("Arena");
buffer.Write(Vector3.zero);El ejemplo conceptual anterior representa el patrón; para paquetes reales debes utilizar los helpers proporcionados por la implementación del protocolo.
Lectura
La lectura consume los datos en el mismo orden en que fueron escritos:
int id = buffer.Read<int>();
string nombre = buffer.Read<string>();
Vector3 posicion = buffer.Read<Vector3>();El orden importa
Un paquete que escriba int → string → Vector3 debe leerse exactamente en ese orden. Leer un tipo diferente desplaza el cursor y puede corromper el resto del mensaje.
Arrays y bloques
Eco incluye operaciones para escribir y leer arrays y bloques de bytes. Para mensajes grandes, conserva la longitud y evita crear copias innecesarias cuando el protocolo ya conoce el tamaño.
Buffer reutilizable
El runtime utiliza buffers en numerosas rutas de red para reducir asignaciones. Por ese motivo, una extensión que retenga una instancia más tiempo del necesario puede provocar problemas difíciles de diagnosticar.
Recibir
↓
Leer
↓
Procesar
↓
Liberar / reutilizarBuffer frente a Nodo
| Tipo | Uso |
|---|---|
Nodo | Datos estructurados y persistencia |
Buffer | Datos binarios del protocolo |
Paquete | Significado de un mensaje |
Serializacion | Conversión entre tipos y representación |
Diagnóstico
Cuando un paquete falla durante la lectura, comprueba primero:
- que el identificador de
Paquetesea el esperado; - que escritor y lector utilicen el mismo orden;
- que las longitudes de arrays sean correctas;
- que el transporte no haya entregado un mensaje distinto al handler esperado.
Paquete
Tipos de mensajes que utilizan el buffer.
Serialización
Conversión de valores antes de escribirlos en el buffer.
Buffer.cs
Implementación actual.
