You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Switch all physics computations to use fixed-point numbers.
This will enable us to get rid of the inline assembly on x86 systems, and makes physics simulation reliably reproducible across system architectures, which is important for replays.
Changing to FP match will cause some compatibility problems:
a) replay files will be incompatible due to changed binary representation
b) replaying a replay could give slightly modified results
c) packet sending state updates from server to client will become incompatible
d) simulation on client and server might be slightly different if they use different versions
Out of these, a) could be fixed relatively easily, b) won't be fixed (would require us to keep the old physics code around), c) would require some work but should be doable if both client and server have a conversion layer that reinterprets packets from an incompatible version. Finally, d) should not be significant since we send the full game state regularly, so differences cannot accumulate (unlike in replays)
The text was updated successfully, but these errors were encountered:
Switch all physics computations to use fixed-point numbers.
This will enable us to get rid of the inline assembly on x86 systems, and makes physics simulation reliably reproducible across system architectures, which is important for replays.
We probably should not roll our own implementation, but use an existing one such as
https://mikelankamp.github.io/fpm/
Changing to FP match will cause some compatibility problems:
a) replay files will be incompatible due to changed binary representation
b) replaying a replay could give slightly modified results
c) packet sending state updates from server to client will become incompatible
d) simulation on client and server might be slightly different if they use different versions
Out of these, a) could be fixed relatively easily, b) won't be fixed (would require us to keep the old physics code around), c) would require some work but should be doable if both client and server have a conversion layer that reinterprets packets from an incompatible version. Finally, d) should not be significant since we send the full game state regularly, so differences cannot accumulate (unlike in replays)
The text was updated successfully, but these errors were encountered: