EXchess: An Experimental Chess Program

Page last updated: Jan. 21, 2006

 

 

Some History

 

I started EXchess back in 1996 as a way to learn programming and to have a hobby to work on.  EXchess was very successful on both counts, and I developed it in my spare time until I had to write my PhD in 1999.  By that time, EXchess was playing pretty well (~ master strength) and was counted a reasonably strong amateur chess program (although I am sure it has slipped relative to the serious amateur programs of today).  EXchess has sat on the ÒshelfÓ except for some minor updates over the last six years; however, IÕve always wanted to make it easier to use by giving it a graphical user interface.  In my spare time over the last few years, IÕve re-written some of the code, and I found a great GUI library, the Fast Light Tool Kit (FLTK).  I adapted the interface from the checkers example in the FLTK distribution to serve as a graphical skeleton for EXchess.  This interface has grown to be pretty usable over the last year, so IÕve finally decided to release a new version of EXchess.

 

Features

 

EXchess is an amateur chess program that comes with its own graphical user interface.  EXchess can also be run in text mode, or it can be interfaced with standard chess interface programs like Xboard/Winboard or Arena.  The main features of EXchess areÉ

 

á      Advanced search algorithms including principle variation search, null move, null move verification, dynamic search extensions, futility pruning, hash tables, history tables, quiescence search, material swap function, interface with Namilov endgame tablebases (disabled in current version), and context specific evaluation.

á      Opening book learning (off  by default: for play against other computers, this should be turned on by editing the Òsearch.parÓ file).

á      Evaluation learning using the TD (temporal differences) leaf algorithm.  EXchess will improve its ability to evaluate a position each time you defeat it! (In practice, the gains from this algorithm are small if the evaluation is already well optimized, but the gains are impressive if one starts from a poorly optimized evaluation function. 

á      You can modify how EXchess thinks by editing the search.par and score.par files that come with the program.

á      You can download the source code for EXchess.  You are free to modify the source code under the terms of the GNU Public License.

 

See the readme file for more details.

 

Future Features

 

IÕve got some ideas for future improvements (when I have the time) É

 

Near Term:  Add the ability to graphically (point-n-click) setup a board position, and add an Òanalysis modeÓ where EXchess will give a running evaluation while the player moves the pieces and tries different combinations.

 

Longer Term:  Improve playing strength, and add the ability to play against different ÔpersonalitiesÕ with different strengths. 

 

Downloads

 

EXchess is released under the GNU Public License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.  

 

EXchess is beta quality software, meaning that it has not been extensively tested on a wide variety of systems and may still contain bugs.  Use it at your own risk.  If you encounter any bugs, please let me know, and I will fix them as I have the time, but please understand that my time to work on this project is limited, so I may not respond with bug-fixes immediately.

 

I have (or will soon have) compiled EXchess for three different kinds of systems: Mac OS X (10.4.3), Windows XP, and Linux (Ubuntu 5.04).  These versions may work on other similar versions of the same operating systems, but I have not tested them there.

 

Compiled (ready to run) Versions

 

á      EXchess v5.01 beta for Mac OS X (10.4.4), click here 

á      EXchess v5.01 beta for Windows XP, click here

á      EXchess v5.01 beta for Linux (Ubuntu 5.04), click here

 

For these versions, EXchess comes in a zipped folder.  Just unzip the folder.  Click on the EXchess icon inside the folder, and it should run.   EXchess doesnÕt come with an installer, so youÕll have to remember where you put this folder if you want to run EXchess again.  Perhaps IÕll include an installer in a future version.

 

NOTE:  The Mac version is not a ÒuniversalÓ binary, meaning that it will run only in emulation mode on an intel based Mac.  I hope to have a ÒuniversalÓ version compiled and posted here in the near future. 

 

Source Code Version

 

á      EXchess v5.01 beta source code, click here

 

I have no time to support the source code version, so please donÕt send me questions about how to get it to work on your system.  If you are an experienced programmer, and you canÕt get it to compile even on one of the systems listed above, please do let me know (perhaps I forgot to include something).