ESPACIO PUBLICITARIO DISPONIBLE · HABLEMOS

Tickrate del servidor frente a sendrate del cliente en FPS competitivos: Retardo de interpolación, arquitecturas sub-tick y la ventaja del atacante (Peeker's Advantage)

365Finds Editorial
11.430 artículos Wiki recopilados

Usa 365 Wiki con tu IA

Copia el prompt de abajo, pégalo en la IA que ya usas y haz tu pregunta.

Descargar el Skill completo

Pruébalo primero con el prompt. Si usas 365 Wiki a menudo, instala el Skill completo de 365Wiki y no tendrás que volver a pegarlo. Si no tienes una IA habitual, también sirven las versiones web de Gemini o Microsoft Copilot.

Introducción: La física invisible de los shooters competitivos

En los shooters en primera persona de alto rendimiento—como Counter-Strike 2, Valorant, Rainbow Six Siege y Overwatch 2—, los enfrentamientos se deciden con frecuencia en márgenes de entre 15 y 50 milisegundos. Los jugadores experimentan a menudo situaciones en las que un oponente asoma por una esquina y los elimina antes de que puedan si quiera percibir que ha levantado el arma, o por el contrario, momentos en los que se refugian tras un muro sólido y caen eliminados una fracción de segundo después.

Estos fenómenos rara vez son meras ilusiones ópticas o diferencias en la velocidad de reflejos biológicos. Son, en realidad, las consecuencias matemáticas directas del modelo de red cliente-servidor, los tiempos de transmisión física de paquetes, los búferes de interpolación de entidades en el cliente y los algoritmos de compensación de retardo (lag compensation) ejecutados por el servidor.

A medida que los motores de juego evolucionan desde los servidores tradicionales de frecuencia fija (como los de 64-Tick o 128-Tick) hacia arquitecturas modernas con marcas de tiempo sub-tick, comprender la canalización de red subyacente resulta indispensable para optimizar la conexión y dominar tácticamente la ventaja del atacante (peeker's advantage).

Anatomía del ciclo de red: Tickrate del servidor, sendrate del cliente e instantáneas globales

La sincronización de red multijugador opera sobre un ciclo discreto y periódico en lugar de un tiempo analógico continuo:

[Cola de entrada local]         [Tasa de envío Sendrate]          [Tickrate del servidor]
 Comandos de ratón y teclado ──> Paquetes UDP UserCmd (128Hz) ──> Simulación del estado global (128Hz)
                                                                    │
                                                                    ▼
                                                            Emisión de instantánea del mundo
                                                                    │
                                                                    ▼
                                                         [Búfer del cliente defensor]
                                                         Interpolación de entidades (cl_interp)

1. Tickrate del servidor

El tickrate del servidor representa la frecuencia por segundo con la que el servidor dedicado actualiza la simulación física y el estado lógico del juego:

2. Sendrate y updaterate del cliente

Si el cliente se ejecuta a 240 FPS pero se comunica con un servidor de 64-Tick, los fotogramas visuales intermedios se procesan mediante predicción del lado del cliente (client-side prediction) para evitar tirones en pantalla.

Interpolación de entidades (cl_interp): Por qué siempre miramos hacia el pasado

Los paquetes UDP que viajan por Internet no llegan a intervalos estrictamente uniformes; la fluctuación de retardo (jitter) hace que se agrupen o lleguen desordenados. Para representar a los otros jugadores desplazándose con suavidad sin teletransportarse de forma intermitente, los motores de juego implementan la Interpolación de entidades (cl_interp).

Instantáneas recibidas del servidor: [Tick 100] ------------> [Tick 101] ------------> [Tick 102]
                                         │                        │
Línea temporal de renderizado:           └── (Renderizado pasado) ┴── Posición actual en pantalla
                                             <-- Retardo de interpolación -->
  1. El búfer de interpolación: El cliente retrasa de forma intencionada la representación de las entidades remotas durante una ventana de tiempo predefinida (calculada históricamente mediante cl_interp_ratio / cl_updaterate).
  2. Cálculo del retardo: En un servidor de 128-Tick con una relación de 1, el retardo de interpolación es de 7.8125 ms; en un servidor de 64-Tick con relación de 2, este retardo se eleva a 31.25 ms.
  3. El desfase temporal necesario: Cuando observas a un adversario cruzar una puerta, jamás estás viendo su posición física en tiempo real; contemplas una interpolación matemática suavizada entre dos instantáneas históricas registradas decenas de milisegundos atrás.

La física de la ventaja del atacante (Peeker's Advantage): Descomposición matemática

La "ventaja del atacante" (peeker's advantage) define la ventana temporal durante la cual un jugador que se desplaza activamente para asomarse tras una esquina (el peeker) puede ver y reaccionar ante un defensor estacionario antes de que el monitor de este último muestre la llegada del atacante.

Ecuación de la ventana de ventaja

El margen temporal total del que disfruta el jugador atacante se expresa mediante la siguiente descomposición de latencias:

$$\text{Ventana de ventaja} = \frac{\text{RTT}{\text{atacante}}}{2} + \frac{\text{RTT}{\text{defensor}}}{2} + \text{BúferInterpolación}{\text{defensor}} + \text{CicloTick}{\text{servidor}} + \text{RetardoPantalla}_{\text{defensor}}$$

Consideremos un escenario competitivo típico:

Cronología de un asomo en esquina:
T = 0.0 ms: El atacante asoma la esquina en su cliente (visualización local inmediata del defensor).
T = 15.0 ms: El paquete de movimiento del atacante llega al servidor.
T = 30.6 ms: El servidor procesa el siguiente tick e incluye la nueva posición en la instantánea.
T = 45.6 ms: El paquete de instantánea llega al router del defensor.
T = 61.2 ms: El cliente del defensor agota el búfer de interpolación y comienza a renderizar al atacante.
T = 66.2 ms: El monitor del defensor emite los primeros píxeles del atacante.

Ventaja temporal absoluta para el atacante: ~66.2 milisegundos.

Durante esos 66 milisegundos, el atacante ya ha identificado al defensor estático en su pantalla y ha iniciado el ajuste de puntería y el clic de disparo antes de que la retina del defensor reciba el primer fotón del modelo enemigo.

Arquitecturas Sub-Tick frente a ticks fijos discretos (CS2 y Valorant)

La introducción de la arquitectura Sub-Tick en el motor Source 2 de Valve (Counter-Strike 2) buscó ofrecer una precisión milimétrica en el registro de disparos sin incurrir en los elevados costes computacionales de servidores puros a 128-Tick.

[Tick discreto tradicional (64/128-Tick)]
Límite de tick N ─────────────────────────── Límite de tick N+1
       │                                            │
       └── Clic efectuado en el intervalo ──────────┘ (Se resuelve en N+1)

[Arquitectura Sub-Tick]
Límite de tick N ─────────────────────────── Límite de tick N+1
       │                                            │
       └── Clic efectuado en T+4.2ms (Marca de tiempo de alta precisión)
           El servidor rebobina el mundo a T+4.2ms exactos durante la resolución

Ticks discretos fijos (ej. Valorant 128-Tick)

En un sistema puro de 128-Tick discreto, el mundo avanza en bloques fijos de 7.8125 ms. Cualquier acción realizada entre ticks se evalúa al comienzo del tick siguiente. Dado que la frecuencia es muy elevada, el error máximo de cuantificación de entrada nunca excede los 7.8 ms.

Arquitectura Sub-Tick (Counter-Strike 2)

El sistema sub-tick desacopla la resolución de acciones de la frecuencia de envío de paquetes:

  1. Marcas de tiempo en microsegundos: Al pulsar el botón de disparo, el cliente adjunta una marca de tiempo que indica el microsegundo exacto en que ocurrió el clic dentro del intervalo de tick.
  2. Cálculo determinista en el servidor: Aunque el servidor sigue procesando en ticks regulares, al evaluar los disparos retrocede las cajas de impacto (hitboxes) al punto temporal exacto indicado por la marca de tiempo.
  3. Desfase visual y de animación: Como las animaciones y las actualizaciones de red se siguen transmitiendo en ticks discretos, en versiones iniciales esto provocaba que los efectos visuales de impacto y las animaciones de caída parecieran desfasadas respecto a la confirmación del impacto.

Compensación de lag, límites de rebobinado y la muerte tras la cobertura

Una de las experiencias más frustrantes en el juego competitivo es caer abatido tras haberse ocultado con éxito detrás de una cobertura sólida. Este suceso es provocado por el algoritmo de Compensación de retardo (Lag Compensation) del servidor.

[Estado real del defensor: Oculto tras el muro en T_actual]
                    Muro
       Defensor ── [ Muro ]
                    Muro

[Pantalla del atacante con alto ping: Disparando al fantasma en T_histórico]
Pantalla atacante: El defensor aún es visible fuera de la cobertura por retardo de red
Acción servidor:   Lee la marca de tiempo y rebobina la hitbox a T_histórico -> ¡Impacto válido!
Resultado:         El defensor muere detrás del muro en T_actual.
  1. Rebobinado histórico de cajas de impacto: Cuando el atacante dispara, el servidor consulta la marca de tiempo de su cliente y retrocede las posiciones de todos los personajes a ese instante exacto para verificar si la mira estaba sobre el objetivo.
  2. Límite de rebobinado (Rewind Clamp): Para impedir que usuarios con conexiones excesivamente lentas (por ejemplo, 400 ms) eliminen a rivales segundos después de retirarse, los servidores imponen un límite máximo de rebobinado (habitualmente fijado en unos 200 ms).
  3. El equilibrio inevitable: Sin compensación de retardo, los jugadores tendrían que calcular la compensación de avance de disparo según su ping, arruinando la puntería directa. La compensación restaura el disparo directo para el atacante, pero traslada la anomalía perceptiva al defensor cuando ya está a cubierto.

Matriz de diagnóstico del netcode y optimización de red

Síntoma observadoCausa de red subyacenteIndicador de telemetría (Net Graph)Solución y ajuste recomendado
Muerte muy por detrás de muros y coberturasPing alto del atacante activando un amplio rebobinado en el servidorComprobar ping del rival en la tabla (>80ms)Jugar con asomos dinámicos en lugar de mantener ángulos cerrados pasivos
Teletransporte o tirones en los modelos rivalesPérdida de paquetes entrantes o fluctuación elevada (jitter)Packet Loss descendente > 0.5%, jitter variableAbandonar conexiones Wi-Fi por cable Ethernet; activar SQM en el router
Pérdida de balas o fallos en el control de ráfagaPérdida de paquetes salientes o caída de tasa de fotogramasIndicador Loss Out en rojo; caídas de FPSBloquear la tasa de FPS por encima del doble del tickrate; comprobar MTU
Incapacidad absoluta de reacción ante asomos rivalesBúfer de interpolación sobredimensionado o bufferbloatTiempo de interpolación elevado, picos de ping con cargaImplementar colas de baja latencia (CAKE/FQ-CoDel); ajustar cl_interp
Sonido de impacto local pero sin daño registradoError de predicción en el cliente rechazado por el servidorMensajes de desincronización o comando descartadoMejorar la estabilidad del enlace de red; evitar conexiones inalámbricas

El dominio de los shooters tácticos modernos exige ir más allá de la puntería mecánica para asimilar las restricciones de la transmisión de datos por red. Gracias a los análisis técnicos de 365Finds, los jugadores pueden calibrar sus parámetros de red, maximizar la ventaja geométrica de los asomos y contrarrestar las trampas posicionales del modelo cliente-servidor.

Referencias