Chess engine: Lambergar 1.0
Lambergar - UCI chess engine Rating Chess Engines Diary CEDR=3062
Lambergar is a chess engine developed in the Zig programming language.
The name "Lambergar" is a nod to the Slovenian folk romance, Pegam and Lambergar, which recounts the epic struggle between Jan Vitovec and Krištof Lambergar (Lamberg). This narrative of fortitude and rivalry provided a fitting namesake for this chess engine.
Lambergar is licensed under the MIT License. Check out LICENSE.txt for the full text. Feel free to use this program, but please credit this repository in your project if you use it.
v.1.0:
Builds
Currently there are four builds:
x86-64-v3: AVX2 support, best for using with NN evaluation and should be a preferred choice for best performance.
x86-64-v2: popcount support, suitable for modern computers.
x86-64-v1: vintage version is for really old computers.
aarch64-linux: version for Raspberry Pi 5.
Release Notes
This is a major release. I believe the Lambergar chess engine has matured enough to warrant the release of version 1.0. I am also introducing slight changes to the naming convention by dropping the patch version and removing the letter "v" in front of the version number. While I am sure there are still some significant bugs in the engine, I believe the code has reached a level of maturity where these bugs are no longer critical to its core functionality.
Added efficient updates (UE) to NN evaluation of positions. I expected a significant improvement in ELO, but the gain was only 20 ELO points.
Introduced a new network, zolnir.nnue, which contributes the majority of the ELO improvement.
Estimated engine strength is around 3180–3200 ELO.
Fixed bug: UseNNUE was not working because the implementation for switching NNUE on/off did not follow the correct format. This has been fixed to comply with the UCI format: setoption name UseNNUE value [value], where [value] is either true or false.
Fixed bug: When the UCI command was issued, the line reporting the option name UseNNUE type check default always displayed false, because it was hard-coded. I had overlooked updating this line to reflect the actual value. This issue is now resolved.
Changed how the number of nodes, nodes per second, and timer are reported in info score. Previously, the timer and node count were reset to zero for each depth. Now, info score reports the time from the start of the search and the cumulative number of nodes for each new depth.
Lambergar 0.6.0 vs other engines:
JigSaw 5.9 | 0/20 | -20 | 20 Games |
Obsidian 13.0 | 0/18 | -18 | 18 Games |
Alexandria 7.0.0 | 0/14 | -14 | 14 Games |
Yuliana 5.0 | 0/14 | -14 | 14 Games |
Caissa 1.19 | 0/14 | -14 | 14 Games |
Stockfish 16.1 | 0/14 | -14 | 14 Games |
Sloth 1.9 | 13/13 | +13 | 13 Games |
Nalwald 19 | 1.5/12 | -9 | 12 Games |
Lizard 10.5 | 0/12 | -12 | 12 Games |
Knightx 4.1 | 9.5/11 | +8 | 11 Games |
Motor 0.6.0 | 0.5/11 | -10 | 11 Games |
Bagatur 5.1a | 7/10 | +4 | 10 Games |
PlentyChess 3.0.0 JA | 0/10 | -10 | 10 Games |
Berserk 13 | 0/10 | -10 | 10 Games |
Odonata 0.9.0 | 3/9 | -3 | 9 Games |
Arasan 24.2.2 | 0/9 | -9 | 9 Games |
Habu 1.0 JA | 8/8 | +8 | 8 Games |
Drosophila 1.6 JA | 7/8 | +6 | 8 Games |
Princhess 0.18.0 | 2/8 | -4 | 8 Games |
Altair 7.0.3 JA | 1/8 | -6 | 8 Games |
Critter 1.6a | 0.5/8 | -7 | 8 Games |
github:https://github.com/jabolcni/Lambergar/releases/
Sample game of this engine:
Lambergar 0.6.0–Knightx 4.11–0B302024.07.18.NewEnginesTest1.63Chess Engines Diary20.07.2024
[%evp
0,90,19,38,40,41,51,32,66,38,46,19,6,27,34,13,17,12,19,8,15,18,22,-7,13,-3,3,28,72,-21,49,81,92,62,79,84,76,76,75,69,109,129,119,100,113,124,101,122,106,91,127,106,114,120,129,129,110,110,124,159,170,196,194,196,200,196,224,224,245,253,253,253,258,253,250,259,269,277,271,295,310,325,323,333,336,352,355,374,413,419,425,435,446] 1.e4 c5 2.f3 c6 3.b5 e6 4.0-0 ge7 5.c3 d5 6.exd5 xd5 7.e1 a6 8.a4 b5 9.c2 b7 10.d4 d8 11.e4 h5 12.bd2 cxd4 13.cxd4 h6 14.h3 g6 15.f1 h4 16.e3 a5 17.xh4 xh4 18.xb7 xb7 19.f3 d7 20.c6 e7 21.xa6 0-0 22.xb5 fd8 23.g3 d6 24.c6 e8 25.e4 d6 26.xh4 xh4 27.a4 b7 28.a5 xb2 29.a6 a8 30.d5 exd5 31.a7 xg3 32.fxg3 b5 33.ab1 xb1 34.xb1 xa7 35.a1 f6 36.xa7 f7 37.d4 xa1+ 38.xa1 g6 39.f2 f5 40.e3 h5 41.d4 e6 42.c3 d6 43.b4+ e6 44.c5 g6 45.a3 g5 46.b4 h4 1–0
Comments
Post a Comment