The Problem with Loose Consistency

Loose consistency has a tendency to result in illogical playouts. To demonstrate this, we ran our simulation under purposely bad network conditions and isolated a situation that is obviously inconsistent with the game rules. The following streams are all from the same experiment, just different views.


consistency algorithm loose loose loose loose loose
scenario swarm swarm swarm swarm swarm
bees 8 8 8 8 8
message delay [ms] 400 400 400 400 400
message loss [%] 5 5 5 5 5
packets sent [/s] 20.5 20.5 20.5 20.5 20.5
view combined bee#0 bee#0, cut bee#1 bee#1, cut
AVI (FFV1) prob.avi prob_0.avi prob_0c.avi prob_1.avi prob_1c.avi codec: ffdshow-tryouts

What you are looking at

The first stream is a superposition of two views of the game, the hosts of bee#0 and bee#1. When the 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.

The others streams are views of just bee#0 or bee#1 (which is closer to the view of the other hosts on the main incident). Please ignore the numbering of the bees in these streams, as it gets reset. The two cut streams are closeups (in terms of time and viewable area) of just the main incident.

Noteworthy moments

The main incident happens around 42.15s, but there is also a similar situation at 45.60s (with a different resolution, though).


The rules of the game clearly state that when two bees collide, BOTH of them are dead for a few seconds. Yet after the collision at 42.14s, only bee#0 is dead, bee#1 is unharmed.

What really happened is that the host controlling bee#0 missed some messsages sent by bee#1's host. So, host#0 saw bee#1 swinging over to bee#0 and finally colliding. It set both bees to be dead. A few milliseconds later, though, a message finally arrives from host#1, updating host#0 with the real state of bee#1. Thus, bee#1 is no longer seen as dead (by any host), while bee#0 is STILL dead because host#0 announces this to all other hosts, overwriting their view of bee#0.


This is an example of the biggest problems with loose consistency. Not only is the world view (and replay) different on each host, but each replay may contain logical errors. Note also that this type of error is extremely common in loose environments. To avoid making this too obvious, the game rules are usually chosen to hide such effects.