Throughout last year, many esports titles like Mortal Kombat had to adapt to fully online environments. For some, if not most, this was a relatively smooth transition. Even traditional sports turned to their esports counterparts to compensate for the lack of real-world events, such as motorsport series like formula one moving to a short period of simracing using the branded F1 game by developer Codemasters.
For many scenes, especially for the fighting Games Community, the lack of offline events was a hard hit to their communities. For games like Super Smash Bros, which historically has been running as a core part of many locals in the United States and abroad. Worryingly, the most recent entry in the series, Super Smash Bros Ultimate, has less than ideal online netcode.
For contrast, Mortal Kombat 11 tournaments ran far smoother thanks to their netcode implementation. But to adequately explain why this was the case, you should first learn the basics of netcode.
The basics of netcode
For those unfamiliar with the term, netcode refers to how the game handles two or more players interacting with each other and potentially the fighting grounds. For most games, a central server receives and sends commands to the players or clients more appropriately.
The central server takes on the duty to read the player’s inputs, resolve any conflicts, and then give both players the result. By conflicts, we mean many things, but to provide you with an example: a hit registering for one of the clients and not for the other would qualify as such.
In resolving the conflicts, we can find the common elements for when people discuss netcode in fighting games. There are broadly two categories: rollback and delay-based netcode.
Delay-Based
This is the oldest of the two approaches and is the preferred method for many Japanese fighting game developers. It generally consists of delaying the client updates until both of the client inputs have been received and processed.
Delay-Based can lead to a lot of lag when, for instance, a player is very far away from the server. Even if the other is close, the closer player will have to wait until the server receives and processes all inputs.
As you can imagine, this is very slow but easy to implement and can be aided by a multitude of things from predictive inputs to servers located at crucial geographical locations and more. Of course, in a small nation with fast and stable internet speeds, like Japan, Delay-Based is not as much of an inconvenience.
The other benefit of this approach is that you can always trust the game state to be real, even if laggy because all simulations are made by the server and confirmed by the server. Thus it is impossible to miss a hit that would have otherwise connected.
Rollback-Based
The other standard solution to this problem is to use what is called rollback. In this method, both clients simulate the game, and inputs are sent to the server timestamped to know when they happened. The server then resolves any conflicts and updates the game state for both players with the simulation’s correct version.
That may sound crazy at first since you are potentially missing hits because, in your simulation, your opponent might have been the right distance, but in the resolved game state of the server, they were not. But it’s not, it works well, and it is, for the most part, how we as humans better perceive our inputs. Having instant feedback on what we pressed is very important, even if the result might not be what we wanted.
Of course, like Delay-Based, other solutions can be put on top of this basic implementation to refine the way it works. But if we have to explain those, we would need a lot more time.
Mortal Kombat’s netcode
So, what was the saving grace of tournaments for MK11 in 2020? Reliable implementation of Rollback-Based netcode. Many in the FGC would consider MK11’s netcode to be among the best in the scene.
Thankfully other developers have taken note of NetherRealm studio’s success and appraisal by the community and have begun developing their implementations or relaying on the GGPO (Good Game Peace Out) implementation, which was made for Fighting games. The latest Guilty Gear game, for instance, uses GGPO.
Thanks to their implementation of rollback, events like the Pro Kompetition have been able to continue working flawlessly in 2020. Alongside many other events in the scene, it is clear that nothing will ever come as close to offline matches. MK11’s online environment is as close as we can get to perfect in the current times.