Introducing Igel chess engine
Posted: Tue Jul 03, 2018 12:28 pm
Hello Everyone,
I've been working on a new chess engine Igel that is based on a source code of GreKo 2018.01. With the permission of Vladimir Medvedev (author of GreKo) I made the code of Igel licensed under GPL-3.0.
The project lives on github at page https://github.com/vshcherbyna/igel, it's first official released version is 0.8 and it can be downloaded from https://github.com/vshcherbyna/igel/releases. It contains compiled binaries for Windows (x32/x64), Linux (x32/x64) and Mac (x64).
The purporse of the project is to study chess programming, make Igel/GreKo stronger and also have some fun. I do not intend to qualify for uniqueness of the project to separate it from GreKo family. This is not my main intention, however along the way more and more code will be re-written and the gap will increase.
In terms of testing I mostly used lichess where Igel is represented as a bot where it plays against other engines (mostly stockfish) as well as against latest versions of GreKo, here is the link to the igel-bot on lichess: https://lichess.org/@/igel-bot.
In terms of strength, not surprisingly it should be around GreKo, maybe slightly stronger. I've created a greko-bot on lichess (https://lichess.org/@/greko-bot) so that Igel and GreKo can play there non-stop in different time controls. So far they are more or less on pair with Igel slightly ahead as seen in cross table (below) at link https://lichess.org/tKxok2kWpoPO
In terms of differences. Igel has some improvements over GreKo, here is the changelog:
What's new:
- lazy smp (first, basic implementation)
- more compact tt (30% smaller than in GreKo)
- max tt size increased from 1024 Mb to 16384 Mb
- razoring at depth <= 2
- futility check improvements
- variable reduction depth in null move prunning
- smaller, variable aspiration window
- variable time management that takes into account opponent time
- miscellaneous improvements
Removed features:
- xboard
So far most of the changes were done to the search, the evaluation function is still the one used in GreKo 2018.01. My next project is start working on evaluation as well as improve lazy smp implementation, because it is very basic and I may have there some bugs.
I've been working on a new chess engine Igel that is based on a source code of GreKo 2018.01. With the permission of Vladimir Medvedev (author of GreKo) I made the code of Igel licensed under GPL-3.0.
The project lives on github at page https://github.com/vshcherbyna/igel, it's first official released version is 0.8 and it can be downloaded from https://github.com/vshcherbyna/igel/releases. It contains compiled binaries for Windows (x32/x64), Linux (x32/x64) and Mac (x64).
The purporse of the project is to study chess programming, make Igel/GreKo stronger and also have some fun. I do not intend to qualify for uniqueness of the project to separate it from GreKo family. This is not my main intention, however along the way more and more code will be re-written and the gap will increase.
In terms of testing I mostly used lichess where Igel is represented as a bot where it plays against other engines (mostly stockfish) as well as against latest versions of GreKo, here is the link to the igel-bot on lichess: https://lichess.org/@/igel-bot.
In terms of strength, not surprisingly it should be around GreKo, maybe slightly stronger. I've created a greko-bot on lichess (https://lichess.org/@/greko-bot) so that Igel and GreKo can play there non-stop in different time controls. So far they are more or less on pair with Igel slightly ahead as seen in cross table (below) at link https://lichess.org/tKxok2kWpoPO
In terms of differences. Igel has some improvements over GreKo, here is the changelog:
What's new:
- lazy smp (first, basic implementation)
- more compact tt (30% smaller than in GreKo)
- max tt size increased from 1024 Mb to 16384 Mb
- razoring at depth <= 2
- futility check improvements
- variable reduction depth in null move prunning
- smaller, variable aspiration window
- variable time management that takes into account opponent time
- miscellaneous improvements
Removed features:
- xboard
So far most of the changes were done to the search, the evaluation function is still the one used in GreKo 2018.01. My next project is start working on evaluation as well as improve lazy smp implementation, because it is very basic and I may have there some bugs.