Chronology

versionreleasedtechnical notesrating*
0.6.42023.01.29
Protej 0.6.3
(Reference)
STC Total: 33204 W: 8519 L: 18498 D: 6187 Elo: 0; pool of 20 engines, average rating 2793, TC=4"+0.1, Little Blitzer testing framework

Protej 0.6.4

Functional changes:
  • Aggressive reductions: highly attacking playing style (estimated gain +40)
  • Code cleaning, optimizations and simplifications (+25)
  • Syzygy online function updated: when the position is draw, instead of playing a random move now drawing ones are analyzed shortly (+0)
  • Specific endgame functions for more positions (+10)
  • Evaluation tuning (+15)
    Non functional changes:
  • Winboard mode dropped
  • Bigger chessboard and new "eighties" piece design: playing on the terminal is much easier
  • Eval board dropped
  • Improvements in thinking output
  • New positions in bench command
  • Help command shows also compile time
  • Current hash sizes are shown with board command
  • Ini file, to avoid using UCI options and to configure some other parameters
  • Hash default is now 128 MB
  • New dynamic scores function; 0.6.3 scores were quite crazy and out of control
  • Command line actions:    b[ench]: runs the benchamrk    go <seconds> [fen]: analyzes the given position; default is start position    p[erft] <depth> [fen]: runs perft for the given position; default is start position    v[iew] <fen>: shows a given position; default is start position    r[andom] <# of positions>: generates random realistic fen positions STC Total: 6000 W: 2502 L: 2446 D: 1052 Elo: +121; pool of 20 engines, average rating 2793, TC=4"+0.1, Little Blitzer testing framework STC Total: 20000 W: 10653 L: 5199 D:4148 Elo: +120; selfplay vs Protej 0.6.3, TC=4"+0.1, Little Blitzer testing framework LTC Total: 5036 W: 1914 L: 1813 D: 1309 Elo (BRUCE): 2863; pool of 22 engines, TC=1'+1", cutechess-cli testing framework
  • 2863
    0.6.32022.06.11
    Protej 0.6.2 (setoption MoveOverhead = 0)
    (Reference)
    STC Total: 4000 W: 1220 L: 1984 D: 796 Elo: 0; pool of 40 engines, average rating 2651, TC=4"+0.1, switch from cutechess-cli to Banksia GUI testing framework
    
    Protej 0.6.3-devBAS
    Various code optimizations. More assembler functions to improve speed. Material imbalance values tuned.
    STC Total: 4000 W: 1433 L: 1713 D: 854 Elo: +46; LTC (BRUCE) scaled: +43
    
    Protej 0.6.3-devIID
    Internal Iterative Deepening added.
    STC Total: 4000 W: 1506  L: 1677 D: 817 Elo: +9; LTC (BRUCE) scaled: +8
    
    Protej 0.6.3-devLMR => Protej 0.6.3
    LMR table revised and tuned.
    STC Total: 4000 W: 1618  L: 1529 D: 853 Elo: +23; LTC (BRUCE) scaled: +21
    
    Protej 0.6.3
    MoveOverhead default is now 0. Debug: if testsuite had no fails, Protej crashed.
    LTC Total: 3614 W: 1387 L: 1253 D: 974 Elo (BRUCE): 2784; pool of 229 engines, TC=1'+1"
    2771
    0.6.22022.01.25
    Protej 0.6.1-ll
    (Reference)
    STC Total: 4000 W: 1096 L: 2120 D: 784 Elo: 0; pool of 40 engines, average rating 2651, TC=4"+0.1
    
    Protej 0.6.2-devBAS
    Various code optimizations. MoveOverhead UCI option added, to play extra-fast ultrabullet games avoiding time losses in very slow systems.
    STC Total: 4000 W: 1116 L: 2137 D: 747 Elo: 0; LTC (BRUCE) scaled: 0
    
    Protej 0.6.2-devLMR
    History pruning and LMR integrated and tuned.
    STC Total: 4000 W: 1210 L: 2051 D: 739 Elo: +17; LTC (BRUCE) scaled: +44
    
    Protej 0.6.2-devIMB
    Some material imbalances are now recognized; starting point, probably it should be extended to see an improvement.
    STC Total: 4000 W: 1194 L: 2045 D: 761 Elo: -1; LTC (BRUCE) scaled: -3
    
    Protej 0.6.2-devPWN
    Debug: due to a wrong hash variable, pawn hash wasn't used.
    STC Total: 4000 W: 1266 L: 1965 D: 769 Elo: +14; LTC (BRUCE) scaled: +36
    
    Protej 0.6.2-devSEE
    SEE values tuned.
    STC Total: 4000 W: 1285 L: 1923 D: 792 Elo: +5; LTC (BRUCE) scaled: +13
    
    Protej 0.6.2-devBSH
    Penalty for a bishop of the same color as its side's blocked pawns; despite the correct idea the code has to be improved.
    STC Total: 4000 W: 1233 L: 1968 D: 799 Elo: -9; LTC (BRUCE) scaled: -23
    
    Protej 0.6.2-devSNG => Protej 0.6.2
    Single reply is now searched for a very limited time; there's a positive impact on short time control games.
    STC Total: 4000 W: 1285 L: 1908 D: 807 Elo: +10; LTC (BRUCE) scaled: +26
    
    Protej 0.6.2
    If search finds a mate in 2 moves then it stops immediately. Online Syzygy tables probed at root position; relevant UCI options added. Debug: trying to play a move when no moves are possible caused a crash; UCI commands are now case insensitive.
    LTC Total: 10537 W: 4063 L: 3654 D: 2820 Elo (BRUCE): 2711; pool of 238 engines, TC=1'+1"
    2712
    0.6.1-ll2022.01.11Low latency version: input poll time reviewed; now ultrabullet games can be played (tested at 1"+0.1 with 1 time loss in 1,000 games). Go nodes not limited to 1 million multiples anymore, thanks to an idea from Jay Honnold.2618
    0.6.12021.12.25Passed pawns evaluation. LMR tuned. Material evaluation refined. More optimizations. Console mode: added single piece scores board to eval command. Debug: setboard or position fen with an empty string caused a crash.
    0.6.02021.11.25Massive line by line code cleaning and optimization; no more crashes or stalls. Time control highly improved, no more time losses. Move generator improved with magic bitboards for sliders; perft is now very fast. Search improved, better history management, thinking output highly improved. Better evaluation. Console mode: adjusted codepage to work in more systems; better graphics, big board and figurines always enabled; new commands (bench, eval, kiwi, unmake) and integration with UCI commands; perft suite and test suite now run in an automated way. UCI mode: added go nodes, removed ponder management, go infinite may be invoked with just go. WinBoard mode: added memory, undo and ? (move now) commands.2550
    0.5.92021.08.05First 64 bit version. Search slightly tuned and historic crash bug fixed. Material and mobility evaluation revised. The book has been temporarily removed.2383
    0.5.8c2014.06.30Bugs in evaluation and in quiescence search found and fixed. Hash size is now adjustable from 16 to 512 MB, default 256. Statistical piece/square move table removed. Wrong "mate in" value was displayed in XBoard mode. Tuned most parameters. Stop (move now) command has been implemented.2275
    0.5.8c2014.06.12Bugs fixed in version 0.5.8.c released on 2014.06.30: some overflows cause crashes.
    0.5.8b2014.06.06Bug fixed in version 0.5.8c: EP flag wrongly updated in making/unmaking null moves, causing bad play in ignoring opponents' EP recaptures.
    0.5.8a2014.06.02Bug fixed in version 0.5.8b: UCI mode isn't working in some GUIs.
    0.5.82014.06.01Bugs fixed in version 0.5.8a: book is disabled and hash used is wrongly displayed.
    0.5.72010.01.18Added UCI mode. Hash size is now adjustable from 1 to 256 MB, default 128. Emergency book removed. For debugging and tuning purposes, evaluation suite command added. Move order improved, also using a statistical piece/square move table.2057
    0.5.6a2007.02.20Hash 64 MB fixed. Eval fixed. This version works only when the book is available.1952
    0.5.5cct2007.02.17New deep eval. New book format, 4 times more compact. This version works only when the book is available.1775
    0.5.52007.02.13Small improvements and optimizations.1848
    0.5.4a2007.02.05Many code optimizations. Time management: now the engine tries to optimize the allotted time for the whole game. Quiescence search now ignores losing captures, thanks to a fast SEE implementation. Move generator has been highly optimized, with distinct check evasions, captures/queen promotions and normal moves generation; fast Perft and Divide commands added. Piece-square evaluation improved. Aspiration search, zero window and basic search extensions and reductions. A compact opening book is now included (2.6 MB zipped); embedded emergency opening book, automatically selected if no book is found. Syntax and legality check for Setboard command. SAN moves representation with better PV display. SAN input accepted and checked. Detailed search statistics. Console mode with color display and many debugging commands. Testsuite command with detailed results. Engine logo has been slightly changed.1739
    0.5.42007.02.03Bugs fixed in version 0.5.4a: on some GUIs, the engine fails to play as Black; WinBoard I/O management should be completely rewritten. WinBoard crushes if the book isn't found. PV move numbers displayed are wrong. A forced move isn't played immediately. Castling is displayed with the wrong symbol (0-0 instead of O-O), with Arena GUI not recognizing the move; reported by Tony Mokonen, Carlos Pagador and Hans Eriksson. Black's kingside castling wrongly alters the vertical rotated bitboard, causing mistakes in generation of moves where a1 is the destination square; discovered by myself after thousands of tests.
    0.5.32006.06.147-ply alpha-beta search and null moves (R=3).1242
    0.5.22006.06.13Added 5-ply alpha-beta full search.1221
    0.5.1b2006.06.11Added a 2-ply full search to test piece-square table and makemove/unmakemove routines.1035
    0.5.12006.06.11Bug fixed in version 0.5.1b: unmakemove in one game out of 200 crashes.
    0.5.02006.06.10The engine has been completely rewritten, in Delphi and ASM, and now is based on rotated bitboards. This first release just plays a random move (captures and castling first) to test movegen, makemove and WinBoard communication routines.N/A
    0.4.42004.07.233-ply alphabeta search plus 3-ply quiescent search.1228
    0.4.32004.07.19Replaced 3-ply minimax search with 4-ply alphabeta search.N/A
    0.4.22004.07.13Added piece-square evaluation.1169
    0.4.12004.07.11Added 3-ply minimax search, with material only evaluation.1073
    0.3.22004.07.05Added an opening book, with about 3 millions positions. Size: 23 MB, disk space needed: 130 MB. Without the book, this version is identical to 0.2.2. The book is no longer available.826
    0.3.12004.07.05Bugs fixed in version 0.3.2: always the best move is played from the book; thinking isn't displayed in WinBoard.
    0.2.22004.07.03Sorts the legal moves and plays a gaussian-random one. Released to test the move ordering.839
    0.2.12004.07.02Bugs fixed in version 0.2.2: taking a Rook on its original square doesn't clear the castle-allowed flag; the WinBoard command "computer" isn't recognized.
    0.1.12004.06.30Plays a random move. Released to test the move generator. Engine written in Free Pascal.710
    * BRUCE bullet ratings for Protej 0.6.2 and higher as of 2023-01-29, BRUCE bullet ratings 2021 for Protej 0.5.4a and higher as of 2022.06.10; old (2010-2014) private 1'+1" tournaments Elo estimates up to Protej 0.5.3

    Acknowledgements

    Ciro Vignotto, friend of mine and historical tester with his WOCT tournaments, who introduced me into the chess engines world around the year 2002.
    Bob Hyatt, Crafty's author, whose intro text in main.c is a bible: studying it gives great insights on what a chess engine should do.
    Graham Banks, a great tester, CCRL founder, always friendly and helpful, and all other historical testers like Olivier deVille, Leo Dijksman, Claude Dubois. They tested many Protej versions helping me with its development.
    Fabio Cavicchio, Delfi's author, who allowed me to operate his program in WCCC 2006 held in Turin, where I met Anthony Cozzie, Amir Ban and Shay Bushinsky, Vasik Rajlich, Stefan Meyer-Kahlen among top class authors.
    Together with Fabio, italian authors I met in many live engine tournaments, like Alessandro Scotti, Carmelo Calzerano, Stefano Malloggi, Ubaldo Andrea Farina and many others I'm forgetting. Spending a lot of time with them talking about chess programming was very instructive.
    Chess utilities authors, like WinBoard, Cutechess, Banksia, Bayeselo and many many others, essential tools to succesfully develop and test chess engines.
    Very helpful experts like Amanj Sherwany, Doruk Sekercioglu, Jay Honnold, Lars Hallerstrom, met in CCRL live chats.
    Günther Simon's RWBC, Talkchess forum, Chess Programming WIKI, just to cite some of the hundreds of helpful websites around.
    Embarcadero and previously Borland for having produced Delphi, the framework on which Protej is developed.
    And last but not least, everyone who downloaded, tested and played with Protej. Thanks to all!