-
-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lockstep support, or deterministic calculations. #1166
Comments
Which are the floating-point numbers that are used in Flecs' built-in systems? I can think of Can't speak on your other questions. |
Yes it can. Like @copygirl mentioned you can override the Flecs has a reflection framework that lets you build any kind of serialization on top of it. Take a look at the JSON code for an example. |
|
Ah, the infinite loop sounds like an issue that was recently reported on the Discord as well. I'll take a look at that. There are plenty of cases where floating point numbers are used in the code, though all usages related to time use the The JSON serializer is not deterministic. I mentioned it because it's an example of a serializer that's built on top of the reflection framework. You can build a deterministic serializer on top of the reflection framework, there's nothing in it that'd prevent you from doing that. |
@SanderMertens thank your answer. when infinite loop fixed i will close this issue. |
Fixed! |
@SanderMertens , I am currently attempting network synchronization with Lockstep based on Flecs.
Also, thank you for providing such a clean ecs solution for the community to use. |
Can Flecs support Lockstep network synchronization? I've noticed the use of some floating-point numbers in the systems, which is unacceptable for deterministic calculations.
The Lockstep scheme needs to synchronize an initial world state to the client. Can Flecs serialize the state of the world into binary and then deserialize it on another end? What solutions can ensure that the deserialized result is consistent with the server's state, such as the order of components and the execution order of systems?
The text was updated successfully, but these errors were encountered: