GG Fridays on Rollback Netcode in Fighting Games
Picture this: you’re itching for some Tekken so you boot up your PS4. You navigate straight to ranked, pick your custom Kazuya outfit, and wait to get matched. Now you’re up against a Law—a matchup you’re bitterly familiar with. Once you’ve gotten in, you win the first round, and then the second—you’re doing good! On the third round though, your connection dips. Law starts spamming Dragon Tail, and this continues for the entire match, netting you a loss. What just happened?
That’s the reality of bad netcode. One moment, your connection’s stable and you’re playing like always; the next however, the game is stuttering left and right. It wouldn’t be considered salty of you if you blamed netcode when it gets bad.
You might be thinking, what is netcode? To give a basic rundown of what it is, it’s the code that handles the back-and-forth transfer of data between you and your opponent. It’s present in pretty much any online game—Valorant, League, or Tekken to name a few. If you’re an online gamer, you’re probably all too familiar with the concept of ping. This is the time it takes for data to make a roundtrip from you to your opponent. Think of it like netcode being your delivery guy and ping as the time it takes for him to get to your place and back to the warehouse. If your connection is good, netcode brings your information to your opponent and back as fast as it can and vice versa according to your ping. When it’s unstable, well, that’s where the problem starts.
Connection issues can happen for any number of reasons. Maybe your mom starts watching Netflix dramas in her room and your internet speed dips or maybe your machine starts heating up and the processor can’t give you a stable framerate. Whatever the reason, the outcome is that your game and your opponent’s game desync. The method that netcode uses to deal with these kinds of issues is how the netcode is categorized.
In fighting games, the most common form of netcode is called delay based netcode. The way it works is that if there’s any sort of desync between you and your opponent, the game just waits for the late machine to catch up. You might have already seen the problem. Just waiting causes really obvious stuttering, and it gets worse if your ping starts fluctuating. If you’ve spent anytime on fighting game forums, you know how salty people get over this.
The other type of netcode is called rollback. It’s basically a delay based netcode with a twist. What it does is that the game doesn’t wait for your opponent’s input to come to you. It makes guesses of what your opponent’s going to do in the next frame. If it’s right (which it usually is) the game plays as normal—as if you were playing offline! If not, the game “rolls back” to reflect what your opponent actually did. You might ask, wouldn’t this cause teleportation? Usually, the time to rollback is usually extremely small, about 3 or so frames—that’s 0.05 seconds. If you can’t react to a Snake Edge, you won’t be able to notice rollback. The best part is that if there is lag, the predictions are usually correct and the game goes on seemingly lag free. Using delay based netcode would mean that these microstutters would still happen, no matter how small.
If you’re sitting there and thinking, “Well I have a great connection on Tekken and it uses delay based netcode, why should I care about rollback?” Rollback doesn’t just make good connections great but it also makes bad connections playable. This means that you, with your Fibre connection in the middle of the city, can play with people way farther than what’s possible with delay based netcode—giving you a wider range of opponents. Plus, even with a “good” internet connection, sometimes your internet just gives up and you end up being unable to play with people down the street from you.
A lot of indie fighting games have already implemented rollback for their online multiplayer. Skullgirls, Punch Planet, Them’s Fighting Herds, Fantasy Strike, and the soon to be released Guilty Gear Strive will include rollback—a welcome change among Triple A fighting game devs. If you want a taste of what good netcode feels like, go try them out! Once you’ve seen what it’s like, you’ll want it in every game. Chances are you’ve actually already tried rollback even if you haven’t played a fighting game. It’s the standard for FPS games across every console. If you want to see more devs use rollback, tell them! Strive’s developers were sent so many tweets about implementing rollback that they actually implemented it. Happy gaming!
If you want to learn more about netcode, here are some helpful resources: