3000 ELO Engine with Minimal Code?

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
Steve Maughan
Posts: 1276
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: 3000 ELO Engine with Minimal Code?

Post by Steve Maughan »

Yep — that was the problem. I have a 12th gen i9 so I thought I could run anything. Clearly that's not the case.

—Steve
http://www.chessprogramming.net - Juggernaut & Maverick Chess Engine
Ciekce
Posts: 192
Joined: Sun Oct 30, 2022 5:26 pm
Full name: Conor Anstey

Re: 3000 ELO Engine with Minimal Code?

Post by Ciekce »

Steve Maughan wrote: Fri Oct 20, 2023 6:53 pm Yep — that was the problem. I have a 12th gen i9 so I thought I could run anything. Clearly that's not the case.

—Steve
v4 compiles of engines require CPUs with AVX-512 support, which on desktop limits you to 7000 series Ryzen or 11th generation Intel - it was disabled in 12th gen Intel CPUs.
OliverBr
Posts: 797
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: 3000 Elo engine with minimal code?

Post by OliverBr »

Chessqueen wrote: Fri Oct 20, 2023 2:49 am I was wondering if Minic and OliThink can last at least 45 moves against the latest stockfish ?CCRL 40/4 rating list,
Of course it can last longer than 45 moves. Clearly, a lot t of games are lost before move 45, but they can last longer. There are some draws and even -in very fast time controls with crazy openings- wins.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
OliverBr
Posts: 797
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: 3000 Elo engine with minimal code?

Post by OliverBr »

Chessqueen wrote: Fri Oct 20, 2023 2:49 am I was wondering if Minic and OliThink can last at least 45 moves against the latest stockfish ?CCRL 40/4 rating list,
I can answer you that now with examples, because I have OliThink played a couple of games against Stockfish and all where lost, of course.
But: Stockfish could not checkmate before move #65. And the opening were some Sicilian defenses, very unbalanced, not to get into a boring, drawish position.

So yes, I would say, other engines about ELO 3000 can last 45 moves against Stockfish. Of course it depends on the engine, too.

Two examples: First a typical one, 69 moves.
Stockfish saw its advantage about move 17. OliThink saw it not before move 46 (!!) What magic has Stockfish to see it almost 30 moves sooner?

