Why Rollback Netcode Is So Important to Gamers
Fighting games are an important piece to the esports community. From Street Fighter to Mortal Kombat, you’d be hard-pressed not to find some fighting game at a tournament, but with the world locked in a global pandemic, online play seems to be taking the world by storm. However, this brings uncertainty into consideration when playing online with friends. That’s why a lot of gamers are looking to rollback netcode to play their games. But what exactly is rollback netcode? And why is it so important?
What Is Rollback Netcode?
Rollback netcode is the answer to fixing issues found within delay-based netcode, which many games used a few years back. This is most commonly referred to as “lag” where an input placed by a player is not played until both participants in an online match receive it.
For instance: If Player 1 and Player 2 are facing off in Mortal Kombat 11, and both players are experiencing a 50ms delay, then any input started by both players is going to be played 50ms after the player presses a button, for fighting games like Mortal Kombat and Street Fighter, timing is key for playing effectively during a fight. This can cause both players to play worse when facing one another. Delay-based netcode is also a bad decision. With the fighting game community being a global community, a high internet area will still face lag if they play against a player who is in a poor internet area, a better case in the FGC, another country. This, in turn, makes it inevitable that two players with good internet connections will have to deal with the massive cons of delay-based netcode if the ocean separates them.
This is where the massive pros of rollback netcode come into play. With rollback netcode, there are multiple moving parts aside from its predecessor. The game will attempt to predict the player’s movements based on their previous actions.
For instance, let’s say that two players are in the middle of a game of Street Fighter III: 3rd Strike. They’re playing with rollback netcode and have to deal with a delay of 45ms. Suppose a player playing as ryu punches, the person playing as ryu will throw a punch instantly. In that case, the player on the other side will see ryu snap into the punch’s animation right after it starts as the input is catching up to the main player. This is barely noticeable by both players. For both of them, it makes the gameplay as if they’re playing on LAN.
However, in the case of a longer delay between players, for instance, 60ms, a player playing as ryu jumps while moving towards their opponent, the opposing player will see ryu move towards them. But then, in a sense, travel back in time to the same place that he was intended to be.
However, one major flaw in the netcode is pretty easy to overcome; it’s called rift. This only happens if two players compete in a match, but one player’s game runs slower than the other players. What causes rift is the prediction algorithm used in the netcode. If one player’s match is running slower on their hardware, the netcode will send signals slower to the other player, while the player on the broken version of the game will receive more signals from their opponent. This means that one player’s game will be running fine, but the other player will see their opponent being pulled back and forth across the screen as their opponent’s character is trying to catch up to the player on the non-broken version of the game. This could also be considered as a form of rubber banding.
Rubber banding is usually seen in FPS titles like CSGO and Call of Duty. The context behind what rubber banding is that when a player is connecting to the server with high ping, what the player sees on the game is client-side, which means that the enemy placement on his screen is information sent to the server and then sent to him. If he moves while he is in the game, the server will notice and move forward. However, all servers run on a tick system. This means that every second, the server is updating 64 times to move players, decide damage values and remove players who have been eliminated to respawn. If a player is farther than his current position in the server or has done anything that the server has not seen him do, the game will pull him back to his position that the server has placed him in. essentially traveling the player back in time. From the player’s perspective on the client, he slides back to his previous position on the map or is pulled by an invisible rubber band, hence the name.
The same concept is implemented in fighting games. Still, since timing is a massive part of the competitive scene, a server is not implemented as players aren’t playing with multiple other players. This brings us to the connection fighting games use, peer-to-peer.
Peer-to-Peer and the Importance of Rollback Netcode
Fighting games exclusively use peer-to-peer connections. Without a server to play on, fighting games can survive longer than most other conventional online games. The fact of the matter is that fighting games don’t have servers to shut down. The lifespan of a fighting game ultimately comes down to the type of netcode it uses. For earlier fighting games, a peer-to-peer connection is used, but the netcode is what matters. Delay-based netcode became the standard. But one man was dissatisfied with the poor gameplay of delay-based netcode and sought to change it all for himself.
Tony Cannon, one of the founders of EVO, the fighting game esports tournament, was completely dissatisfied with the re-release of Street Fighter 2: Hyper Fighting for the Xbox 360. Using peer-to-peer delay-based netcode made the game nearly unplayable for someone with a poor internet connection. Tony had decided to get down to work in 2005 and start producing a new version of netcode that would keep the latency of fighting games and reduce lag, meaning that anyone online could be able to get their hands on a fighting game. Thus, GGPO, the rollback netcode SDK, was born.
GGPO became the one way to play fighting games, with hundreds of games being supported on a downloadable client of the software. AAA game companies such as NetherRealm brought GGPO in for their titles, licensing it out from Cannon. Independent fighting games such as Them’s Fighting Herds and Skullgirls made use of GGPO for their titles.
With GGPO catching on, Cannon eventually released GGPO as an open-source project under the MIT license, meaning that anyone who wanted to look at GGPO for themselves would be able to use it, benefiting the fighting game community as a whole.
This brings us to the importance of rollback netcode as a whole. The importance of netcode in esports and fighting games comes from the fact that all the players need to play their best, with little to variables in the gameplay that could cause an unwanted disadvantage in their playthrough. This is why most tournaments are held in person with similar setups and a perfectly fine LAN connection. LAN’s survival from the early days of gaming is solely based on the absolute removal of lag between players.
The downside to 2021 is that we are still recovering from the pandemic. It forced many of us inside our homes and competing in the esports world from all around the globe. This brings in the question of how exactly can games that require such tight reflexes be playable online between players who might not have the best internet connection. Right now, the answer lies directly in front of us in the form of rollback netcode. Not only for the esports world but for the entire fighting game community. Anyone who wants to play a fighting game knows that when they play, they want to be able to experience the game at its best, as well as compete against friends or in offshoot tournaments themselves. And the horrors of delay-based netcode have been shown to the masses with the netcode used in Smash Ultimate. Nintendo has shown that its online offerings are not up to par with bigger companies in the industry. Many fans who play Smash, even competitively, have had one or two things to say about Smash’s netcode for the past few years it’s been released on Switch, with the game stopping entirely and even disconnecting players if the connection is still unstable.
This is more than enough of a reason for fans to be upset. Still, nobody is upset at games like Mortal Kombat 11, Injustice 2, Guilty Gear -Strive-, Skullgirls, Rivals of Aether, Lethal League Blaze, and even now with Slippi and its incorporation of GGPO into the netplay of Smash Bros. Melee. That is because all these games have been made enjoyable by the inclusion of GGPO and its rollback netcode.
The netcode is not just a way to fully experience the online versions of all your favorite fighting games. Rollback netcode is a saving grace to the fighting game community in one of the darkest times in the world, with hundreds of people deciding that this time is the right time to pick up a controller and finally see what the fuss is about. For those people who would have experienced a game like Mortal Kombat 11 against friends online without the inclusion of rollback netcode, there’s a good chance that the lag of delay-based netcode would’ve stopped them from wanting to pick the game back up to play online. That’s why rollback netcode is so important.