Rendimiento
Medir y reducir el coste de red, CPU y memoria.
El rendimiento de una partida conectada depende de cuatro variables principales:
entidades × frecuencia × tamaño × destinatariosReducir cualquiera de ellas puede reducir el coste total.
Ancho de banda
No envíes datos que todos los clientes pueden reconstruir. Agrupa cambios cuando el modelo lo permita y evita mensajes por frame sin necesidad real.
CPU
Serialización, reflexión, búsqueda de objetivos, pathfinding y procesamiento de callbacks pueden competir con el frame principal. Mide antes de optimizar.
Memoria
Evita generar buffers, listas y objetos temporales constantemente. En partidas con muchas entidades, pequeñas asignaciones repetidas se convierten en presión de GC.
Escalabilidad
Un escenario con 4 jugadores y 500 enemigos no debe diseñarse como 4 jugadores y 10 enemigos.
4 jugadores
× 500 enemigos
× frecuencia de actualización
× bytes por entidad
× destinatariosEse cálculo conceptual debe formar parte del diseño inicial.
Perfilado
Mide al menos:
- bytes enviados y recibidos;
- paquetes por segundo;
- tamaño medio y máximo de paquete;
- tiempo de serialización;
- tiempo de procesamiento de paquetes;
- número de objetos activos;
- número de RFC;
- allocations y GC;
- latencia observada.
Objetivo
El objetivo no es minimizar el número de paquetes a cualquier precio. Es transmitir el estado necesario con un coste predecible y una frecuencia adecuada.