[pgn][Event "Computer Chess Game"]
[Site "Talkchess"]
[Date "2025.06.24"]
[Round "-"]
[White "OliThink 5.11.5"]
[Black "Stockfish 16.1"]
[Result "0-1"]
[TimeControl "40/120"]
[Annotator "10. +0.55 9... -0.17"]

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be2 e6 7. O-O Be7 8.
f4 O-O 9. Be3 e5 {-0.17/27 10} 10. Nb3 {+0.55/20 3} Nbd7 {-0.05/23 2.2} 11.
a4 {+0.47/20 0.4} b6 {+0.02/24 1.9} 12. f5 {+0.40/20 2.6} Bb7
{+0.26/23 2.3} 13. Qd3 {+0.17/20 0.4} Re8 {+0.25/24 3} 14. Rfd1
{+0.18/18 2.7} Rc8 {+0.42/22 3} 15. Bf2 {+0.19/20 5} Rxc3 {+1.45/25 3} 16.
Qxc3 {+0.05/23 4} Nxe4 {+1.47/26 0.1} 17. Qe1 {+0.08/24 2.9} Nxf2
{+1.59/28 11} 18. Qxf2 {+0.12/25 6} d5 {+1.63/29 0.1} 19. Kh1 {+0.08/23 3}
Qc7 {+1.54/28 5} 20. c3 {+0.22/22 2.8} h6 {+1.57/28 6} 21. a5
{+0.22/22 2.8} b5 {+2.07/23 4} 22. Bf3 {+0.16/23 4} Nf6 {+1.77/32 7} 23.
Qb6 {+0.16/23 3} Qc8 {+1.73/30 2.3} 24. Rf1 {+0.10/24 2.4} Rd8 {+1.73/30 5}
25. Qa7 {+0.10/21 3} Bd6 {+1.80/29 4} 26. Rac1 {+0.11/21 3} Qc7
{+1.80/32 10} 27. g3 {+0.11/23 4} h5 {+2.30/23 3} 28. Qe3 {+0.00/22 4} Rc8
{+2.21/26 7} 29. Bg2 {+0.00/22 8} Qe7 {+2.32/28 0.1} 30. Qe2 {+0.00/21 2.7}
Rc4 {+2.35/25 5} 31. Nd2 {-0.13/21 4} Rg4 {+2.34/24 1.4} 32. Nf3
{-0.14/20 2.2} Re4 {+2.36/26 7} 33. Qc2 {+0.00/24 3} Qc7 {+2.57/26 6} 34.
b3 {-0.43/23 10} Rg4 {+2.33/23 5} 35. Qe2 {+0.00/24 4} e4 {+2.52/18 1.0}
36. Ng1 {-0.04/22 2.6} Qxa5 {+2.37/21 0.1} 37. Nh3 {-0.20/22 3} b4
{+2.63/23 0.1} 38. cxb4 {+0.00/28 3} Qxb4 {+2.82/22 0.1} 39. Nf2
{+0.00/32 3} d4 {+2.94/23 0.1} 40. Nxg4 {+0.51/23 4} hxg4 {+3.40/22 0.1}
41. Rc4 {+0.44/16 0.2} Qb5 {+3.55/23 7} 42. Rb1 {-0.31/27 2.9} Kh7
{+3.63/25 4} 43. Qd2 {+0.00/25 2.1} d3 {+3.81/23 4} 44. Qg5 {+0.00/28 0.5}
Qb6 {+4.04/23 4} 45. Qd2 {+0.00/28 2.1} a5 {+4.33/24 5} 46. Qb2
{-1.16/22 4} Bd5 {+4.77/22 6} 47. Qd4 {-0.76/23 3} Qb7 {+4.84/22 1.6} 48.
Ra4 {-0.90/20 2.8} Bb4 {+5.32/23 3} 49. Ra2 {-1.03/20 2.1} Qc6 {+5.52/24 5}
50. Qg1 {-2.83/20 2.5} Qc3 {+5.77/23 5} 51. Rc1 {-3.88/23 5} Qxb3
{+6.63/22 5} 52. Raa1 {-6.26/29 5} d2 {+6.55/23 0.1} 53. Rcb1
{-6.65/24 2.5} Qd3 {+6.78/22 4} 54. Qf1 {-7.26/29 5} Qc3 {+6.93/23 4} 55.
Qf4 {-5.73/22 2.1} e3 {+7.62/22 4} 56. Bxd5 {-9.25/25 0.8} e2 {+8.39/20 4}
57. Bg2 {-11.77/22 2.0} e1=Q+ {+9.26/19 1.9} 58. Rxe1 {-14.25/24 8} dxe1=R+
{+11.25/21 2.2} 59. Rxe1 {-15.24/23 0.9} Qxe1+ {+12.44/20 3} 60. Qf1
{-16.07/25 3} Qc3 {+13.23/20 2.6} 61. Qf4 {-16.49/23 6} Bc5 {+1000.12/41 4}
62. Qf1 {-1000.15/25 4} a4 {+1000.10/48 0.1} 63. Bd5 {-1000.13/23 2.7} Nxd5
{+1000.09/43 3} 64. f6 {-1000.08/26 1.0} g6 {+1000.08/46 2.2} 65. Qd1
{-1000.05/35 2.3} Qe3 {+1000.05/69 0.7} 66. h3 {-1000.04/46 1.6} Nf4
{+1000.04/205 1.3} 67. Qf1 {-1000.03/48 1.2} Qxg3 {+1000.03/245 0.1} 68.
hxg4 {-1000.02/58 2.6} Qh4+ {+1000.02/245 0.1} 69. Qh3 {-1000.01/64 0.1}
Qxh3# {+1000.01/245}
{Xboard adjudication: Checkmate} 0-1
[/pgn]

