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

Libro blanco del lag en juegos › Diseño del netcode

Autoridad del cliente Client-authoritative results

ID de la causa sy-client-auth · 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 →

Si cada cliente decide sus propios resultados, en tu pantalla todo va fluido, pero los resultados no coinciden con los de otras pantallas y el juego queda expuesto a las trampas.

Por qué El cliente decide la posición y los impactos, y el servidor solo los reenvía → Efecto Dos jugadores afirman haber acertado primero y el servidor no puede comprobarlo → En pantalla El rival se teletransporta o atraviesa paredes, “yo le di y no cuenta”

Síntomas
Teletransporte, Acción perdida / rollback
Factores
Latencia
A quién afecta
Todo el servidor
Cuándo
Siempre
Responsable
Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Desarrollo de cliente (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Servidor: validar él mismo los resultados importantes (impactos, etc.), comprobar velocidad y distancia en el movimiento. Cliente: al recibir un resultado rechazado o corregido por el servidor, volver a ese valor.
En el gráfico
Siempre alto · Velocidades de movimiento imposibles, reportes de impacto contradictorios
Dónde mirar
Registrar en el servidor tal cual las posiciones e impactos que reportan los clientes, calcular la velocidad de movimiento con reportes de posición consecutivos y contar los reportes que superan la velocidad máxima y los casos en que dos jugadores dicen haber acertado primero
Se confirma si
El servidor reenvía los reportes a los demás clientes sin validarlos, y aparecen de forma constante velocidades imposibles o impactos contradictorios, sin relación con parches ni regiones
Se descarta si
Si el servidor calcula o valida los resultados, no es esta causa. En ese caso, para el teletransporte revisar la pérdida de paquetes o el búfer de interpolación
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego

Fuentes

  1. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    Que el cliente reporte los resultados solo es viable si se puede confiar en el cliente. Por el riesgo de trampas se usa un servidor autoritativo
  2. Peeking into VALORANT's Netcode Riot Games
    Modelo de autoridad del servidor: el servidor nunca se fía del estado del juego que vio el cliente
  3. Distributed authority topologies (Netcode for GameObjects 2.5) Unity
    Repartir la autoridad entre los clientes facilita las trampas y elimina la simulación única que gobierna todas las entidades

Ver también

Misma capa: Diseño del netcode

Causas de otras capas con el mismo síntoma (Teletransporte)

Ver la ficha interactiva con gráficos y simulaciones