Español
Gamereactor
artículos
Nickelodeon All-Star Brawl

Por qué el online de Nickelodeon All-Star Brawl va a ser mejor que la mayoría de juegos de lucha

O por qué desde Quake III Arena tenemos la mejor solución posible para las partidas online en juegos de lucha.

Suscríbete a nuestra newsletter

* Campo obligatorio
HQ

Si no estás muy dentro del género de los juegos de lucha, seguramente en los últimos días hayas visto el anuncio de Nickelodeon All-Star Brawl como algo anecdótico, divertido o incluso curioso. Esta especie de Smash Bros. con personajes como Bob Esponja o Donatello de Las Tortugas Ninja parece el típico disparate que jugar con amigos un par de tardes.

Pero, en la comunidad de los 'fighting', ha habido un detalle de este lanzamiento que ha resonado con bastante fuerza. Nickelodeon All-Star Brawl va a desarrollar sus partidas online usando el sistema rollback netcode. Esto, automáticamente, supone que los combates a través de internet van a ofrecer una experiencia mejor que la de muchísimos otros títulos del género.

Nickelodeon All-Star Brawl

Aunque es necesario que esté bien implementado (SFV, te miro a ti), su uso indica que, por ejemplo, partirle la cara a Calamardo va a poder hacerse con mayor fluidez que, por ejemplo, en una partida de Super Smash Bros. Ultimate o, incluso, Granblue Fantasy Versus o Dragon Ball FighterZ. Sí, puedes dejar de rascarte la cabeza pensando que aquí se están soltando barbaridades.

Publicidad:

"Genial, pero, ¿qué es eso del rollback netcode?"

Para poder entender bien qué es ese rollback netcode que tiene a la comunidad de los juegos de lucha tan entusiasmada, cuando se aplica bien, tenemos que empezar por unas bases generales sobre cómo funciona el envío de información en los juegos online. De hecho, vamos a empezar hablando de los fotogramas, o frames.

Un juego de lucha, por lo general, funciona a 60 frames por segundo. Por lo tanto, tenemos que un frame abarca unos 16 milisegundos (ms). No hay que limitarse a entender los frames como algo que mide la velocidad del juego, sino también su funcionamiento.

Nickelodeon All-Star Brawl

Para que quede claro: en cada fotograma, el juego tiene que recibir el input del jugador, comprobar la conexión en busca de nueva información (input de otro jugador, por ejemplo), realizar el movimiento del personaje y comprobar si hay impacto, entre otras más cosas. Cuando ha comprobado todo eso, dibuja el resultado en pantalla. Todo esto en 16 milisegundos, y en un bucle continuo.

Publicidad:

Si solo de leerlo agobia, pensad que en un juego de lucha esto pasa constantemente y se necesita una precisión demoledora. Si se juega en local, con dos o más mandos en una misma consola, no hay problema de por medio porque todo se lleva a cabo dentro del hardware. Pero, cuando se juega a través de internet, hay de por medio una capa enorme que depende de la velocidad y la calidad de la conexión, amén de otros muchos factores.

Cómo se trabaja la información jugando online

Pensad en una partida con un amigo, cada uno en su casa, con un ping de 64 ms. Si este se mantiene fijo (¡ja!), cada acción que realizamos tardaría una media de 32 ms en llegar al otro lado y, después, otros 32 ms en volver con la respuesta del otro jugador. Esto se traduce en algo así como 2 frames de ida y otros 2 de vuelta, 4 frames en total.

Nickelodeon All-Star Brawl

¿Qué problema hay? El desfase. En esos 4 frames puede haber una diferencia de tiempo importante entre las pulsaciones y acciones de ambos jugadores. El juego puede tardar 4 fotogramas (o más, o menos, en función de la conexión) en traer de vuelta la información del otro lado. Y, si se van acumulando desfases, el problema se va agravando.

La clave, entonces, es ver cómo tratar el envío y recepción de estos paquetes de información para camuflar el desfase real, e inevitable, que se produce. Porque, hemos hablado de una partida con 64 de ping; pero, ¿y en personas de países o continentes diferentes? Ya sabéis que la diferencia se dispara.

Y, para poder tratar con estas situaciones, para eso mismo, están los netcodes.

El estándar: delay-based netcode

Lo más empleado en juegos de lucha, sobre todo en los japoneses, es lo que se conoce como delay-based netcode. Títulos como Super Smash Bros. Ultimate, por ejemplo, lo usan y ya sabemos el resultado que puede provocar si las conexiones no van del todo bien.

Su nombre delata perfectamente cómo trabaja. Lo que hace es introducir un retardo artificial a las acciones que introduce un jugador en su consola, equivalente al retardo que pueda tener el jugador que está al otro lado de la conexión. Haciendo esto, en teoría, se consigue que los inputs de ambos se ejecuten al mismo tiempo y no haya discordancia.

