How fighting games use delay-based and rollback netcode (2019)
&gt; We’ve been doing delay-based lockstep networking architecture for 25 years. Quake came out and we switched to a server-client architecture where the server tells everyone what they should be seeing and everyone interpolates it in order to make it look smooth. When this happened, lockstep networking kind of stopped evolving. It’s my opinion that rollback is the next step for lockstep networking and, just like every other discipline in video game development, it’s time for lockstep implementations to evolve. The time investment is just super worth it to me.<p>Rollback has been in the industry for years now. The whole article reads like there&#x27;s basically large swathes of the fighting game subset of the gaming industry who don&#x27;t know anything about multiplayer game networking.<p>Which is understandable considering the game industry at-large doesn&#x27;t know a thing about multiplayer game networking. Go checkout an out-of-the-box build of Unreal Engine 5. Yeah, they&#x27;ve got <i>Nanite</i> wow!, but do they have Actors who don&#x27;t rubberband? No, and it&#x27;s stupid and frustrating. It makes the whole engine feel like a joke. Especially compared to Source 1 which had client-side prediction and rollback support over dial-up. Just plain dumb.<p>If you think that&#x27;s bad, Unity does basically nothing for you, and Godot pretends to have multiplayer support by saying it has ENet bindings. Wow, thanks!<p>It&#x27;s disappointing that firms can chase physically based rendering, and invest so many man-hours into asset development but can&#x27;t recreate what&#x27;s existed for literal decades.<p>Also, AFAIK QuakeWorld was THE client-side prediction implementation to match. Maybe it was developed prior to John Carmack, but I don&#x27;t know of any major software that did so with a timestep. Everything else followed. This guy doesn&#x27;t know what he&#x27;s talking about.<p>Counter-Strike: Source had rollback in 2004 and Yahn Bernier wrote about it in &quot;Latency Compensating Methods in Client&#x2F;Server In-game Protocol Design and Optimization&quot; in <i>2001</i>.[1] Keep up dude.<p>[1]: <a href="https:&#x2F;&#x2F;www.gamedevs.org&#x2F;uploads&#x2F;latency-compensation-in-client-server-protocols.pdf" rel="nofollow">https:&#x2F;&#x2F;www.gamedevs.org&#x2F;uploads&#x2F;latency-compensation-in-cli...</a>