Rollback netcode: pasado, presente y futuro de la lucha online
Repasamos la historia y funcionamiento de una soluci車n contra el lag con cada vez m芍s relevancia en la escena competitiva de los fighting games.
A poco que est谷is interesados en los juegos de lucha, seguramente habr谷is le赤do m芍s de una vez el t谷rmino rollback netcode. Dista de ser una invenci車n reciente; de hecho, es un sistema con m芍s de una d谷cada a sus espaldas, pero la pandemia y la cancelaci車n de eventos de lucha presenciales como el EVO han reabierto y aumentado el debate a su alrededor. Precisamente uno de los fundadores de dicho torneo, Tony Cannon, fue quien dio con esta soluci車n, dise?ando un software para mejorar el rendimiento online de juegos antiguos, y desde entonces se ha convertido en un nuevo est芍ndar para jugar a trav谷s de internet a cl芍sicos y novedades por igual.
Un est芍ndar, no obstante, con el que algunas compa?赤as 〞particularmente en Jap車n〞 todav赤a se muestran reticentes. Super Smash Bros. Melee, a pesar de ser estrenado en 2002 y sin online, a d赤a de hoy ofrece un netcode m芍s eficiente que Ultimate, entrega de 2018 con servicio de pago proporcionado por Nintendo. Y Dragon Ball FighterZ, uno de los nombres estrella de la escena competitiva actual, se ha resentido m芍s en 2020 que juegos como Killer Instinct o Mortal Kombat 11 debido a su permanencia en el sistema antiguo, conocido como delay-based netcode. Es algo que, por suerte, Arc System Works remediar芍 en Guilty Gear Strive, juego cuya beta ha servido para recordar por qu谷 rollback es el camino a seguir. As赤 que hoy caminaremos hacia atr芍s, al inicio de dicho camino, para ver c車mo se traz車 en primer lugar.
?rase una vez... La lucha en l赤nea
Todo empez車 en Cupertino, California. Bueno, se podr赤a decir que empez車 en muchos sitios. En las universidades donde se crearon tanto los primitivos primeros videojuegos como las primeras infraestructuras online. En las oficinas de los estudios que probaron suerte con la lucha desde innumerables perspectivas antes de que Street Fighter II redefiniese el g谷nero. O, claro, en la propia sede de Capcom, que hace ya treinta a?os lanz車 una de las obras m芍s esenciales del medio. Pero por el bien de la brevedad, obviaremos todo eso y saltaremos directamente a 1994, cuando una compa?赤a mucho menos conocida, Catapult Entertainment, cre車 un perif谷rico llamado XBAND.
Distribuido por THQ y vendido en la cadena de videoclubs Blockbuster, XBAND era un m車dem que permit赤a jugar online en Mega Drive y SNES. El artefacto consigui車 el visto bueno de Sega y Nintendo, aunque sus autores tuvieron que implementar la compatibilidad por su cuenta, usando ingenier赤a inversa para habilitarla en una selecci車n de juegos que inclu赤a Super Mario Kart, Killer Instinct, Mortal Kombat 3, los t赤tulos deportivos de EA (Madden, NBA Live, NHL) y, c車mo no, Super Street Fighter II. Fue un primer intento con 谷xito bastante moderado y pr芍cticamente limitado a Estados Unidos 〞no lleg車 a Europa y su presencia en Jap車n fue anecd車tica〞, pero funcional y con prestaciones como emparejamiento por nivel de habilidad, descarga de tablas de clasificaci車n, chat de texto y la celebraci車n ocasional de torneos nacionales.
Si bien no fue el inicio del juego online como tal, XBAND s赤 dej車 patente tanto su potencial como las posibles limitaciones en consolas. Usando la l赤nea de tel谷fono, el programa escrito por Catapult enlazaba los m車dems de dos jugadores y hac赤a creer a sus juegos que los mandos estaban conectados a la misma consola. Una proeza tecnol車gica sorprendentemente viable, pero desafiada por la necesidad de registrar el presionado de los botones en uno y otro mando e intercambiar dicha informaci車n entre las dos casas antes de mostrar sus efectos en pantalla. Este proceso de espera para la transferencia y ejecuci車n de cada maniobra es lo que conocemos como network delay (retardo de red) y, en un escenario ideal, se lleva a cabo en un lapso tan corto que resulta pr芍cticamente imperceptible para el jugador.
Sin embargo, los casos ideales no tienen por qu谷 ser la norma, ni ahora ni entre 1994 y 1997 (periodo en activo de XBAND). La velocidad de conexi車n s赤 era suficiente para transmitir instrucciones tan sencillas como las que requer赤a Street Fighter II, pero, como sabr芍n los versados, el tiempo necesario para transmitir datos depende de la latencia (o ping, medido en milisegundos), y ese factor era m芍s variable seg迆n zona y distancia, creando a veces retrasos importantes en el procesamiento de acciones (network lag). El paliativo m芍s sencillo era intentar conectar con jugadores lo m芍s cercanos posible, aunque los dise?adores de WeaponLord (juego de SNES y Mega Drive creado con XBAND ya en mente) tambi谷n intentaron contrarrestarlo con un combate m芍s basado en la complejidad que la velocidad y un sistema de parries con armas que facilitaba defenderse de cross-ups en situaciones con lag.
Nuevo milenio, nueva oportunidad
A pesar de la viabilidad demostrada por una compa?赤a third party en consolas de 16-bits, hubo que esperar dos generaciones m芍s para ver una apuesta plena por el servicio. Catapult implementar赤a XBAND en Saturn, que ofreci車 su propio m車dem first party (Sega Net Link), y Nintendo tambi谷n tuvo sus escarceos en Jap車n mediante el fallido perif谷rico 64DD, pero fue Dreamcast la que inici車 una nueva era de online en consolas a escala global. Probablemente algunos recuerden la llegada de ChuChu Rocket! a Europa en el verano de 2000, lanzamiento simb車lico, pero apenas antesala de lo que ser赤a jugar a Phantasy Star Online o a Quake III: Arena. O a Halo 2 cuando Microsoft recogi車 el testigo de Sega con su Xbox Live. Las infraestructuras mejoraron y se acercaron a un nivel que los ordenadores llevaban a?os ofreciendo.
Sin embargo, los juegos de lucha segu赤an planteando sus propios retos. S赤, las conexiones eran m芍s r芍pidas y permit赤an que se conectaran m芍s jugadores a la vez, en juegos con operaciones cada vez m芍s complejas. Pero en el 1 contra 1 de la lucha, donde las victorias se decid赤an en d谷cimas de segundo, la latencia segu赤a siendo el factor clave y, a la vez, el m芍s falible. T赤tulos emblem芍ticos de la 谷poca como Street Fighter III: 3rd Strike o Soul Calibur I, II y III (pseudo sucesores de WeaponLord y su combate con armas y parries) salieron a la venta sin online. Era un g谷nero todav赤a orientado a los salones recreativos, a las partidas locales y a los torneos presenciales (como el EVO), condenado a la categor赤a de nicho a medida que internet se iba convirtiendo en una presencia m芍s y m芍s importante para el multijugador.
Good Game, Peace Out
En agosto de 2006, meses antes de la llegada de Wii y PlayStation 3, Capcom relanz車 Street Fighter II: Hyper Fighting en la tienda digital de Xbox 360 y se convirti車 en el m芍s vendido de la plataforma durante sus primeras 24 horas. Un 谷xito, eso s赤, pronto deslucido por las quejas sobre el lag, presentes tanto entre la prensa como entre los usuarios. Al igual que en los lejanos d赤as del XBAND, el delay-based netcode solo ofrec赤a una experiencia de juego del todo fluida si la latencia era suficientemente baja como para intercambiar la informaci車n de los dos jugadores y dibujar el resultado sincronizado en un lapso inferior a los 50 milisegundos (o 3 frames de un juego que corra a 60 fps), algo que ni en 2006, ni ahora en 2021, se puede garantizar.
Una idea importante, antes de avanzar m芍s, es que el lag como tal siempre va a existir. Un ping de 0 milisegundos es inviable porque, incluso en un escenario ideal, la se?al debe recorrer una distancia f赤sica y someterse a protocolos de identificaci車n por el camino. A partir de ah赤, factores como un buen netcode, la cercan赤a entre jugadores o el uso de cable Ethernet contribuyen a su reducci車n, mientras que un netcode congestionado y la p谷rdida de paquetes de informaci車n contribuyen a su incremento. Pero ni la mejor de las conexiones sirve para conseguir la ausencia de lag, la consistencia total en el ritmo de transmisi車n ni, por supuesto, que el jugador al otro lado no lastre la experiencia si padece sus propias fluctuaciones en la l赤nea.
Aqu赤 es donde volvemos a Cupertino y a Tony Cannon 〞sin relaci車n con Catapult Entertainment, pero oriundo de la misma ciudad〞. Viendo los problemas que aquejaban a Street Fighter II en su relanzamiento de Xbox 360, el co-fundador del EVO se frustr車 por la incapacidad de Capcom para reavivar en un g谷nero en declive y se puso a trabajar en su propia soluci車n. El resultado fue el rollback netcode, sistema implementable mediante un programa llamado GGPO (Good Game, Peace Out) que, naturalmente, no reduc赤a la latencia 〞algo fuera de las posibilidades del juego〞, pero s赤 mitigaba sus efectos reemplazando la espera por una predicci車n que luego era corregida 〞en caso de ser necesario〞 al llegar la informaci車n del otro extremo.
Para que no suene abstracto, hagamos una peque?a dramatizaci車n con un ejemplo de cada m谷todo. En la casilla inicial de la imagen que hay bajo estas l赤neas, basada en el m谷todo de delay-based netcode, el jugador que controla a Ryu presiona un bot車n de ataque. Jugando offline, la acci車n se reflejar赤a en el frame siguiente, pero jugando online, el tr芍nsito de informaci車n detiene la acci車n (una cantidad imperceptible o perceptible de tiempo seg迆n la latencia) para sincronizarse y empezar a ejecutar el ataque tras registrar la nueva posici車n de Guile. La misma operaci車n se repite luego en la casilla 4, cuando el juego vuelve a verificar la posici車n del otro jugador.
Si la latencia es baja, este intercambio tiene lugar en pocos milisegundos y el jugador no percibe pausas. Si la latencia es alta, aumenta la cantidad de frames necesarios para una correcta sincronizaci車n 〞el framerate no solo actualiza la representaci車n visual, tambi谷n la l車gica jugable subyacente〞, lo que puede dar lugar a parones claros e incluso a una partida pr芍cticamente injugable en casos m芍s extremos.
Ahora veamos la misma situaci車n usando rollback netcode: tras pulsar el bot車n de ataque, la animaci車n empieza a ejecutarse al instante porque el juego se encarga de simular moment芍neamente las acciones de Guile (ilustrado abajo mediante el uso de blanco y negro). Una vez la informaci車n del otro jugador aparece, si dicha simulaci車n coincide con lo que ha ocurrido en el otro lado (de nuevo, hablamos de mil谷simas de segundo), el juego sigue su curso como si no hubiese intercedido. Si hay disparidad 〞como la que creamos abajo poniendo un ejemplo con lag notable〞, retrocede (de ah赤 el t谷rmino rollback) y muestra de inmediato la ubicaci車n correcta del otro jugador.
Huelga decir que si la latencia es muy alta, esta especie de ※teletransporte§ tambi谷n se puede convertir en un problema serio, que impide el correcto transcurso de las partidas. Es un truco ingenioso, no magia. Pero dentro de unos m芍rgenes comunes, o incluso m芍s taxativos, el rollback consigue que la experiencia de juego sea m芍s fluida y precisa que el delay-based, ya que los inputs de ambos jugadores siempre se registran y ejecutan al instante 〞algo que no ocurre en el sistema con retardo〞.
Hibridaci車n y expansi車n
Otro aspecto clave del rollback es que no se trata solo de una alternativa, sino tambi谷n de un complemento. Ambos sistemas pueden coexistir en un mismo juego as赤 que, en cuanto la soluci車n de GGPO empez車 a coger tracci車n tanto en el panorama de la emulaci車n como entre los desarrolladores de ports oficiales (como Super Street Fighter II Turbo HD Remix o Street Fighter III: 3rd Strike Online) e incluso de juegos nuevos (como Skullgirls), pronto se dio una hibridaci車n: Killer Instinct y Injustice 2, por ejemplo, establecieron 3 frames m芍ximos de retraso, momento en el que el rollback entra en efecto para impedir que la acci車n se detenga; mientras otros, como Darkstalkers Resurrection o el ya citado Skullgirls, han optado por implementar selectores para que los jugadores elijan su propio equilibrio entre sistemas.
Entonces, si aporta beneficios tan claros y no anula el otro m谷todo, ?por qu谷 el rollback sigue sin estar en juegos de gran relevancia casi 15 a?os despu谷s del estreno de GGPO? Un factor recurrente, que ya dejamos caer al principio, es la mayor reticencia de los desarrolladores japoneses a incorporar tecnolog赤a creada fuera. Sagas occidentales como Injustice o Mortal Kombat saltaron r芍pidamente al nuevo vag車n, y ports modernos de Capcom como Street Fighter o Darkstalkers corrieron a cargo de Iron Galaxy, estudio americano tambi谷n responsable de las 迆ltimas temporadas de Killer Instinct, pero en tierras niponas han preferido seguir trabajando con sus m谷todos, familiares y funcionales en conexiones dentro del pa赤s. Ahora, por suerte, el giro hacia el rollback empieza a materializarse en promesas como las de Guilty Gear Strive o King of Fighters XV, aunque todav赤a es una aclimataci車n en proceso.
Claro que introducir rollback no es solo una cuesti車n de abrirse a otras tecnolog赤as, sino tambi谷n de preparar nuevas infraestructuras y optimizar 〞o crear desde cero〞 otro tipo de operaciones. Conseguir que en Dragon Ball FighterZ el juego asuma el control de un personaje, simule su comportamiento hacia delante, almacene los estados intermedios y revierta a cualquiera de ellos o a uno nuevo de forma instant芍nea es una tarea bastante m芍s complicada que en Street Fighter II. En esencia, requiere procesar escenarios te車ricos que no se muestran en pantalla, y que quiz芍 nunca se lleguen a mostrar, pero que consumen capacidad computacional de todas formas.
Puede que un trabajo de ingenier赤a eficiente permita parchear una soluci車n un d赤a de estos (Mortal Kombat X lo hizo bastantes meses despu谷s de su lanzamiento), pero lo ideal, c車mo no, es construir los juegos con el rollback netcode en mente desde el principio. As赤 que incluso aunque algunas de estas oportunidades presentes pasen por perdidas, si la industria sigue empujando para hacerlo un requisito de la competici車n online, seguramente acabar芍 si谷ndolo m芍s tarde o m芍s temprano.
Fuentes: YouTube, GameSpy, Gamasutra, GGPO, The Complete Killer Instinct Guide