8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 2
Why Hacker News recommends it
HN treats it as the definitive practical talk on rollback networking in a shipped AAA fighting game.
What it is
A 2018 GDC talk by NetherRealm's Michael Stallone on the engine changes, optimizations and tooling needed to roll back and re-simulate up to 8 frames in 16 ms in Mortal Kombat and Injustice 2. It is a deep dive into deterministic rollback netcode.
Recommended by 4 HN commenters across 5 different months, 2020 to 2025.
What Hacker News said
Recommends syspec · 2020-07 · on “Dolphin Progress May and June 2020”
Do you have a link to any blog posts, i would love to read about it. I tried to look on [LINK] , but development appears to be closed source? I'm just an outside observer, but i love the topic. For others like myself, this is a great GDC video to watch on the topic > 8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 2 [this video]
Recommends syspec · 2021-02 · on “How fighting games use delay-based and rollback netcode (2019)”
Here's another great video on the subject: 8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 2 [this video] One of my favorite topics, partially because there's not that much literature on the subject but it's so important
Recommends dilap · 2021-10 · on “1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond (2001)”
I guess it depends on how high a level you're looking at it from. Both lockstep and rollback are variants of the general approach of "shared deterministic simulation" where you're mostly just sending inputs. ("Mostly" 'cuz on reconnect or desync or whatever you'll probably want to send full state.) I really enjoyed this GDC talk on rollback networking: [this video] (From 2019.)
Recommends Oberdiah · 2023-10 · on “Ready Player Two – What the Multiplayer Web Can Learn from Video Games”
Specifically "Deterministic Rollback", as the clients don't wait for the server's response before displaying the change locally. For an in-depth explanation, see this excellent GDC talk on its implementation in Mortal Kombat and Injustice 2: [this video]
Recommends c4wrd · 2025-03 · on “Activision Cut Call of Duty's Build Time by 50%”
For those who aren't in the video game development field and like technical content, I cannot recommend watching GDC's content enough (even better, attending!). Although this blog post isn't as detailed as I've seen them do in the past, I appreciate that game developers have the opportunity to share their wins like this externally. If you enjoy watching technical content and video games, the following videos are greatly entertaining deep dives into ludicrously technically complicated bugs or performance optimizations done to deliver the gaming experience that I myself take for granted. - I Shot You First: Networking the Gameplay of Halo: Reach: [LINK] - 8 Frames in 16ms: Rollback Networking
Cites honkycat · 2021-04 · on “DreamWorld (YC W21) MMO raises all red flags”
I do indie game dev as a hobby, and I have taken multiple classes on networked multiplayer, and I've also implemented VERY SIMPLE proof of concepts for multiplayer fighting games in Unreal Engine. I think what a lot of people are missing here is the context that there is STILL not a "make it multiplayer" button in game engines. They do NOT do most of the work for you for any facet of game development. Making games is still a ton of work. To name a few things that Unreal Engine does not do for you: networked movement prediction, acceptable LERPing to positions when client/host disagree, anticheat... basically it has a nice client/server model API you can use. You can annotate structs to effic