Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



New version chess engine: Renegade 0.12.0


Author:Krisztian Peocz  
Rating CEDR=2808

Renegade is a chess engine written in C++ using Visual Studio 2019. It values readability and simplicity, and uses the UCI protocol to communicate, making it easy to connect it to chess frontends. Under construction since October 7, 2022 and released publicly on January 15, 2023.  

The project can be compiled using Visual Studio 2019 with C++20 features enabled. The engine makes heavy use of `popcnt` and `lzcnt` instructions, thus only processors from 2013 or so are supported, but the calls to these instructions are wrapped in a custom function, and replacing them with something more compatible is relatively straightforward. Currently only Windows binaries are compiled, but in the future I would like to make them for Linux as well.

v.0.12.0:
This version includes a greatly improved search, which should be much faster and less prone to errors. Some additional evaluation terms were also added.
Renegade should finally support different compilers and operating systems.

Improved search
Switched to a fail-soft principle
Added late-move pruning
LMR is done in a '3-fold' way, and it is much more aggressive (even more so in non-PV nodes)
The age of the entries is considered in the transposition table's replacement policy
Draw detection is triggered now on the first repetition, the returned score is randomized (0-2 centipawns)
Tightened margins for RFP, and the usage of improving heuristic to make it even narrower
Promotion threats (pawn pushes to 6th rank) are no longer generated in quiescence search and they are considered quiet
Quiescence search also uses the transposition table
Fixed null-move pruning's formula, and returns the evaluation instead of beta
Removed PV move following as it loses strength
Reordered some pruning and movegen code for efficiency
Added some previously missing pruning guards
Increased max depth from 32 to 128
Improved evaluation
Retuned existing evaluation weights
Separate PSQTs for passed pawns, and for rooks and kings on open and semi-open files
Added support for other compilers and operating systems
Clang 16 is the preferred compiler, others may or may not work
Added a makefile (based upon the one in Alexandria)
Default executables are now compiled with Clang, and should have a better performance
Pretty output is only supported on some compilers
Should be compliant with OpenBench
Changed time management for time controls with an increment
Added multithreading support to the internal tuner
Bugfixes
PV table now should always output correct moves
When a search is aborted, it no longer corrupts the transposition table with invalid scores
Many more smaller changes
Progression testing: (10s+0.1, noob_4moves.pgn) - will be updated

Score of Renegade dev vs Renegade 0.11.0: 1583 - 90 - 419  [0.857] 2092
...      Renegade dev playing White: 797 - 40 - 209  [0.862] 1046
...      Renegade dev playing Black: 786 - 50 - 210  [0.852] 1046
...      White vs Black: 847 - 826 - 419  [0.505] 2092
Elo difference: 310.8 +/- 16.4, LOS: 100.0 %, DrawRatio: 20.0 %

Rating CEDR progres - Renegade
Pl Engine Rating Score Games %
1110 Renegade 0.11.0 2808.2 93.00 241 38.59
1255 Renegade 0.10.0 2583.0 28.00 123 22.76
1425 Renegade 0.7.0 2314.8 19.50 148 13.18
1439 Renegade 0.8.1 2298.2 16.50 126 13.10
1478 Renegade 0.9.0 2227.5 18.50 138 13.41


github:https://github.com/pkrisz99/Renegade/releases/tag/v0.12.0

Comments