Fighting games are great, but…

I love fighting games. I’ve had the pleasure of growing up with some great fighting games like Mortal KombatStreet Fighter IV, and Ultimate Marvel vs. Capcom 3. I’ve gotten to see the fighting game community grow into such a great community where we can all celebrate fighting games together whether competitively or casually. The pandemic has put fighting games and the fighting game community in an interesting situation where major tournaments and locals have been pushed online. Tournaments like NLBC (Next Level Battle Circuit) and WNF (Wednesday Night Fights) host weekly online tournaments for various fighting games. Many may seem like this is a good resolution to combat the current pandemic, but many gloss over one problem-fighting game have: netcode. 

Fighting games are great, but fighting games online have been a recurring problem dating back to 2006 when online gaming was still new. Japanese fighting game developers use delay-based netcode which is when both players wait for each other’s inputs before the game state can advance, hence why a delay is placed to ensure both players’ inputs are received before the game state can update. Japanese fighting game developers have used delay-based net code for years, but don’t seem to understand the problem of using delay-based netcode. For starters, delay-based net code is extremely sensitive to distance and connectivity, the further away your opponent is the more lag and high ping your experience. Delay-based netcode can be quite inconsistent, though the problem of consistency falls on networking. Networks are notorious for being extremely inconsistent, sometimes you may enter a match that has two frames of delay then suddenly spikes to six frames of delay. But the one saving grace delay-based netcode has is it’s inexpensive and easy to implement, and reuse in-house for other fighting games. There is a solution to delay-based net code: rollback netcode.

Rollback netcode is when both players run simulations of the game state at the same time, practically in sync. If both players hit inputs at the same time, the game will read the inputs at which they were hit and the game simulation will roll back and simulate everything to the current game state meaning the game won’t lag and frames won’t be delayed; however, it will teleport instead. Street Fighter III: 3rd Strike Online Edition, for example, would give players false KOs when an opponent blocks an attack at low health in conditions of high rollback. The beauty of the rollback net code is that you can adjust the rollback so that you can find opponents with the same rollback settings. Though rollback netcode is the solution to delay-based netcode, there is one problem rollback netcode can create for fighting games online. When both players run simulations of the game not at the same time, practically desynced, we call that rifting which causes slowdown on your opponent’s end creating one-sided rollback. Their inputs will be received late on your end with increased rollback and teleportation while your inputs will be received on time on your opponent’s end with little to no rollback and teleportation; and so, the net code must now fix the imbalance of frames to have the game’s state running in sync with both players. 

Japanese fighting game developers have overlooked the great qualities rollback netcode can provide for fighting games online. The main reason for that is that rollback netcode is extremely hard to implement. It takes one “tick” to perfect or completely ruin a fighting game’s net code, one frame should approximately equal 16ms/16.66ms (1/60th of a second in real-time) meaning in an actual game the ping would be sending information to both players in-sync; however, the higher the ping the slower rate information is sent to both players causing frames to be delayed. If not properly implemented, this could risk rollback netcode not working as it should.

Over the past couple of months, Japanese fighting game developers have listened to fans on rollback implementation and have since begun implementing rollback in their fighting games. SNK recently added rollback netcode into The King of Fighters XV which fans got to try out during the beta back in November. Arc System Works also added rollback netcode to Guilty Gear -Strive- and recently announced rollback implementation to BlazBlue: Cross Tag Battle and BlazBlue: Centralfiction. For more information on rollback netcode, I highly recommend watching: Core-A Gaming, Stephen Lyon also known as Sajam, and Maximilian Christiansen also known as Maximilian Dood on Youtube for more information on rollback netcode.