Second, quickest one, where OliThink blundered very soon in move about 25.
Nonetheless, Stockfish had to go into the endgame:

[pgn][Event "Computer Chess Game"]
[Site "Talkchess"]
[Date "2025.06.24"]
[Round "-"]
[White "OliThink 5.11.5"]
[Black "Stockfish 16.1"]
[Result "0-1"]
[TimeControl "40/120"]
[Annotator "10. +0.58 9... -0.17"]

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be2 e6 7. O-O Be7 8.
f4 O-O 9. Be3 e5 {-0.17/27 10} 10. Nb3 {+0.58/20 3} Nbd7 {-0.04/24 2.2} 11.
a3 {+0.38/18 3} b5 {+0.25/27 7} 12. a4 {+0.23/23 1.8} b4 {+0.30/26 4} 13.
Nd5 {+0.28/23 0.4} Bb7 {+0.32/24 1.8} 14. Nxb4 {+0.39/21 2.9} exf4
{+0.35/23 2.6} 15. Bxf4 {+0.19/21 6} Nxe4 {+0.36/27 0.1} 16. Nd5
{+0.19/21 2.8} Bg5 {+0.37/27 1.0} 17. Bxg5 {+0.37/21 2.7} Qxg5
{+0.35/27 0.8} 18. Rf5 {+0.15/23 6} Qd8 {+0.22/29 1.4} 19. Ne3
{+0.04/24 11} g6 {+0.44/25 5} 20. Rf1 {+0.17/20 3} Qg5 {+0.42/26 3} 21. Qd4
{+0.15/20 3} Rae8 {+0.45/27 2.4} 22. Bf3 {+0.19/20 0.8} Ndc5 {+0.44/26 2.6}
23. Rfe1 {-0.06/20 4} h5 {+0.60/27 9} 24. Ra3 {+0.04/20 5} Re7 {+1.00/23 4}
25. Rf1 {+0.16/19 2.9} Ne6 {+3.97/23 4} 26. Qb6 {+0.00/21 1.0} Nf4
{+4.31/24 3} 27. Kh1 {-0.30/22 1.0} h4 {+5.34/22 4} 28. Nd4 {-1.25/19 3}
Ng3+ {+5.73/25 10} 29. Kg1 {-5.32/20 4} Nxf1 {+5.77/26 0.5} 30. Kxf1
{-5.48/25 3} Nd5 {+5.80/26 3} 31. Bxd5 {-5.81/24 1.1} Bxd5 {+5.94/25 3} 32.
Qxd6 {-5.82/23 0.1} Rxe3 {+6.01/26 4} 33. Rxe3 {-3.55/24 3} Qxe3
{+5.98/26 1.3} 34. Qxd5 {-4.63/29 3} Re8 {+6.17/26 3} 35. Nf3
{-4.77/30 1.0} Qc1+ {+6.20/26 6} 36. Kf2 {-3.62/23 6} Qxc2+ {+6.16/27 0.1}
37. Qd2 {-3.71/24 8} Qxa4 {+6.32/26 0.3} 38. h3 {-3.77/23 8} Qb3
{+6.37/27 0.8} 39. Nxh4 {-3.53/23 7} Qb6+ {+6.36/32 6} 40. Kf1
{-3.69/23 1.6} Qb5+ {+6.87/27 8} 41. Kg1 {-3.55/21 4} Qc5+ {+7.09/31 4} 42.
Kh1 {-3.11/26 2.5} Rc8 {+7.16/27 1.8} 43. Nf3 {-4.36/25 4} Qc1+
{+7.56/26 6} 44. Kh2 {-6.63/30 0.4} Qxd2 {+7.94/27 8} 45. Nxd2
{-8.58/31 1.6} Rc2 {+7.95/26 5} 46. Ne4 {-7.69/31 2.0} Rxb2 {+8.12/24 4}
47. Nc3 {-8.35/29 0.2} a5 {+8.49/24 4} 48. Kh1 {-8.29/30 3} Rb3
{+9.09/22 4} 49. Na4 {-12.79/28 0.8} Rb4 {+10.87/23 4} 50. Nc3
{-14.89/28 1.8} a4 {+10.96/24 3} 51. Nxa4 {-8.35/26 4} Rxa4 {+14.36/28 6}
52. Kh2 {-10.57/25 2.0} Ra3 {+16.67/28 4} 53. g4 {-12.19/24 3} Kg7
{+25.19/28 4} 54. g5 {-15.87/21 3} f6 {+1000.15/37 4} 55. h4 {-16.92/22 4}
fxg5 {+1000.14/37 0.1} 56. hxg5 {-1000.14/22 3} Kf7 {+1000.13/40 0.9} 57.
Kg2 {-1000.10/22 2.2} Ke6 {+1000.12/43 2.1} 58. Kf2 {-1000.07/37 2.4} Kd5
{+1000.10/56 5} 59. Ke2 {-1000.07/53 2.3} Kd4 {+1000.08/69 1.2} 60. Kd2
{-1000.06/62 3} Ra2+ {+1000.07/138 4} 61. Ke1 {-1000.05/64 0.4} Kd3
{+1000.05/245 1.0} 62. Kf1 {-1000.04/64 0.1} Ke3 {+1000.04/245} 63. Kg1
{-1000.03/64 0.1} Kf3 {+1000.03/245 0.1} 64. Kh1 {-1000.02/64 0.1} Kg3
{+1000.02/245} 65. Kg1 {-1000.01/64 0.1} Ra1# {+1000.01/245 0.1}
{Xboard adjudication: Checkmate} 0-1
[/pgn]