HQ

Para que quede claro, volvemos a los números. Estáis jugando por internet a Smash y tenéis un ping de 64 ms (4 frames). Cuando el jugador al otro lado realiza un input, la información tarda 2 frames en llegarte. Para evitar la descompensación, cuando el jugador local hace un input, el juego mete de por medio un retardo también de 2 frames para equiparar la situación y evitar sobresaltos.

De esta forma, si ambos han pulsado a la vez, cuando llegue el frame 4 respectivamente, verán exactamente lo mismo.

Claro está, eso es lo que pasaría en un mundo ideal. En el mundo real las conexiones no son constantes y, cada vez que hay una fluctuación, el juego se detiene para que no se rompa su sistema de envío y recepción de datos. Algunos juegos tratan de cambiar el retardo de los inputs al vuelo para evitar que la partida tenga 'parones', pero eso, sumado a lo impredecible que puede ser el flujo de la conexión, puede provocar situaciones en las que la partida se desmadre por completo.

HQ

A eso hay que sumar que, aquellos entrenados sobre todo en juego offline, notan ese desfase forzado que se introduce. Además, en los momentos de varianza en la conexión se producen inconsistencias que pueden provocar la no detección de inputs, entre otros tantos problemas.

Rollback netcode: dispara primero, pregunta después

Los problemas del delay-based netcode hicieron que el lanzamiento de Street Fighter II: Hyper Fighting en Xbox 360 hiciera a muchos jugadores llevarse las manos a la cabeza. Los problemas de conexión a la hora de jugar online provocaron que algunos buscaran otra solución para capear el desfase que provoca el flujo de información en partidas por internet.

Así nació el desarrollo del middleware GGPO, que se apoyaba en otra técnica de netcode llamada Rollback. Su forma de tratar el desfase, los retardos y las fluctuaciones de conexiones es muy diferente, ya que trata de predecir la acción del jugador y, aprovechando los fotogramas necesarios para enviar y recibir los datos, corrige al vuelo para evitar cortes en la imagen y la partida. Sin congelar la imagen, ni quedar a la espera, prevé y actúa en consecuencia.

Nickelodeon All-Star Brawl


  • Nota: en el género Shooter, las bases del rollback netcode han sido el estándar desde el lanzamiento de Quake III Arena en 1999, aunque la idea se estableció... ¡En 1996! Con el nombre de 'client prediction'

Por ejemplo, dos jugadores con un pin de 64 ms o 4 frames hacen un input a la vez. El local ve su animación sin problemas y, 2 frames después del input (en el tercero), recibe los datos del otro jugador. El juego, en ese momento, lee cuál es el input que está llegando desde fuera y compara con su predicción. Si coincide, la deja avanzar. Si no, en ese tercer frame, reconstruye los datos desde el primer frame para que coincidan y encajen con los que llegan.

Lo hace rápidamente y, en ocasiones, recortando animaciones, para poder respetar los inputs y el estado del juego en ese momento. Además, mientras llega la información, trata de predecir el input del otro jugador de forma que, si estaba manteniendo pulsada una dirección, seguirá pulsada en esos 2 frames de diferencia. O, si estaba pulsando un botón, seguirá pulsándolo durante esos pocos milisegundos.

Nickelodeon All-Star Brawl

La parte positiva de esta solución es que puede capear los cortes y fluctuaciones de conexión ya que, comprobando la influencia de cada input en el estado del juego, puede ver si, en efecto, este afecta a la partida. Es decir, si lanzas un ataque y, mientras este se ejecuta, realizas otros inputs mientras tanto y coinciden con un corte de conexión, no hay problema. El juego los ha registrado, pero detecta que no afectan al estado de la partida y, por lo tanto, no se tiene que detener a causa de ese corte para poder introducirlos. Lo que mantiene la fluidez en todo momento.

Cabe mencionar que también depende de cómo se integre, ya que a día de hoy muchos juegos de lucha online se apoyan en un entorno diseñado para el sistema delay-based y, en base a este, establecen un sistema de rollback. Títulos como Street Fighter V introdujeron este sistema más reciente, por predicción, pero con una implementación errónea que derivó en lo que muchos usuarios ya saben más que de sobra.

No es la solución perfecta, pero sí la más útil para conseguir que no haya cortes en la partida y que no se pierda información vital para el combate durante el juego. Para conseguir que una partida online se parezca todo lo posible a una offline. Este sistema es, justamente, el que emplea Nickelodeon All-Star Brawl, como confirmaban sus desarrolladores al poco de hacerse el anuncio. Aunque otros como Brawlhalla, Killer Instinct o incluso Mortal Kombat 11 ya apostaron por él antes.

Nickelodeon All-Star Brawl

Contenido relacionado



Cargando más contenido