This is a very interesting thread. Sorry to be joining it late.
First, the good news is that deterministic players do yield repeatable
results. At first blush, I would have claimed that my player,
implemented in Java, is deterministic. However, I iterate over data
structures like Sets which rely on an object hash, that in Java
defaults to the object memory address, more or less. Even with new VM
image for each game, there appears to be enough variation in object
memory addresses to result in decidedly nonrepeatable results. I only
mention this because the game engine is in Java, so it appears to
avoid that implementation problem. However, this does illustrate that
the game is quite sensitive to small changes.
The rounding problem is worth considering. Even classical mechanics
is subject to the chaos problem that small errors in initial
conditions can lead to large errors after long time. The time frame
of the game seems a bit short,
but this is not real classical mechanics either. We have forces
applied instantaneously and then everything coasts. The game only
reports 6 digits of precision, and in the home region the precision is
even lower, due to the fixed point representation. However, if the
rounding error is enough to shift a collision from one turn to the
next, then it would create a large effect on the collision due to the
gravity impulse on marker and pusher, and the acceleration impulse
that may be applied to the pusher. Suddenly a 0.01% error (100 turns
of round off) can result in a much larger change in the collision.
This does not also rule out a potential problem with how collisions
are implemented. Whenever more than two objects are involved in a
collision with each other during the turn, the computation of the
collision could be sensitive to the order in selecting objects while
calculating collisions. This applies in particular if the collisions
are computed algebraically, as the game rules appear to imply.
That said, I am not convinced that we have a major problem here.
spongman has reported one case where for a pair of deterministic
players, the results favor being the first player position on the
command line (red). Stephen Denne confirms the asymmetric behavior
with another pair of deterministic players but has not commented on
whether being the red player is an advantage in that case. Given the
causes suggested, I do not see why the asymmetric behavior would
always favor being the first player on the command line (red), for all
pairs of deterministic players. Moreover, the game is a simplistic
simulation of controlling robots (the six pushers) and any physical
robot cannot be controlled
with absolute precision, so even a deterministic controller would have
varying results. The player (controller) needs to be robust in the
face of variable conditions.
At most an argument can be made that each pair of players should play
each other twice, reversing colors between games and combining the
scores to determine the winner. This eliminates the effect of any
"bias".