HouraiTeahouse / backroll-rs

A (almost) 100% pure safe Rust implementation of GGPO-style rollback netcode.
ISC License
351 stars 20 forks source link

Does the bevy plugin need to be single threaded? #21

Closed bubg-dev closed 2 years ago

bubg-dev commented 2 years ago

There's a comment saying "to avoid potentially introducing non-deterministic simulation results", but is there a specific unfixable issue? It seems to me that this should be at least configurable, since it should be possible for all the systems to be completely deterministic.

I apologize if this is documented and I just missed it, but I feel that this should be configurable or have a more descriptive comment saying why it has to be single threaded.

james7132 commented 2 years ago

With the coming advent of bevyengine/bevy#2381 and other methods of more easily enforcing system order, I'll be removing this limitation in the next release of bevy_backroll.

SystemStage::single_threaded also did not guarantee that system order was the same from tick to tick too.

james7132 commented 2 years ago

Implemented as of 51e479132899f285d284044e01624f128345c305