All About GNU
by Albert Silver
By now, it's fairly common knowledge that just about all the top playersmake use of the neural-net backgammon programs such as Snowie, or the olderJellyfish. The impact these programs have had on the way the game is understoodand played cannot be understated. Players of all levels have the option ofpurchasing these revolutionary bots (short for robots) in order to not onlyhave the pleasure of getting a drubbing by a world-class opponent as many timesas they want, but also have it analyze their moves, games, and matches. Theprogram will point out our mistakes, tell us how big a blunder our move was,and list the best moves. It is still up to us to understand why our move orcube action was wrong, however there is no question such a tool is priceless.
Perhaps priceless is a poor choiceof words as the price is by no means a given. Though the programs come withdifferent options depending on how much one is willing to spend, a version withall the trimmings, such as importing one's matches, analyzing the games, gradingyour play, allowing rollouts, etc. will set you back no less than $380 for Snowieor only $220 for the older, and less sophisticated Jellyfish. This would seemto indicate that a top-quality aide is only in reach of someone with deeppockets or a deep commitment. If not,one has to look at some of the free offerings available on the Internet.
That's where GNU comes in. GNU is one of those rare-bird phenomenons, whichalthough a true credit to the human spirit, sound practically kooky in theirmission: The ultimate goal is to providefree software to do all of the jobs computer users want to do--and thus makeproprietary software obsolete. Don't get me wrong. I'd love to see such autopia real, but just have great trouble seeing it happen. It brings to mind acynical you get what you pay for, which tends to be true more often than not.
When I first heard of GNUBackgammon, I immediately remembered with a grimace my first experience with anold version of GNU Chess several years back: an engine that barely played at anexpert level, as opposed to other master-level programs, an absolute bareminimum in functions, and graphics that reminded me of my first Atari videogame system. back in 1977. The surprise that awaited me couldn't have been greater.
GNU Backgammon is first of all aneural-net program of World-Class strength. It is based on the same technologyfrom which Jellyfish and Snowie originated. On Gamesgrid, the famous onlineserver where many of the world's best play, an older version of the engineplays constantly, and has achieved a rating as high as 2086. One bot,GGRaccoon, on a weaker setting, though playing instantly, is a favoritesparring partner of the top players there. The current GNU is two versionslater, just as fast, and stronger. It is also constantly in development, and anew version should be available by the year's end.
Furthermore, the interface andfunctions it offers are nothing short of fantastic. Everything a player needs isthere, and more:
- Import and export one sgames and matches from other sources
- Analyze a game orentire match with a detailed report (and grade)
- Keeps track of yourresults in the Player Record
- Rollouts galore
- Setting up of positions
- Export to HTML
- And more
The appearance can be changed according to a quantityof skins available, and the board can also be changed according to a largenumber of settings.
The documentation is anotherproblem. As far as I could see, details on the Windows version (it can becompiled for any OS available, and exists in a Linux version too for example)are very poorly documented, though the intelligence and intuitiveness of the program's layout make this a very small issue. All the same, there is no needto reinvent the wheel here, so allow me to guide you through the program's mostessential features, their use, and provide a few tips.
Where to get it
The official site of GNU Backgammonis http://www.gnu.org/software/gnubg/though you should be warned that this is not where you will want to getthe program. If you do go through their FTP, you will end up with a confusinginterface and an older engine.
It was only after some detective work that I stumbledon the site of one of the authors: GNU Backgammon for Windows (http://home.online.no/%7Eoeysteij/).Go there and download the InstallationArchive, a self-installing 8 MB file, and run it. Mind you it is updatedregularly, bringing with it new features. For example, in the last few days, aPlayer Record was added, akin to Snowie's Account Manager, forcing me toscratch a complaint previously voiced below and add it to the featuresdescribed.
Just so you know, there is a rather spooky warningbelow that says it is for people who canlive with software that suddenly crashes with no sort of warning (-) and likereporting bugs. Frankly, it's not nearly so dire, so don't be put off bythis.
Playing a game
The first and most basic feature is to simply set upa game and play, so let's start with that. Start the program and maximize thewindow. If the appearance isn't to your liking, you will find out how to customizeit further below.
First set the settings by clicking on the Settings menu at the top, then click on Players. This opens a window displayingthe settings for GNU. At the top there is a tab where you can also set yourname for the other player. For the GNU engine, I chose the pre-defined settingof World-Class++ for both checker play and cube decisions.
Now, still in the Settings menu, select Options. Again, a small window opens.Here, you can activate automatic bear-off, the direction of the moves, choosethe equity table to be used (Woolsey's, Snowie's, etc.), select Nackgammon ANDa great teaching tool: the Tutor Mode.
When activated, the Tutor mode hasGNU analyzing your moves and/or cube decisions and comparing them with itschoices. You set the threshold for its alerts, so if you set it for bad, it will only warn you when you makea bad mistake. It will then allow you to re-examine your choice, go right aheadwith it, or provide a hint essentially showing you its analysis.
My personal choices are to set the limit to bad, and to set the Tutor decisions as Sameas Analysis. The reason for this last choice is explained in the tip when Iexplain the Hint window.
*Tip* - Before going any further, do not forget to click on Save settings at the bottom of the Settings menu. You must do this everytime you make changes you wish the program to remember the next time you loadit.
To start a game, just click on the File menu, and choose New, and then your choice of a game,match, or money game session. When you are playing, if you wish to see the pipcount, go to the top and in the Analyse menuselect Pip count, or you can keep it permanently visible by going to the Settings menu and in Appearance check the box Show Pip count permanently. You can alsocheck the gammon values, market window, and Match equity table here.
While playing, you can access the main functionsthrough the toolbar at the top:
Rolling the dice, doubling, taking or passing a double(thumbs up, thumbs down), etc. Mind you, you can roll the dice simply byclicking on the empty space of the board on the right side. Same goes fordoubling, where you can just click on the cube on the board.
If you would like GNU's analysis of a move or cubedecision while playing, go to the Analysemenu and select Hint, or pressthe keyboard shortcut Ctrl-H. For details on the Hint/Annotation window, see below.
Importing and Exporting games
GNU allows users to import matches from a variety offormats, including the Jellyfish formats (.mat/.pos - also used atTruemoneygames BTW), the FIBS oldmoves format, and the Snowie GamesGrid format(.sgg). Just go to the File menu andchoose Import. This will allow you touse its great game and match analysis functions.
*Tip* - For those who take online classes, please note thatit imports the commentary saved on a move-by-move basis at GamesGrid, so youcan see comments in the annotation window when going over the moves. I testedthis with an online class and it was all there, neatly saved at everymove.
It also allows users to Export their games andmatches into a variety of formats such as the Jellyfish formats, text format,not to mention PDF, LaTex, PostScript, and even HTML. This way you can easilycompare notes with either Snowie or Jellyfish if you own either of them.
HTML export
A special note needs to be added regarding the HTMLfunctions. First of all, to set all the settings as you'd like, you need to goto the Settings and then select Export. There you can choose, down tothe smallest details, what it will display and how. The how concerns theimages used to produce board positions. This is chosen at the bottom of the windowand you can choose between its own HTML images or two others, which are FIBSand BBS. This brings up the following tip:
*Tip* - If you want to post a position in an online forumthat supports HTML you can do this regardless whether the forum itself supportsthe necessary images. Here's how you do this:
1) First be sure the image to be exported iscurrently on the board, and then in the Exportsettings set the HTML board type to fibs2html.In the space below URL to pictures,enter http://fibs2html.sourceforge.net/images/as shown below. Be sure to click Ok, andthen Save Settings.
2) Goto the File menu, and select Export, then Position, and then HTML..Save the file and then open it in Internet Explorer. In case this alreadysounds a bit mysterious, inside IE just go to File Open and click on BrowseLocate the HTML file you saved and open it.
3)Once you see the board and image in front of you, still in IE, go to the View menu and select Source This will open a small windowwith a lot of code. Copy the entire contents to the body of the post you arewriting, and the board and analysis should appear in the forum without anyproblems.
*GammonLine Tip* - If you enjoy the GammonLine BBS, and would like to sharean interesting position, the above tip will do the trick, but you can also makeuse of the GammonLine board images as seen in pretty much every articleavailable. To do this, you only need to change the first step in the above tip.
1)Still in the Settings menu, select Export, and below choose instead BBS asthe HTML board type. In the space below URLto pictures, enter ../Images/ exactly as shown in the image. Be careful toenter a capital I, because if you write ../images/ you will get nothing.
Now just follow the same steps 2) and 3) and you'll becruisin. J
Analyzing matches
GNU also comes with a set of functions that allow itto analyze a game or match, provide a detailed graded report, and allow you tonavigate through the moves to quickly see the mistakes made.
Before starting, you'll want to configure thesettings first, though this will only need to be done once. Go to Settings and select Analysis. A fairly large window will open, allowing you to fiddlewith as many settings as you could want. This is also where you set thethresholds for the Tutor mode (dubious,bad, etc.). Feel free to look around,but I simply set this to analyze checker play, cube decisions, and luck, andset the level of analysis at World Class++ for both checker play and cubedecisions. The Move limit is the maximum number of moves it will display in theHint/Annotation window.
*Tip* - Once more, please do not forget to save (Settings|Save settings) after makingchanges in the settings, or you will be forced to change them again the nexttime you start the program.
If you just played a match at an online server,import it first, then go to the Analyse menuand select Analyse match, or Analyse Session (money game session). Ifyou only want to analyze a specific game, open it and then select Analyse game. Once started, you will seea bar in the bottom right corner showing the progress made in both the numberof moves and percentage completed.
Analysis Report and Grade
Once GNU has finished analyzing your games, you'll want to see the report and then go over the bloopers. Here too, the programreally shines. In the Analyse menu,select Match statistics, and a windowwill open. Feel free to resize it (clicking and dragging the edges) to showmore information. It will show you the results of both players side by side,allowing you to quickly compare notes.
In the screenshot above you can see how it appears.It will detail bad moves (and good ones), not to mention rolls of varying luck,and attribute individual grades for your checker play, your cube decisions,your overall playing, and even your luck. It doesn't have a display in barcharts such as Snowie 3, but I admit to preferring GNU here as I like seeing theindividual grades for different areas of the game, and the easy access to thenumbers. In this I found Snowie confusing. It is very revealing when you see avery different evaluation of your checker play as opposed to your cubedecisions. Another advantage over Snowie 3 is that GNU only grades your checkerplay according to non-forced moves, whereas Snowie averages the errors on allplayed moves, including forced moves where no mistakes could be made. You cansave these results with the match, so that you can see the analysis at anytimewithout having to redo it.
You can also copy the results of the report toanother document. To do this, click on the lines you want to highlight usingstandard Windows functions (with the Ctrl and Shift keys), and then press the Copy button. Now open a document andpaste (Ctrl-V) the contents of the clipboard.
*Tip* - If you use a program such as Word or WordPad (do notuse Notepad), the formatting will be lost when you paste it, but this is easilyfixed: in the document, highlight the text, and change the font to Courier Newand the font size to either 9 or 10. Ex:
Tami KitWoolsey
Errorrate (total) -0.205(-3.793%) -0.147 (-2.820%)
Errorrate (pr. move) -0.006(-0.115%) -0.004 (-0.074%)
Checkerplay rating Worldclass Supernatural
Rollsmarked very lucky 0 0
Rollsmarked lucky 1 7
Rollsunmarked 40 34
Rollsmarked unlucky 0 0
Rollsmarked very unlucky 0 0
Luckrate (total) +0.420(+7.384%) +2.497 (+46.057%)
Luckrate (pr. move) +0.012 (+0.205%) +0.061 (+1.123%)
LuckratingNone Go to LasVegas immediately
Player Record
Youcan keep track of the results obtained in the Player Record. There you canstore the statistics of your matches and keep records of the average resultsobtained such as checker play, cube decisions, and luck. You can then consultdifferent quantities of results to see what areas you feel you need more work,and how you are progressing. After viewing your statistics, go to Analyse and select Add to Player Records. If you wish to view the results, just choosePlayer Records.
Reviewing moves andmistakes
Once you have seen the results of the report, youwill probably want to go over the mistakes you made. To do this, go to the Windows menu and select Game Record. A small window will appearlooking like this:
You first have to click on a move in the notationbefore using the arrows. When you see a move highlighted as seen above you cannavigate backwards and forwards move-by-move with the green arrows, andgame-by-game with the red arrows. If you use the buttons with the questionmarks on the green arrows, it will go from mistake-to-mistake. In the exampleused, GNU disagreed with one (only) move by Kit Woolsey. The move in question wasn't considered a bad mistake, but it did get earmarked as dubious. GNU addsthese punctuation marks (standard in chess commentary) in order to identify howit evaluates a move. For example, a indicates a dubious move, a indicatesa bad move, and a indicates a real blunder. Fine, so it disagrees, butwhat does it suggest?
*Tip* - If you wish to reduce the size of the board tobetter place the Game Record and Annotation windows, go to Settings and then Appearance. In it, select Showdice below board when human is playing.
Hint/Annotation window
Evaluationanalysis
In order to see GNU's analysis, go to the Windows menu, and click on Annotation. This is essentially exactlythe same as the Hint window, exceptthat the latter won't include a space to add written notes. You will see awindow open showing the best to worst moves from top to bottom. Here is what itshows for the dubious move shown above:
As you can see, it shows the best moves considered,with the move actually played in red, plus the various equity scores for gammons,etc. Most players will focus on the last three, which are the total equity ofthe move, the difference in equity between the move played and GNU's top choice,and what move is being evaluated.
Here we can see that at 2 plies GNU considers that13/10* 7/1* was best, with 24/15 close behind. If you'd like to copy thisinformation to a document, click on the moves that interest you in order tohighlight them as above, and press Copy.Then paste it where you wish. The tip on changing the font to Courier New size9 or 10 applies here too if you wish to maintain the formatting.
You may also want to have GNU analyze a few selectmoves a bit deeper. To do this you can have it go a 3rd ply, or do arollout. Let's have it do a 3-ply analysis of the three moves I highlighted. Justclick on the number 3 and it will do a 3-ply analysis. Be a little patient as3 plies is considerably slower than 2 plies, but it shouldn't be too long. Ifyou want to customize the evaluator, click on the button I indicated with asmall red circle, and change the parameters you want. Now just click on the Eval button, and let it compute itsresults. You may also prefer to see the Match Winning Chances of the moves insteadof the equity. If so, press the MWC button:
*Tip* - The reason I suggested the Tutor mode be set tofollow the Analysis settings is the following: when I play against GNU, I likeit to run a 2-ply check on my moves and alert me if I'm about to play ablunder. This 2-ply check happens to also be the standard level of Analysis Iuse to analyze my games. I can then leave the Eval setting at different customsetting, so that when reviewing my moves, all I need to do is press the Evalbutton and always get that custom evaluation.
Here we see the results of the 3-ply analysis,displayed in percentiles. We can also see that GNU now clearly favors 24/15after deeper analysis. How about a rollout?
Rollouts
Rollouts can be done at any time either directly fromthe Analyse menu with the Rollout option, or from the Hint/Annotation window. However, pendingfuture versions of GNU, I suggest you do it from the Hint/Annotation as onlythere can you then export the results to the clipboard using the Copy button. In both cases, the sameoptions window is used as its reference. You will want to set your preferredoptions the first time by clicking on the [-] button to the right of the Rollout button. I use two settings, onethat is quick-and-dirty and gives good results within a few minutes, andanother that is much slower but is possibly more precise.
Quick-and-dirty:
o Set the number of gamesto about 500 games using the arrows on the right
o 0 (zero) truncation(meaning it is a full rollout)
o Activate variancereduction
o Set the level toExpert.
It should look like this:
More precise:
o Set the games to about500 games
o Truncation should be 7(5 is probably ok too and faster)
o Activate the Variancereduction
o Set the level toWorld-Class
o Note: this setting is very slow and may take as long asan hour to analyze a couple of moves.
*Tip* - Whenever running a rollout, you will always want the Variance Reductionactivated as it greatly increases the reliability of the results. Thisingenious technique was introduced by Fredrik Dahl, the author of Jellyfish. Ina nutshell, it factors in luck when evaluating results, so that the program doesn't need 10,000 games to average out the luck of the dice and that way besure luck wasn't a factor in the results obtained. With it, 100 rolled outgames with Variance Reduction can be the equivalent of 5,000 - 10,000 gameswith no Variance Reduction.
Once you have set your choices, press Ok, and then the Rollout button. Once more: Remember to save your settings beforeexiting the program or you will need to reconfigure your settings the next timeyou use GNU.
*Tip* - One unfortunate aspect of GNU right now, is thestate of open windows that hold the different data. With the annotation windowopen, displaying cube decision analysis, one can easily lose sight of theboard. Don't hesitate to drag it down or minimize it. Remember that the windowsare all accessible there at the bottom of the screen in the Windows toolbar.
Setting up a position
Naturally, other than matches and games, you might justwant to set up a position from a book or other source, and ask GNU's expertadvice. First, you must start a new game or match, then just press the Edit button, located at the top in thetoolbar.
At the bottom, you will now see you have the optionof setting the scores or the names of the players. If you want to change thedice on the board, whose turn it is to play, or the doubling cube, you must goto the Game menu at the top, and atthe bottom of the menu select your choice.
*Tip* - if the dice have already been played and you want toedit the position to a cube decision, change the turn of the player to play andthe dice will be cancelled.
Moving and setting up the checkers is a cinch andSnowie users will feel at home as the method is identical. To remove or addwhite checkers to a point for example, use the right mouse button and click onthe point. You determine the number of checkers to be added or removed by the heightof the point you press. For example, if you have 5 white checkers on the6-point and want to only have 3, right-click on the 3rd checker andthe top two will be removed. Adding checkers is the same, and for checkers ofthe other color, use the left mouse button. Try it and experiment a little .It's a lot easier to do than for me to explain.
Once the position is set up, press the Edit button again to exit Edit mode. Now just go to the Analyse menu and select Hint (suggested even for rollouts).
Appearance: skins andboards
Skins
There's good news and bad news here. The good news isthat you can change the overall appearance of the menus through a number ofskins included with the installation. The bad news is that you can't do thisfrom within the program and must do it manually. The procedure is fairly painlessif you aren't afraid of moving a couple of files in the Windows Explorer.
Open Windows Explorer, and enter the \ProgramFiles\gnubg directory. In it there is a directory called \Themes, where theskins are located, and in that, you will see a number of directories with thenames of the skins they contain. Enter the directory you want and copy thefiles in it to the main \gnubg directory. It will ask you if you want tooverwrite the files in it. Say yes, and start GNU to see the changes. It is importantto copy and not move the files, so if you're not Windows savvy, this meansholding the Ctrl key on the keyboard down while dragging the files. Keep theCtrl key pressed when you let go of the mouse button. My favorite is the onecalled mac, and is what you see throughout this article.
Boards
The appearance of the boards can also be changed (andwas one of the first things I wanted to change to tell you the truth), thoughit doesn't come with any presets, and all changes must be done manually. To makechanges, go to the Settings menu andselect appearance. A window will appear, displaying a number of tabs at thetop, allowing you to modify the appearance of different areas until you hit ona combination you like. You will need to drag the left or right edges of thewindow to show all the tabs (such as for the dice) as some won't show at first .There's little to explain here, other than to comment on a nice touch thatpermits one to change the type of the wood of the board.
I have experimented with this and come up with a fewnice board combinations (fairly classic) which I will share with you. If youset the options exactly as detailed at the end, you will get the board in thepicture.
Conclusion
By now it should be clear that while a number of backgammonplayers have complained about the steep prices of top commercial softwareexcluding them from the tools and type of progress available to more fortunateplayers, that complaint is now definitely without foundation.
This isn't to say that a program such as Snowiedoesn't have an edge in functions, including more detailed options, orpresentation with a more sophisticated interface, not to mention strengthprobably with the arrival of Snowie 4, but the competition is tough as nails, andhas the most essential features sought after by players.
It's true that it is ever a work in progress and hasits rough edges, but with time they will undoubtedly be ironed out for the mostpart. It is also an engine that is stronger than its older top-of-the-line siblingsin GamesGrid, and at its price (free), one would have to be crazy not to haveit, even if one does own the legendary Snowie. After all, two heads are betterthan one.
I would like to effusively thank the authors of GNUBackgammon and its numerous contributors, and would also like to suggest thatanyone enjoying their efforts make a contribution to the Free Software Foundation (FSF), the principalorganizational sponsor of the GNU Project, as a token of appreciation. The FSF survivesmostly off the contributions, however small, of private donations, and withoutit, those loud complaints mentioned above would be entirely justified.
Extra Board designs
Opacity for the checkers isalways set at 1.00
Checkers (0) : Red:1.00; Green: 1.00; Blue: 1.00; R. Index: 3.0; Dull: 0.9; Diffuse: 20.0
Checkers (1) : Red:0.05; Green: 0.05; Blue: 0.05; R. Index: 3.0; Dull: 0.9; Diffuse: 15.1
Board : Red: 0.95;Green: 0.90; Blue: 0.85; Smooth: 0.1
Border :Ebony
Points (0) :Red: 0.00; Green: 0.65; Blue: 0.50; Smooth: 0.1
Points (1) :Red: 0.30; Green: 0.30; Blue: 0.30; Smooth: 0.1
Checkers (0) : Red:1.00; Green: 1.00; Blue: 1.00; R. Index: 3.0; Dull: 0.9; Diffuse: 20.0
Checkers (1) : Red:0.00; Green: 0.00; Blue: 0.00; R. Index: 3.0; Dull: 0.9; Diffuse: 15.1
Board : Red: 1.00;Green: 0.85; Blue: 0.45; Smooth: 0.1
Border :Walnut
Points (0) :Red: 0.80; Green: 0.50; Blue: 0.00; Smooth: 0.1
Points (1) :Red: 0.50; Green: 0.25; Blue: 0.00; Smooth: 0.1
Checkers (0) : Red:1.00; Green: 1.00; Blue: 1.00; R. Index: 3.0; Dull: 0.9; Diffuse: 20.0
Checkers (1) : Red:0.00; Green: 0.00; Blue: 0.00; R. Index: 3.0; Dull: 0.9; Diffuse: 15.1
Board : Red: 0.75;Green: 0.75; Blue: 0.75; Smooth: 0.1
Border :Walnut
Points (0) :Red: 0.60; Green: 0.00; Blue: 0.00; Smooth: 0.1
Points (1) :Red: 0.00; Green: 0.00; Blue: 0.45; Smooth: 0.1