OliverBr wrote: ↑Sun Nov 08, 2020 5:55 pm
Hello

I checked a lot of open source engines, if they met the following criterias:
1) Open source (most are on git anyway)
2) Easy compile with make/cmake on both, Linux and MacOSX, with g++ and clang, telling their name on init.
3) Complete implementation of either UCI or CECP protocol
4) Stable over thousands of games
5) Bugfree in terms of timeouts and illegal moves and draw repitions.
From over 1000 engines I found, only 48 met all the criterias.
This is the list, the third column is the relative strength when playing h2h against OliThink 5.9.0 on very fast time control:
From your other posts it seems you are using cutechess-cli. My own engines (amoeba) do illegal moves according to cutechess-cli, except that when I look at the log produced by them, cutechess-cli is clearly at fault.
Here is an example of game with illegal move:
Code: Select all
[Event "rr-4.0"]
[Site "?"]
[Date "2020.11.11"]
[Round "8"]
[White "Amoeba 4.0.17b.l64p-l"]
[Black "Amoeba 4.0.5.l64p-l"]
[Result "0-1"]
[ECO "A58"]
[GameDuration "00:00:00"]
[GameEndTime "2020-11-11T07:29:10.774 CET"]
[GameStartTime "2020-11-11T07:29:10.455 CET"]
[Opening "Benko gambit accepted"]
[PlyCount "12"]
[Termination "illegal move"]
[TimeControl "10+0.1"]
1. d4 {book} Nf6 {book} 2. c4 {book} c5 {book} 3. d5 {book} b5 {book}
4. cxb5 {book} a6 {book} 5. bxa6 {book} g6 {book} 6. Nc3 {book}
Bxa6 {book, White makes an illegal move: d8a5} 0-1
And the corresponding log from Amoeba 4.0.17b:
Code: Select all
[2020.11.11 7:29:10.091] Amoeba 4.0.17b.l64p-l< isready
[2020.11.11 7:29:10.091] Amoeba 4.0.17b.l64p-l> readyok
[2020.11.11 7:29:10.102] Amoeba 4.0.17b.l64p-l< ucinewgame
[2020.11.11 7:29:10.111] Amoeba 4.0.17b.l64p-l< setoption name Ponder value false
[2020.11.11 7:29:10.111] Amoeba 4.0.17b.l64p-l< position startpos
[2020.11.11 7:29:10.111] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6 b5a6
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6 b5a6 g7g6
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6 b5a6 g7g6 b1c3
[2020.11.11 7:29:10.112] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6 b5a6 g7g6 b1c3 c8a6
[2020.11.11 7:29:10.444] Amoeba 4.0.17b.l64p-l< isready
[2020.11.11 7:29:10.444] Amoeba 4.0.17b.l64p-l> readyok
[2020.11.11 7:29:10.456] Amoeba 4.0.17b.l64p-l< ucinewgame
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< setoption name Ponder value false
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6 b5a6
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6 b5a6 g7g6
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< position startpos moves d2d4 g8f6 c2c4 c7c5 d4d5 b7b5 c4b5 a7a6 b5a6 g7g6 b1c3
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l< isready
[2020.11.11 7:29:10.465] Amoeba 4.0.17b.l64p-l> readyok
[2020.11.11 7:29:10.467] Amoeba 4.0.17b.l64p-l< go wtime 10100 btime 10100 winc 100 binc 100
[2020.11.11 7:29:10.467] Amoeba 4.0.17b.l64p-l# time> 10.1/0+0.1 -> time.min0.234412, time.max: 0.334875, time.extra: 0.66975
[2020.11.11 7:29:10.467] Amoeba 4.0.17b.l64p-l# search options: Option(Time(0.234412, 0.334875, 0.66975), Nodes(18446744073709551615), Depth(0, 127), Score(0), CPU(16, CPUAffinity(0, 0)), 1, true, false, true)
[2020.11.11 7:29:10.467] Amoeba 4.0.17b.l64p-l# smp> task[0] launched
[2020.11.11 7:29:10.467] Amoeba 4.0.17b.l64p-l# smp > task[0] iterate
[2020.11.11 7:29:10.467] Amoeba 4.0.17b.l64p-l> info depth 1 seldepth 1 score cp -16 time 0 nodes 24 nps 95200 pv c8a6
[2020.11.11 7:29:10.467] Amoeba 4.0.17b.l64p-l> info depth 2 seldepth 4 score cp -34 time 0 nodes 98 nps 297962 pv c8a6 c1f4
[...]
[2020.11.11 7:29:10.774] Amoeba 4.0.17b.l64p-l> info depth 13 seldepth 28 score cp -53 time 307 nodes 561445 nps 1824714 pv d8a5 g1f3 f6e4 c1d2 e4d2 d1d2 c8a6 e2e4 f8g7 f1a6 a5a6 e4e5 d7d6 e1c1
[2020.11.11 7:29:10.774] Amoeba 4.0.17b.l64p-l# smp> task[0] finished: info depth 13 seldepth 28 score cp -53 time 307 nodes 561445 nps 1824714 pv d8a5 g1f3 f6e4 c1d2 e4d2 d1d2 c8a6 e2e4 f8g7 f1a6 a5a6 e4e5 d7d6 e1c1
[2020.11.11 7:29:10.774] Amoeba 4.0.17b.l64p-l# smp> task[0] terminated
[2020.11.11 7:29:10.774] Amoeba 4.0.17b.l64p-l> bestmove d8a5
[2020.11.11 7:29:10.775] Amoeba 4.0.17b.l64p-l< isready
[2020.11.11 7:29:10.775] Amoeba 4.0.17b.l64p-l> readyok
[2020.11.11 7:29:10.787] Amoeba 4.0.17b.l64p-l< ucinewgame
My engine received twice the opening, the second time without the last move and of course give a bestmove from the last position it received. Garbaage in, garbage out.
I am afraid that cutechess-cli is often the one at fault in your tests, not the engines you analysed.