Introduction

Introduction to GNU Backgammon

GNU Backgammon (gnubg) plays and analyses backgammon games and matches.

It is currently a work-in-progress. So far it is able to play both independent games and tournament matches, evaluate and roll out positions, tune its own evaluation functions using either TD or supervised training, maintain databases of positions for training and other purposes, and more. See the following section for a more complete list.

It is driven by a command-line interface, and displays an ASCII rendition of a board on text-only terminals, but also allows the user to play games and manipulate positions with a GTK+ board window (png 117k) where available. It is extensible on platforms which support Guile and/or Python.

It currently plays at about the level of a championship flight tournament player (depending on its parameters and its luck in recent games, it rates at around 2000 on FIBS, the First Internet Backgammon Server – at its best, it is in the top 5 of over 6000 rated players there) and is gradually improving; it should be somewhat stronger than this when released. GNU Backgammon can be played at numerous other online backgammon servers.

Features in GNU Backgammon

The following features can be found in the current prerelease 0.90.0 of GNU Backgammon. Note that some of the features are experimental and/or in progress:

Tournament match and money session cube handling

A command line interface (with full command editing features if GNU readline is available) that lets you play matches and sessions against GNU Backgammon.

Support for either a GTK+ interface with a graphical board window, or a rough ASCII representation of a board on text terminals. For the GTK+ interface both 2D and 3D graphics are available. A number of pre-defined board designs are supplied or the user may customize their own design.

Neural net functions for giving cubeless evaluations of all other contact and race positions.

Support for both 1-sided and 2-sided bearoff databases: 1-sided bearoff database for 15 chequers on the first 6 points and optional 2-sided database kept in memory. Optional larger 1-sided and 2-sided databases stored on disk.

Automated rollouts of positions, with lookahead and race variance reduction where appropriate. Rollouts may also be extended.

Both TD(0) and supervised training of neural net weights.

Position databases for supervised training (if GNU dbm is available).

Loading and saving .sgf games and matches (.sgf files are in the Smart Game Format).