Explaining how fighting games use delay-based and rollback netcode
arstechnica.com
arstechnica.com
This style of development has so many advantages e.g. time travel debugging, dead simple save/load; most of the application code can be referentially transparent, and as a result easier to reason about.
I’ve found it to be an incredibly compelling style for productivity applications as well. In the application I’m currently working on, I use this style, and I also use rollback for state synchronization between users. I have slightly different motivations, but a similar implementation to the one described.
One quibble in the section “How a game must be built”
> every single frame must be serialized
Yeah, that is one way to do it, but not a hard requirement.