Are operations on Vector2/3 / floats in unity deterministic? I am very familiar with IEEE-754 and how floating point integers work under the hood… but am curious how Unity conforms to the specification or if it does any magic under the hood for determinism. Would I be forced to use fixed point arithmetic to achieve this?
Context: I am making a game where a simulation will be run based on some initial state and input added across the simulation. I will only use physics in the rendering pipeline for effects and other visuals. Users will play offline / async and the game servers will validate users past simulations by sending initial state + input + end state. It is paramount that on IOS, Android or Linux that the game code all produces identical results across runs so I can differentiate possible cheaters/hackers from innocent users and bugs. As well as minimize the amount of simulations the user does that get invalidated… this would cause a cascade effect to ruin most of there efforts since the last verification.