Noticias

GDC 2020: cómo se 'arregló' la latencia de Call of Duty: Modern Warfare después de la versión beta

Call of Duty: Modern Warfare utiliza una variedad de técnicas para mitigar los efectos de los diferentes tipos de latencia de red en todos los jugadores de una partida determinada. Infinity Ward ofreció una breve mirada a cómo funciona su código de red en un video antes del lanzamiento de Modern Warfare, y en la Conferencia de desarrolladores de juegos digitales de esta semana, el estudio mostró un desglose más detallado de su enfoque de redes, y cómo este enfoque se vio afectado por algunos vídeos de YouTube de alto perfil.

El problema con cualquier juego competitivo es cuál es la mejor manera de sincronizar el estado del servidor con el estado del cliente del juego en su computadora personal. Si las cosas no están sincronizadas, saltarás por el entorno o verás a otros jugadores hacer lo mismo, hasta que el servidor y el cliente puedan volver a llevarse bien.

Modern Warfare se ejecuta en servidores dedicados, como explica el director de ingeniería en línea de Infinity Ward, Mitchell Sanborn, durante su charla GDC, por lo que los datos del juego en su máquina doméstica se envían al servidor, se procesan con los datos de todos los demás jugadores en un partido, luego el servidor envía los resultados a su cliente. Entonces, todo en el servidor es la versión "real" del juego, y el juego que juegas en casa es solo una visualización del mismo.

Cuando ocurren problemas de conexión, los clientes del juego y el servidor intentarán adivinar de manera inteligente la información que falta. Entonces, si se interrumpen los datos que está enviando al servidor, el servidor extrapolará su ubicación, lo que significa que seguirá asumiendo que se está moviendo en la misma dirección que su última entrada, luego se corregirá cuando se restablezca la conexión. En otros casos, el servidor puede obligarlo a alinearse donde cree que debe estar a través de la predicción.

En el lado del cliente, el juego comienza a almacenar entradas antes de enviarlas al servidor para evitar obligar al servidor a extrapolar o predecir dónde estarás. Esto significa que el servidor tendrá información más precisa sobre su ubicación en el mapa.

Miniature YouTube

Pero el almacenamiento en búfer de entrada tiene un costo: la latencia. Se necesita tiempo para que se acumule este búfer de entrada y, en casos más extremos, significa que experimentará latencia entre su juego y el servidor. En el Modern Warfare original, el que formaba parte de la versión beta pública, el juego favorecía en gran medida el almacenamiento en búfer, priorizando una representación precisa de tus movimientos sobre una latencia reducida.

Durante la versión beta, el juego ralentizaba las solicitudes de búfer durante los períodos de bajo rendimiento de la red. Es por eso que, dice Sanborn, un análisis de YouTube del rendimiento de la red para la versión beta de Modern Warfare lo encontró mucho más latente que otros títulos de Call of Duty y muchos otros juegos FPS.

Sanborn dice que hubo dos razones por las que este "ferviente fanático de YouTube" encontró los problemas que encontró. La primera habría sido si los algoritmos diseñados para manejar estos problemas naturales de la red se hubieran ajustado incorrectamente. La otra hubiera sido si hubiera algún problema con la conexión. Los desarrolladores no pudieron determinar cuál era el problema si tenían datos sobre la conexión de este YouTuber con el juego, lo cual tenían.

Miniature YouTube

Los datos mostraron que el cliente de YouTuber sufrió una peor conexión que otros jugadores durante los mismos partidos. “Durante algunos partidos, este jugador definitivamente experimentó condiciones de red extremas, que no eran las ideales. La latencia habría sido mala para este cliente, estoy seguro. Es solo que parece, según este gráfico, de todos modos, que habría sido un problema relacionado con la conexión. “

Pero si bien los problemas de red para este único usuario eran extremos, los desarrolladores también descubrieron que la mayoría de los clientes pasaban mucho más tiempo en el búfer de lo esperado. Y, a raíz de la reacción violenta después de que YouTuber rompiera su experiencia de latencia, los jugadores han hablado sobre querer la mayor experiencia posible sin latencia.

Entonces, para el juego final, Infinity Ward invirtió el acelerador para el almacenamiento en búfer. Mientras que anteriormente el algoritmo se ajustó para eliminar errores entre el servidor y el cliente a través del almacenamiento en búfer, ahora se ajustó para eliminar el almacenamiento en búfer al aceptar una cierta cantidad de desincronización entre el cliente y el servidor.

Los últimos servidores de Modern Warfare han logrado un equilibrio que favorece la latencia reducida sobre la sincronización pura entre clientes y servidores; después de todo, eso es lo que los jugadores querían en última instancia. Los algoritmos siempre se ajustan para proporcionar un equilibrio entre todas estas técnicas de mitigación y brindar la mejor experiencia para tantos jugadores como sea posible, al menos, tanto como sea posible dentro de los límites de la tecnología actual.