Para reducir la carga del servidor, algunos juegos delegan el cálculo del movimiento de un monstruo en el cliente de un jugador cercano. Si la conexión de ese jugador es mala, el monstruo se mueve raro en las pantallas de todos.
Por qué El servidor delega el cálculo del movimiento del monstruo en el cliente del jugador más cercano (o del primero en llegar) → Efecto Los resultados que reporta ese jugador llegan tarde o a ráfagas al servidor → En pantalla Solo ese monstruo se detiene un instante y luego se teletransporta en las pantallas de todos los que están cerca. En la pantalla del propio jugador encargado se ve bien
Responsable principal Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Pasar el control a alguien con buena conexión (según ping y pérdida), hacer que el servidor lo recupere de inmediato si se cortan los reportes, y que el propio servidor calcule los monstruos importantes, como los jefes.
En el gráfico
Alto solo en algunos · Intervalo de reporte de posición por monstruo (por cliente con el control)
Dónde mirar
Registrar en el servidor, para cada monstruo, el cliente que tiene el control y su intervalo de reporte, RTT y pérdida. En una captura de paquetes del lado del servidor también se puede ver el intervalo de llegada de los paquetes de ese cliente
Se confirma si
El control de todos los monstruos que se mueven raro lo tiene la misma persona, sus intervalos de reporte son irregulares o se cortan, y al pasar el control a otro todo vuelve a la normalidad de inmediato
Se descarta si
Si los monstruos que calcula el propio servidor también saltan, apunta al retraso del tick del servidor o a la conexión de quien mira. Si siguen saltando después de pasar el control, apunta a “Discrepancias de pathfinding en la sincronización de comandos”
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego
Para saber más
Como el encargado lo ve todo bien, los reportes solo llegan como “el monstruo se comporta raro”. Si todos menos una persona ven raro el mismo monstruo, lo primero es comprobar quién tiene el control de ese monstruo.
Fuentes
Authority (Netcode for GameObjects 2.5)Unity En el modelo de autoridad distribuida, cada instancia del juego (cliente) asume la autoridad sobre algunas entidades de red y las calcula