A complete 2000 lines of code engine

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine

Post by xr_a_y »

voffka wrote: Mon Mar 23, 2020 1:57 pm
xr_a_y wrote: Mon Mar 23, 2020 12:59 pm
voffka wrote: Mon Mar 23, 2020 11:48 am igel-last is Igel 2.4.0?
git master of yesterday c03d39dfadf7017032a5777ff501f8a6a72f9c9b.
Cool. I am curios if you have done the same test against Igel 2.3.1? The purpose is to see relative strength between the two versions of Igel if you have the data.

The 2.4.0 is showing some good numbers against top dogs like Arasan, Rubichess, etc, relative performance increase is currently measured to be between 50 and 80 elo against top dogs, but I am interested against Minic as I am not using it in my testing.

But maybe I should :)
igel 2.3.1 versus Minic 1.51
>> igel-last 66 19 733 59.4% 42.7%

igel 2.4 versus Minic 1.54
>> igel-last 35 31 257 55.1% 46.3%

This is more or less coherent as Igel did +30 while Minic +50, but error margins are quite high (+/-31) in the last case.

So Minic is still following Igel head to head, but Igel seems to do better versus Rubi and other top engines.
voffka
Posts: 288
Joined: Sat Jun 30, 2018 10:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna

Re: A complete 2000 lines of code engine

Post by voffka »

Some first tourneys including both Minic 1.54 and Igel 2.4.0 are already out there: https://chessengines.blogspot.com/2020/ ... tz_24.html

I am curios how Minic will do in CCRL 40/40 testing, as I noticed it has a tendency of a surprise in long time controls (sometimes it plays very well like in TCEC S17, sometimes it plays not very well in CCRL in LTC)
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine

Post by xr_a_y »

voffka wrote: Wed Mar 25, 2020 2:47 am Some first tourneys including both Minic 1.54 and Igel 2.4.0 are already out there: https://chessengines.blogspot.com/2020/ ... tz_24.html

I am curios how Minic will do in CCRL 40/40 testing, as I noticed it has a tendency of a surprise in long time controls (sometimes it plays very well like in TCEC S17, sometimes it plays not very well in CCRL in LTC)
I can confirm the tendency at longer TC, here 4min + 4sec, Minic versus others

Code: Select all

Rank Name                          Elo     +/-   Games   Score   Draws
   1 demolito                       75      48     123   60.6%   41.5%
   2 igel-last                      72      44     123   60.2%   48.8%
   3 rodentIV                      -57      43     122   41.8%   50.8%
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine => not any more

Post by xr_a_y »

Minic is now too far from one of its original ambition, being a small code size.
With around 5000 lines today, it is maybe time to make Minic less ugly and go for a better multi files repository.

This shall take some time, but I think i'm gonna go this way, splitting Minic in some files and comment the code more.

During the process, I'll probably also release a small single file, very simple version of it.

See you on the other side.
mar
Posts: 2554
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: A complete 2000 lines of code engine => not any more

Post by mar »

xr_a_y wrote: Thu Mar 26, 2020 4:39 pm With around 5000 lines today
and what about the 3rd party json.hpp abomination it depends on? that's nearly 10k sloc (22k loc) => beyond ugly for something as simple as parsing a json... why do you even need that for a chess engine I don't understand, but it's your call of course
for inspiration, you can look at what a friend of mine wrote instead (look at the example): https://github.com/P-i-N/json5, while still being lightweight
Martin Sedlak
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine => not any more

Post by xr_a_y »

mar wrote: Thu Mar 26, 2020 5:27 pm
xr_a_y wrote: Thu Mar 26, 2020 4:39 pm With around 5000 lines today
and what about the 3rd party json.hpp abomination it depends on? that's nearly 10k sloc (22k loc) => beyond ugly for something as simple as parsing a json... why do you even need that for a chess engine I don't understand, but it's your call of course
for inspiration, you can look at what a friend of mine wrote instead (look at the example): https://github.com/P-i-N/json5, while still being lightweight
Well at start (before I implement UCI and Xboard options), it was convenient to use the json config to change inner parameters of the engine. I'll probably won't keep this dependency ... that was a old heritage from Weini.
voffka
Posts: 288
Joined: Sat Jun 30, 2018 10:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna

Re: A complete 2000 lines of code engine

Post by voffka »

xr_a_y wrote: Thu Mar 26, 2020 8:53 am I can confirm the tendency at longer TC, here 4min + 4sec, Minic versus others

Code: Select all

Rank Name                          Elo     +/-   Games   Score   Draws
   1 demolito                       75      48     123   60.6%   41.5%
   2 igel-last                      72      44     123   60.2%   48.8%
   3 rodentIV                      -57      43     122   41.8%   50.8%
Another tourney involving both Igel 2.4.0 and Minic 1.54 on Android: https://chessengines.blogspot.com/2020/ ... chess.html

Image

Some good wins against Rubi by both I+M.
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine => not any more

Post by xr_a_y »

xr_a_y wrote: Thu Mar 26, 2020 4:39 pm Minic is now too far from one of its original ambition, being a small code size.
With around 5000 lines today, it is maybe time to make Minic less ugly and go for a better multi files repository.

This shall take some time, but I think i'm gonna go this way, splitting Minic in some files and comment the code more.

During the process, I'll probably also release a small single file, very simple version of it.

See you on the other side.
Ok, so first phase is done!, I have a working multi-file Minic. To my surprise, it is a (very) little faster than the one-file Minic. I was expecting a little slowdown, even with -flto, but that's a good surprise.

Next step, clean up code, add comments ...
voffka
Posts: 288
Joined: Sat Jun 30, 2018 10:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna

Re: A complete 2000 lines of code engine => not any more

Post by voffka »

Hey Vivien,
xr_a_y wrote: Fri Mar 27, 2020 8:49 pm To my surprise, it is a (very) little faster than the one-file Minic.
You just discovered my secrete weapon of Igel against Minic all this time :mrgreen: