Just reposting a little something from Mathieu, CEO at Amplitude Studios, on the synchronisation issues in Endless Space. In case you have missed it, here you go:




AmpliMath wrote:
We have doubled the number of programmers, and as I said, it is starting to pay off. The bug I was mentioning earlier, concerns the inaccuracy of floating point numbers in the network messages. We had noticed in the past, that some variables tended to drift between computers of the session. For instance, the growth value for a star system was progressively diverging from one computer to the other. We thought this was inevitable and due to slight imprecision or differences of calculus between different systems and processors. It turns out that the function we used to transform floating point number into character strings, before sending them over the network, was not behaving symmetrically. So for instance the 3,1416 floating point number was written as "3,1416" in the network message, but reinterpreted as the floating number 3,1417 on the receiving computer. This could gradually make the whole simulation diverge. It has now been fixed with an error prone conversion function.

The other problem we have detected, is that the computation of simulation values is not always deterministic. For instance, when a simulation value is computed by applying sums, percentages, and multiplication, the order of these operations is not always the same on each system in the game session. We must look into the exact cause for this and fix it, next Monday, once the "Salt Mine" reopens; the company is closed on the week ends, to allow programmers to get some rest.

I suppose this was a bit too technical, but I wanted to give you a precise heads up, and show that we care and dedicate. I also want to tell you that prior to these findings, we have also changed the way the network orders are sent, we thought latency was the cause for out of sync. This was already in Add-On 3, but obviously this was not enough and our doubled efforts have allowed us to find more bugs.

Of course once these fixes are checked in, we will also increase the testing effort to check for regressions.