But how does this really work? The website also says it's just baked into the language but there are many different approaches to networking games that have their own pros and cons.
To be able to roll back, Easel incrementally snapshots the game state every tick. It only snapshots (and restores) what has changed, which makes it a lot more efficient than most rollback netcode implementations.
It also uses a peer-to-peer relay and adapts the latency asymmetrically, so the player who introduces latency feels their own latency.
I know there are other models and pros and cons, this is the right choice for Easel because I wanted to make the multiplayer fully automatic. One shared world, coded like a singleplayer game. There are certainly games which suit a client/server model better but I think the developer would then need to understand where their code is running and when to do remote procedure calls, and my goal was to make multiplayer so easy that even a teenager on their first day of coding could do it.
It might be a good idea to highlight some of the limitations to this approach somewhere so users aren't caught off guard later in the development process. For example, it wouldn't be great to build a competitive FPS or MOBA with this because the game state is replicated to all players which is a cheaters dream. The latency characteristics would also not be ideal for games with a larger number of players. I also assume there are no escape hatches for doing any non-deterministic things like I/O so there would be limited to no persistence possible. It won't be an issue for most games but worth highlighting just in case IMO.
Persistence is actually handled by the server, and then the server inserts an input back into the game state with the result when it's done. So, no issue with I/O.
I see Factorio is doing deterministic lockstep, which like rollback netcode but without the rollback. That makes sense seeing as it is a game with a lot of state and so it would be too expensive to snapshot and rollback all the time. But yes, I think having a game engine which guarantees determinism in all cases could be a useful base for other multiplayer architectures too. Right now Easel only does rollback but maybe it could do more in the future.