Shield Chess Engine
Shield is an UCI chess engine written in the D programming Language.
It is my third chess engine after Tamerlane and Madeleine and I started working on it around November 2015.
History
History
16/01/2018 - Shield 2.1 (~2840+ ELO)
- Fixed an issue with the UCI protocol, now Shield loads correctly into Fritz GUI.
- Added some knowledge for KBPvK endgames.
- Corrected time management, now Shield should allocate more time for the search (more specifically in a "game in X" game).
- Slightly reworked the logic Shield uses to select a move from the opening book.
- Added SEE pruning in main search.
- Added hidden passers evaluation and reworked evaluation of passed pawns, plus some other minor change.
- Corrected a bug in opposite colour bishop ending.
- Added an extension to Polyglot opening books to store statistics about each opening line. The book generation routine of Shield (--genbook command line parameter) was modified to generate also the statistics file.
- Added some configuration parameter as UCI option (see section "UCI Options" for more details).
22/11/2017 - Shield 2.0 (~2700+ ELO)
- Complete new version! Total rewrite of Shield code.
- Support for Polyglot opening books (old Shield 1.x book format is no longer supported).
- Support for multi-thread search up to 16 cores.
25/09/2016 - Shield 1.3.1 (~2500+ ELO)
- Bug Fixing
04/09/2016 - Shield 1.3 (~2500+ ELO)
- Some "raw speed" enhancements: nps is greatly improved.
- Changed History Heuristic and added configuration parameters.
- Completly removed PST tables (left only the table for King).
- Added new evaluation configuration parameters:
- Endgame piece values (currently no difference with middlegame values, but can be changed).
- Added the possibility to specify the middlegame and endgame values for most of the evaluation terms (some tuning is still needed !!)
- Added "MaterialIncidence" configuration parameter to change the importance of "material" on the evaluation function.
20/03/2016 - Shield 1.2 (~2450+ ELO)
- Added pondering
- Added singular move extension
- Changed futility pruning algorithm and added new configuration parameters
- Revisited Piece values
- Added some new configuration evaluation parameter
- Internal rework of some classes to better use D template capabilities
- Slighlty better understanding of opposing colour bishop endgames
- Slightly better endgame knowledge (now Shield should know how to play KBNk, KBBk, KQkr, KRBkr, KRNkr endgames)
- Somehow tuned evaluation parameters
- Added preliminary King Safety
- New opening book.
10/01/2016 - Shield 1.1 (~2350+ ELO)
- Added piece values in configuration
- Added experimental Static Nullmove Pruning
- Added some small new evaluation terms:
- Connected/Supported passed pawns
- King not castled/castle loss penalities
- Pinned pieces penalities
- Control of weak central squares
- Fianchetto bishops Bonus
- Added some book configuration options.
- Removed/changed some old configuration options.
- Corrected a nasty configuration bug (array parameters were wrongly used!!!).
- Some minor tweaks on the search
- Now Shield comes with its own book. You can specify the name of the book Shield will use by using the new UCI Book parameter.
- The default book was generated with default parameters using CCRL 40/40 games
- Added the possibility to generate an opening book from a list of PGN files. Launch "Shield.exe --help" to view possible parameters.
- Added a simple interactive book viewer (only view, no manual editing for the moment). Launch "Shield.exe --showbook".
- NOTE: the moves are ordered by score (what you see with K=...). That score is the number represented by the new BookScoreValue configuration parameter
- Multicut is removed
- Quiescence pruning is removed.
22/12/2015 - Shield 1.0 (~2150+ ELO)
- UCI (no ponder)
- Magic Bitboards
- PVS search (no multithreading)
- Internal Iterative Deepening
- Null moves with optional verification
- Check, Recapture, Passed Pawn Push and Pawn Endgame extensions.
- Experimental Futility pruning.
- Experimental LMR.
- Experimental Multicut
- Very simple evaluation function:
- PST
- Knight, Bishop, Rook mobility
- Knight, Bishop outposts
- Very basic passed pawns evaluation
- No pawn structure evaluation !!!
- No king safety evaluation !!!
- Absolutely no endgame knowledge !!!