Remix.run Logo
10000truths 2 days ago

> a lockstep solution which only considers inputs

Nothing stops you from adding a PRNG seed parameter to initialize your deterministic game engine.

Jare 2 days ago | parent | next [-]

Typical deterministic game engines will do this, send it to every machine as part of the initial game state, and also check the seed across machines on every simulation frame (or periodically) to detect desyncs.

cubefox 2 days ago | parent | prev [-]

That could lead to other subtle problems elsewhere though, because it requires synchronizing the seed. If you can't do that, it could lead to problems. E.g. when comparing offline speedruns where everyone would have a different seed. Then some players could have more luck than others even with the same inputs, which would be unfair. (Though I can't think of anything else at the moment.)

chowells 2 days ago | parent [-]

That's not more of a problem than synchronizing the player names at game start. It's table stakes for an online game.

cubefox 17 hours ago | parent [-]

If you synchronize the seed at game start for speedruns, the seed is the same for everyone, and players can again manipulate their luck, so nothing was gained.