Determinism of Unity's physics engine has been a reoccurring topic within the community and yet I don't feel like it's been explored very much as people often condemn it because it uses floating point math. Many games need determinism for things like synchronous simulations across the network or small, elegant replays. Common knowledge so far has been that the Unity's physics is not deterministic because of floating point imprecision. According to this article, floats have accuracy of at least 6 digits which, I think, is more than enough precision for physics. I never saw why the inputs and ouputs for physics couldn't just be rounded to the significant digits as this would take out nearly all randomness caused by floating point imprecision. Furthermore, certain games like RTS require simulation at very slow intervals - maybe 10 per second - so not only would there be less room for inaccuracies, but the rounding would also cause a less drastic change on the simulation. As of far, I can think of no reason why through the use of heavy rounding and a low simulation rate the physics can't be made deterministic. I don't think there are any random factors (besides imprecision) in the PhysX or Box2D engines and the floats definitely have enough precision for smooth rounding. At the very least, I think the collision detection can be used and the impulses calculated in a custom manner. This is much better than the alternative of having developers coding everything from scratch. Do you think this will work and if not, why?