PS: ChatGTP was crushed in about move 29 with that opening (see
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
abulmo2
Posts: 467
Joined: Fri Dec 16, 2016 11:04 am
Location: France
Full name: Richard Delorme

Re: 3000 Elo engine with minimal code?

Post by abulmo2 »

Chessqueen wrote: Fri Oct 20, 2023 2:49 am
I was wondering if Minic and OliThink can last at least 45 moves against the latest stockfish ?CCRL 40/4 rating list,
[/quote]
I do not have data for those programs, but I did organize a bunch of bullet games (30"+0.2) between Dumb 2.3 & Stockfish 17 a few months ago. Dumb is in the same category of the programs quoted, minimal code (1400 line of codes for about 2800 Elo on CCRL).
I used cutechess cli with the following bash file to launch the games.

Code: Select all

#!/bin/bash

e1='-engine cmd='$1' proto=uci'
e2='-engine cmd='$2' proto=uci'

book="-openings file=$HOME/progs/chess/games/book-10ply.pgn"
draw="-draw movenumber=60 movecount=30 score=10"
resign="-resign movecount=3 score=600 two sided=true"
tourney="-tournament gauntlet -games 86280 -repeat -concurrency 16 -event dumb-gauntlet -recover -each tc=0:30+0.2"

cutechess-cli $e1 $e2 $tourney $book $draw $resign -pgnout ../games/$1-$2.pgn
So the games were adjudicated and should have been longer. I used a file of 43140 various openings (mixing several public ones). The plycount result is the following:
Image
Against Stockfish 17, the games lasted in average 94 plies (47 moves). The longest game lasted 592 plies (296 moves). To compare against an engine of similar level, I included the result against Olithink 5.10.5. The games lasted 147 plies (73 moves) in average and the longest one lasted 759 plies (379 moves).
And for the record, the result was: Stockfish 17 84683 wins - Dumb 2.3 61 wins - 1536 draws.
Richard Delorme