Multijugador Tutorial 1: conceptos

4

Index

Tagged

Stats

29,662 visits, 45,684 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 10 Sep, 2014. Last updated 25 Feb, 2019

Compensación del Lag

Considere el siguiente problema: el jugador A esta parado aún y apuntando al jugador B, que está corriendo hacia la derecha. El jugador A mueve su mouse exactamente sobre el jugador B y dispara. (Asuma que el disparo es un golpe instantáneo, como un láser o un proyectil de velocidad infinita). El mensaje hacia el host indicando que están disparando toma 100ms para llegar allí. Durante ese tiempo, el jugador B se mantiene moviendo hacia la derecha. El host recibe el mensaje 100ms después y hace la prueba de colisión a dónde el jugador A está apuntando - pero ¡él falla, porque el jugador B se ha movido! el jugador A vio que ha dado un golpe directo, pero nunca causo algún daño.

En general, el host ve a cada jugador hacer todo un poco tarde a causa de la latencia, y los jugadores terminan fallando a sus objetivos en movimiento. Este tipo de problemas puede enfurecer a los jugadores, que eventualmente aprenderán que tienen que apuntar por el espacio vacío adelante de hacia donde su objetivo se está moviendo. Esto no es muy realista o justo, la compensación de Lag es una técnica que evita este resultado.

Rebobinando el tiempo

El host sabe que tan lejos cada jugador está viendo el juego, debido a que es una medida de la latencia de cada uno. Así cuando el host recibe el mensaje indicando que el jugador A está disparando, él actualmente sabe que lo hizo hace 100ms.

El host está recordando algunos pasados segundos de la historia de los objetos. Puede entonces ver atrás y ver dónde estaba el jugador B al momento en que originalmente se disparó. Esto es como la latencia del jugador A es compensada por el host, y eso significa que el jugador A podrá acertar un disparo en el host cuando ellos se ven a sí mismos acertando un golpe en su propia pantalla.

Aunque esto crea otro problema. El jugador B está en un retraso también. Si ellos tienen una latencia de 100ms, entonces el host está moviéndolos cerca de 100ms detrás de lo que ellos ven (recuerda que la predicción de entrada local los mueve directamente). encima de eso, el host esta moviéndolos más atrás cuando está probando una colisión cuando el jugador A dispara.

Esto significa que el jugador B ve al jugador A apuntando detrás cuando debería fallar, disparan, ¡y él recibe el golpe de todos modos! En casos extremos el jugador B puede de hecho haber alcanzado una cubierta donde el jugador A no puede dispararle directamente, y entonces de repente recibe daño. Esto es molesto para el jugador B, pero usualmente no es tan malo como no tener compensación - al menos los jugadores actualmente tienen que apuntarse el uno al otro para acertar. Una solución común es no indicar claramente a dónde están apuntando los jugadores, así el jugador B no puede fácilmente ver que el jugador A parece estar apuntando detrás de él, haciéndolo ver más aceptable cuando es impactado.

  • 0 Comments

Want to leave a comment? Login or Register an account!