한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Libro blanco del lag en juegos › Problemas que solo afectan a algunos

Cámara rápida en servidores que procesan cada paquete al llegar Event-driven processing of bursty inputs

ID de la causa pt-event-server · Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Desarrollo de cliente (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

En un servidor que procesa y anuncia cada paquete en cuanto llega, las acciones acumuladas de un jugador con lag se ejecutan una tras otra al instante.

Por qué Las solicitudes de habilidades y de movimiento del jugador con lag llegan a ráfagas → Efecto El servidor las ejecuta en orden en cuanto las recibe y las anuncia a todos de inmediato → En pantalla Los demás ven a esa persona usar varias habilidades en un instante o moverse como en cámara rápida

Síntomas
Cámara rápida
Factores
Jitter
A quién afecta
Solo un personaje se ve raro
Cuándo
Al hacer ciertas acciones, Siempre
Responsable
Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Desarrollo de cliente (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Servidor: ejecutar las acciones con el intervalo de las horas de input que traen (aceptando la hora solo dentro de un margen permitido), o, sin rechazar las acciones que llegan juntas, ejecutarlas por turnos separadas por un intervalo mínimo (cooldown global); no comprobar el cooldown solo con la hora de llegada (se pierden inputs legítimos). Cliente: añadir a cada acción la hora del input al enviarla.
En el gráfico
Alto solo en algunos · Intervalo de ejecución de acciones por jugador
Dónde mirar
Registrar en el log del servidor, por jugador, la hora de llegada de cada acción, la hora de ejecución y la hora de input que añade el cliente (si existe), y comparar los intervalos de ejecución con los de input. Ver también el intervalo de llegada de los paquetes de ese jugador en una captura de paquetes del lado del servidor
Se confirma si
Los intervalos de input son normales, pero los de llegada y ejecución en el servidor se amontonan en unos pocos ms, y esos momentos coinciden con la hora de los reportes de cámara rápida de los demás
Se descarta si
Si ya los intervalos de las horas de input están amontonados, apunta al cliente o a una macro. Si los intervalos de ejecución en el servidor son parejos y solo se ven amontonados en las pantallas de los demás, apunta a la conexión de quien mira
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego

Fuentes

  1. Understanding Networked Movement in the Character Movement Component for Unreal Engine Epic Games
    Cada vez que recibe un ServerMove, el servidor calcula el movimiento y fija el intervalo de tiempo con la diferencia de timestamp respecto al movimiento anterior. Si difiere demasiado de la hora del servidor, descarta ese movimiento
  2. Deterministic Lockstep Gaffer On Games
    Si los inputs se aplican según llegan, aunque se envíen a 60 Hz los intervalos no son regulares y el resultado es irregular

Ver también

Misma capa: Problemas que solo afectan a algunos

Causas de otras capas con el mismo síntoma (Cámara rápida)

Ver la ficha interactiva con gráficos y simulaciones