NAME
plisco - Play chess against Perl
SYNOPSIS
plisco [OPTIONS]
Valid options are:
- -i, --init=UCI_COMMAND
-
Specify the PATH to the endgame table base. This is the directory that contains the .rtbw and .rtbz files.
If this option is not used, the environment variable
TB_PATHis checked. - -h, --help
-
Display a short help page and exit.
- -V, --version
-
Display version information and exit.
DESCRIPTION
The program uses the <UCI protocol|https://gist.github.com/DOBRO/2592c6dad754ba67e6dcaec8c90165bf> to communicate with a human player or another chess engine via a GUI or similar programs. Wherever possible, the engine tries to UCI commands and options in a similar or identical manner to the popular Stockfish engine. You can use their documentation at https://official-stockfish.github.io/docs/stockfish-wiki/UCI-&-Commands.html to the extend possible as documentation for Plisco.
On the Computer Chess Rating List CCRL, it has a rating of around 1500 ELO for Blitz (https://www.computerchess.org.uk/ccrl/404/). But Blitz is its weakest time control.
The engine uses the following features:
- negamax searching
- transposition tables
- iterative deepening
- aspiration windows
- killer heuristic
- history heuristic
- (Syzygy) endgame tablebases
Hints
Performance and Playing Strength
The engine is written completely in pure Perl. The underlying chess library Chess::Plisco is highly optimised and very fast for an interpreted language. However, you should not expect wonders.
Plisco outperforms quite a few engines that are written in compiled languages and that are necessarily faster for chess programming than Perl. This suggests that the search implementation of Plisco is mostly bugfree. Analysis of Plisco's game play usually shows that it mostly plays bad moves, when the negative effect of them is only visible beyond the engines move horizon which is limited by Perl.
No effort has been made to make the engine play like a human or to artificially reduce its playing strength.
Endgame Tablebases
WDL (Win/Draw/Loss) tablebase files (.rtbw) should be stored on a fast SSD disk. Using them from a USB stick or a conventional, spinning harddisk will almost certainly hurt performance and playing strength. DTZ (Distance To Zero) files (.rtbz) can be stored on any storage without bigger problems.
The path to the Endgame tablebases is a colon-separated list of directories:
setoption name SyzygyPath value /usr/share/chess/syzygy:/mnt/dsk1/chess
The directories are searched recursively for tablebase files. On MS-DOS/MS-Windows use a semi-colon ";" as a separator instead of a colon.
Hash Size
A transposition table is used to store the result of previous searches. Chess engine potentially test every possible line of play from a particular position. That makes it quite likely that a particular position is encountered multiple times. It therefore makes sense to cache the evaluation for that position in case it occurs again later.
The default size of the transposition table is 16 MB. Experience shows that increasing the size does actually hurt performance. Feel free to experiment with the setting.
SEE ALSO
Chess::Plisco(3pm), perl(1)