New engine: Peacekeeper

Discussion of chess software programming and technical issues.

Moderator: Ras

Sazgr
Posts: 66
Joined: Thu Dec 09, 2021 8:26 pm
Full name: Kyle Zhang

Re: New engine: Peacekeeper

Post by Sazgr »

v0.1 released at https://github.com/Sazgr/peacekeeper/releases/tag/v0.1, windows and linux binaries provided
I would appreciate it greatly if somebody can test it, and give feedback!
JacquesRW
Posts: 127
Joined: Sat Jul 30, 2022 12:12 pm
Full name: Jamie Whiting

Re: New engine: Peacekeeper

Post by JacquesRW »

The provided windows executable crashes immediately for me, but I can compile it from the source without any issues.
Also,

Code: Select all

if (tokens[0] == "setoption" && tokens.size() >= 4) {
    if (tokens[1] == "Hash" && tokens[2] == "value") {hash.resize(stoi(tokens[3]));}
}
The GUI sends "setoption name Hash value [size]" but this expects "setoption Hash value [size]".
Robert Pope
Posts: 563
Joined: Sat Mar 25, 2006 8:27 pm
Location: USA
Full name: Robert Pope

Re: New engine: Peacekeeper

Post by Robert Pope »

It exits immediately for me. Perhaps because I'm on a really old machine (windows i5-2520M).
Sazgr
Posts: 66
Joined: Thu Dec 09, 2021 8:26 pm
Full name: Kyle Zhang

Re: New engine: Peacekeeper

Post by Sazgr »

JacquesRW wrote: Fri Nov 18, 2022 11:04 pm The provided windows executable crashes immediately for me, but I can compile it from the source without any issues.
Also,

Code: Select all

if (tokens[0] == "setoption" && tokens.size() >= 4) {
    if (tokens[1] == "Hash" && tokens[2] == "value") {hash.resize(stoi(tokens[3]));}
}
The GUI sends "setoption name Hash value [size]" but this expects "setoption Hash value [size]".
After being away for a week, I have seen this. Apparently my code is still filled with bugs :oops:
Hopefully I will fix all the bugs I am seeing and get a new, working, executable up there later today.
Sazgr
Posts: 66
Joined: Thu Dec 09, 2021 8:26 pm
Full name: Kyle Zhang

Re: New engine: Peacekeeper

Post by Sazgr »

I made a release. Hopefully any obvious bugs should be fixed and the executables should work correctly, but if they don't, please let me know.
Sazgr
Posts: 66
Joined: Thu Dec 09, 2021 8:26 pm
Full name: Kyle Zhang

Re: New engine: Peacekeeper

Post by Sazgr »

Code: Select all

Rank Name                          Elo     +/-   Games   Score    Draw
   0 peacekeeper                   -17      50     120   47.5%   35.0%
   1 minimalchess                   98      89      40   63.7%   37.5%
   2 kimbo                          70     101      40   60.0%   20.0%
   3 cinnamon                     -117      80      40   33.8%   47.5%
   
A short gauntlet :P Based on the CCRL ratings of the other engines, my engine should be around 2250-2400. But does anyone know how to add ratings to chess engines in cutechess? I read the -help information but didn't see any, or didn't comprehend it.
JacquesRW
Posts: 127
Joined: Sat Jul 30, 2022 12:12 pm
Full name: Jamie Whiting

Re: New engine: Peacekeeper

Post by JacquesRW »

The provided executable now works for me, however in it and my own compile of Peacekeeper it consistently crashes in Cutechess for me after 4-8 games - I'm not sure what it is as I can't reproduce it outside of the GUI.
Also, for me Peacekeeper performs weaker at longer time controls - moving from 0.1sec/move to 0.5sec/move sees it drop from ~100elo weaker than Kimbo 0.3.0 to ~300elo weaker. I encountered a similar problem when trying to implement late move and futility pruning, where at lower time controls the pruning was beneficial but at longer ones it was too "unsound" to be of help, and often blinded Kimbo from tactics.
Sazgr
Posts: 66
Joined: Thu Dec 09, 2021 8:26 pm
Full name: Kyle Zhang

Re: New engine: Peacekeeper

Post by Sazgr »

JacquesRW wrote: Wed Nov 30, 2022 12:14 am The provided executable now works for me, however in it and my own compile of Peacekeeper it consistently crashes in Cutechess for me after 4-8 games - I'm not sure what it is as I can't reproduce it outside of the GUI.
Also, for me Peacekeeper performs weaker at longer time controls - moving from 0.1sec/move to 0.5sec/move sees it drop from ~100elo weaker than Kimbo 0.3.0 to ~300elo weaker. I encountered a similar problem when trying to implement late move and futility pruning, where at lower time controls the pruning was beneficial but at longer ones it was too "unsound" to be of help, and often blinded Kimbo from tactics.
Glad to hear that the executable works now!

I've looked into the crashes, and it appears that because the engine output stops for some time, cutechess terminates the program. For the gauntlet, I use the flag -recover so the tournament doesn't end when a crash, but I'll keep trying to solve the disconnect problem.

Also thanks to pointing out the weakness at longer time controls, I'll see what is happening with all the risky pruning strategies. I think when I implemented LMR and futility/delta I made the bounds super aggressive and haven't modified them since, so that may be the problem with the lower ELO at LTC.
Sazgr
Posts: 66
Joined: Thu Dec 09, 2021 8:26 pm
Full name: Kyle Zhang

Re: New engine: Peacekeeper

Post by Sazgr »

The crash bug has been pinpointed to the hash move part of the staged move generation but no further :(
Sazgr
Posts: 66
Joined: Thu Dec 09, 2021 8:26 pm
Full name: Kyle Zhang

Re: New engine: Peacekeeper

Post by Sazgr »

I fixed what seems to be a large majority of the crashing and all of the illegal PV's, and uploaded new executables onto github along with some other minor ELO gainers.

There still seems to be very rare crashing that is not reproducible and I cannot figure out.
Last edited by Sazgr on Mon Dec 05, 2022 6:32 pm, edited 1 time in total.