Features

Schooner II

 Schooner II is a complete re-write in the C language. Most of the old features are still there including xboard protocol, ICS support, polyglot book and pondering. Some of the new features are:

(1) A new gcc v7.2.0-posix compilation. It has increased the speed of the program.

(2) Now using staged-move generation. All of the top engines use some form of staged-move generation now.

 In previous versions, Schooner used a full legal move list generator as an alternative to staged-move generation. This had several advantages. Some of the problems when designing a chess engine arise because we do not know what is in the full move list. A very good move could occur but due to pruning, the move is never discovered or played. Schooner used a full-width search hash flag to indicate that the move list has been searched at least once. Thus, Schooner had several useful routines including hash refutation, PVS Lite and Oracle sort that no longer work with staged move generation and aggressive pruning.

(3) Shared hash table threading is available. Caution: No internal CPUID testing is done, so do not allocate more threads or cores than the processor will handle. Hyper-threading is not recommended since processes will only wait in queue.

(4) UCI protocol is also available in addition to xboard CECP protocol. UCI support is extreemly simple with only the bare features necessary to play a game. Pondering, polyglot book and ICS support are not available in uci mode. Debugging features such as eval, flipboard, help, savepos FEN, and perft are also not available in uci mode.

(5) Non-popcount support is included.

(6) End game table base is not supported.

________________________________________________________________________________________________________________________

Version 1.83

Schooner is an original program. The hobby project was started about forty years ago. Originally, I conceived of a chess engine using mobility boards but only recently has the memory and hardware been available. Pradyumna Kannan's Magic bitboard's have been an excellent way to make the transition to mobility boards. During my dormant programming years, I followed Bob Hyatt's Crafty development.

The engine has been updated to use common methods for alpha-beta search, Principle Variation Search window (PVS), and late move reductions (LMR). These techniques have been researched (meaning I cannot find anything better). Other original features are modifications to these basic techniques.

The engine uses a single hash entry. I have been unable to demonstrate any effect for multi-hash unless the hash size is reduced so small as to cripple the engine.

The engine uses hash refutation theory. If a fail-high hash position suddenly fails low at a deep depth, and the move list has never been searched full width, then a trick is sent to an Internal Iterative Deeping routine to find a better move to search first.

The engine tries to use a floating move reduction rather than a simple move count based selective search for pruning and LMR's. Each move is evaluated for its potential to be a good or bad move and the amount of reduction is adjusted accordingly.

The engine uses a mate-finding accelerator by ignoring mate distance. If a PV finds mate at a high depth then the line cuts off without trying to find a faster mate (any mate is a good one!) This can accelerate mate finding during time control play since sometimes mates tend to thrash. The hash table is corrupt because the fastest mate has not been found. The routine is automatically flagged off at the root once mate has been found, so a faster mate can be researched without interference from the hash table. There is still lots of research to try here.

Ponder mode uses a simple incremental search. It seems to be more useful to fill in the hash table with possible opponent moves rather than to guess at the PV best move. If the PV response in singular or forced, then ponder would accommodate that somewhat anyway. If a different move is played by the opponent, then ponder is not embarrassed by having found nothing useful in the hash table.

________________________________________________________________________________________________________________________

Version 2.1

(1) Prefetch instruction added for the SSE build.

(2) Adjustable pawn hash size. Set phash to about 10-20% of hash size. The default pawn hash value is 30 Mb.

(3) Checking extensions for analysis mode only. This gives better mate announcements in analysis mode!

(4) Limited UCI epd and infinite support has been added.

(5) Syzygy root DTZ end game tablebase support is included. WDL probes are not used because they did not demonstrate any elo gain, especially with a six-piece egtb. The bottleneck on the main bus transfer may be intolerable. Schooner already has the basic endgames pre-programmed. They are much faster than a WDL probe.

(6) The Poor Man's KP Bitbase is included in the endgame horizon evaluation!

________________________________________________________________________________________________________________________

Version 2.2

New features include the FRC/960 chess variant. When using FRC chess, it is not necessary to include the command "fisherandom" in the sc.ini file. The internal FRC flags are set when the fen file is read into the engine. The GUI also sends the "fisherandom" command to inform the engine of FRC use. If you decide to include "fisherandom" in the sc.ini file for some reason, make sure it is turned off for standard chess or the castling modes might crash. Also, Schooner builds different internal piece-square tables for standard and FRC chess. The FRC tables are symmetrical and result in improved performance.

Polyglot FRC/960 fen files have two methods to describe castling. Arena uses the classical "KQkq" syntax. Also popular is the "ACac" or Shredder type syntax. Schooner will accept and parse both types of castling syntax.

Polyglot FRC/960 opening books are supported by Schooner. They are fully compatible with existing standard polyglot books. They follow the same initialization methods. In the sc.ini file, identify the path and book name. Then, make sure the Book 1 flag is set to indicate that opening books will be consulted. Turn off any books in the GUI or set them to engine default.

An FRCextras.zip file is available that will contain some FRC extras:

CCRL_404FRC2012.bin - a polyglot FRC opening book

FRC960_STRT.epd - a fen file containing all 960 starting positions,

polyglot14FRC - a modified version of polyglot (Linux only) for those who want to build their own polyglot FRC books.

Linux builds are included for both SSE and generic versions.

Syzygy end game table base is no longer supported.