Hello backgammon fans. Sorry long time readers if I'm rehashing an old
subject, but it's new to me.
I've played some computer backgammon games before, and I've always
suspected that at crucial moments, the computer was just a little bit *too*
lucky, getting exactly the role it needs, or that I was too unlucky, being
stranded on the bar, or stuck with no possible moves. (Wait wait, read
on.) I don't mean just modern games of today, using neural network
technology, but also classical, potentially weaker, implementations like
that found on Sun workstations as long ago as 1988.
So what to do? Before jumping to any false conclusions, I thought I would
search newsgroup archives to see if other people had the same impression,
and even conclusive documentation of some kind of backgammon dice rigging
conspiracy. "Google" (and formerly "Deja News") is a great tool for
searching newsgroups! I was surprised to learn what I guess most of you
know already, is that this is a recurring, controversial, many years old
discussion about possibly every implementation of computer backgammon ever
1) Looks like the consensus is that most of the good backgammon games don't
cheat, but that good players make their own luck. People suspect it
primarily for psychological reasons and use selective memory.
2) Saying the dice are rigged is comparable to saying that you are a bad
player. (Note, *I* didn't claim that any dice were rigged, I only suspected
it. This means that I don't *claim* to be a bad player, I only suspect it.)
3) I did not find any post which gave conclusive or statistically
significant evidence of loaded dice in any backgammon implementation, beyond
subjective impressions from some self-proclaimed pseudo-experts of the game.
Most posts which included text like "and here's the proof", were poorly
argued and unsubstantiated. Statistically speaking it's hard to prove
anything one way or the other, but in the long run, if the rolls are
statistically balanced, than you should win more games only if you are a
better player than your opponent. Defining appropriate statistical
measurements takes an expert to do, and probably a similiarly trained expert
to understand the full meaning of the results, which is probably why some
reject any statistical collection as meaningless numbers.
4) I got the names of some good backgammon games to try: Jellyfish and
Snowie just to name two. Looks like a "Tutor" or "Analyzer" would be a good
investment at improving my game.
5) Someone didn't like Gary Wong's software complaint form, and thought he
should take a more serious position, given his stature. After reading many
posts, I thought it was funny, hilarious, well-timed, worth repeating, and
appropriate! Well done. Looks like he also has a backgammon implementation
under Gnu licensing so one could get the whole source code, which should
satisfy some people.
6) If people are losing money with online backgammon, and they suspected
loaded dice, it says more about the person than about any backgammon
implementation. "A fool and his money are soon parted" or "Fool me once,
shame on you; fool me twice, shame on me!"
7) I learned a couple of new terms. Dancing at the bar has nothing to do
with going out to clubs.
How to determine if backgammon games are rigged?
1) Seems to me that getting your butt kicked with the same "luck", using a
"Manual Dice" option should remove doubts about losing because of rigged
dice. I don't understand why it's not as obvious to others. One popular
poster points out that just because Jellyfish kicks butt with Manual Dice,
doesn't mean it's not rigging the automatic dice. True, selecting Manual
Dice, or alternate DLL's says nothing about the built-in generator. You
can't really argue with that, but it does give you a possibility for an
independent comparison, and it should tell you something if your losing
percentage remains the same by changing the dice.
2) Options to print out all of the future rolls in Notepad should also
remove doubts about getting the computer changing his luck when required.
The rolls could be computed in advance, and it would be easy to see that the
rolls are not dependent on the game state. Of course this doesn't mean that
the computer won't take advantage of the knowledge of the next few roles. I
saw one guy routinely changes the seed (or the counter, I forget) to avoid
this kind disadvantage.
3) What about publishing random number generator code?
Some indicated that the only true way to settle the argument is to publish
the RNG code. They claim there are so many good reasons for it and
virtually no reasons not to, so they can not understand the resistance of
programmers not to reveal the source code. They even interpret the
resistance as avoiding the issue because there is something to hide. I'll
tell you why: the reasons for publishing it are weak!
- Source code is proprietary! Unless they are developing for the Free
Software Foundation, or under the GNU licensing, programmers make a living
developing code and most people making a living are at a monetary
disadvantage if they reveal their source code. (Of course they are also at
a monetary disadvantage if people falsely claim their product cheats, so a
certain tradeoff is required.)
- One can argue that RNG code is not significant to a backgammon
implementation, and that at least this could be published without harm.
However, publishing the RNG code does not go as far as is claimed by its
proponents towards settling the discussion unless the complete context is
published too. Suppose the RNG code is published. Who's to say that the
published code is actually the same code used, and that it is consistently,
unconditionally called every time? Suppose the dice rolling logic went
something like this:
IF (computer is getting butt-kicked)
Publishing only the non-sensitive source code for "roll_prng_dice" does not
help settle the argument at all. It would only raise further questions or
doubts, until all of the source code were published, or a similiar post
analysis of the dice rolls, were done to confirm that indeed this code is
always used. I repeat, a statistical post-analysis of the dice rolls is
still required whether you have the source code or not! This makes the
posting the RNG code valueless.
3) If you are smart, and statistically trained, and have the patience, you
can analyze the dice rolls yourself without requiring source code. You need
to pick the right things to measure (that's where statistically trained come
in) collect the measurments (that's where the patience comes in), and then
see for yourself (if you are smart and statiscally trained).
What about pseudo-random versus a true random number generator?
For all purposes of playing backgammon, it seems to me that a sufficiently
random pseudo-random generator with the right statistical properties should
be undetectably different than properly rolling perfect dice from a cup.
However, I have thought of one way, which I've never seen discussed, to
introduce better randomness into dice rolling. Why not update the RNG
counter periodically during the idle time in between rolls? This way, the
next roll becomes partially a function of how long the player waits to roll
the next dice, introducing some human variance. It seems like this goes a
long way towards true randomness without upsetting any statistical
properties. (I give this idea for free, without any expectation for
remuneration, but I wouldn't be opposed to getting credit for it).
Put things in perspective:
- I'm not a good backgammon player, but can hold my own against my free Palm
implementation from Whitehorse games. I can beat my brothers and friends
when I play. I'll go try JellyFish Lite and see what happens.
- I'm not a statistics expert, but did take a computer course in statistics,
and I am pretty gifted in math.