The Effect of Slow NetworksTo demonstrate how the slowness of the connecting network can impair the playout of a collaborative simulation even in the absence of errors, we ran some simulations with several slow networks.
|message delay [ms]||250||500||500|
|message loss [%]||0||0||0.5|
|packets sent [/s]||20.5||20.5||20.5|
|AVI (FFV1)||swarm.025.0.avi||swarm.05.0.avi||swarm.05.05.avi||codec: ffdshow-tryouts|
What you are looking atThe streams are actually superpositions of three views of the game from three of the hosts. When the three views on the position of a particular bee coincide the result is a maroon ball for that bee. When the views differ, one edge will be colored differently. The honey-gathered numbers at the bottom are printed for each view.
Note that the simulator's intelligent agents controlling the bees do not predict the effect of bouncing off the border of the playing field, this will cause some unexpected crashes (like the one around 350s where the queen runs into a corner at full speed).
AnalysisIn the 250ms example, there is only a single crash that is not caused by unexpected border bouncing (at 355s). Check out the near misses at 320s, 375s, and 390s. If the bees had only a slightly slower reaction because of a slower network, they would have certainly touched the queen at those points. In the 500ms example, there are a more unprovoked collisions (320s, 327s, 347s, 355s, 389s), all with the queen. In the 500ms with 0.5% drop example, there are 3 unprovoked collisions, at 307s, 330s and 354s, also with the queen. Note there are several cases where bees are desynchronized from the other hosts' view for an extensive time, such as 350s (bee#5), 380s (bee#1), 385s (bee#5), 397s (bee#0). Also note that the swarm is much less coherent (more spread out) than in the first example.
ConclusionThe reason the last two simulations have more collisions is because the player bees just don't have enough time to react to the queens erratic movement pattern if they lose too much time to the network.
Note that 500ms is very slow for most networks (unless wireless is used). Most internet connections are around 100ms within one country and around 300ms around the world. On the other hand, the human reaction time (hand-to-eye) is around 150ms, so a total of 500ms is not improbable.
Also note that the employed consistency algorithm is optimistic, which is the best currently available. The consistency of the simulation is indeed quite good, but this has little to do with the players principle inability to react quickly enough if the action they are reacting too is relayed to them too slow.