Senpai 3.0 by Fabien LETOUZEY is available!

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

Moderator: Ras

Pablo Vazquez
Posts: 155
Joined: Thu May 31, 2007 9:05 pm
Location: Madrid, Spain

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Pablo Vazquez »

Xann wrote: Wed Dec 17, 2025 5:53 am
Frank Quisinsky wrote: Wed Dec 17, 2025 5:36 am Hi Fabien,

I can add each time a new version on my site.

Jim like it to compare the own compiles with the compiles by the programmers.

In my opinion better ...
To add your own compiles in the Senpai download file and Jim can add his own compiles
on his Repro directory, if Jim do that.

Important is to create a new version number, like Senpai 3.0.1 for an example (of course
your decision).

Your own compiles for the RC1 = release version are 10% slower only.

Hint to Senpai 2.0:
Jim's Senpai 2.0 compiles are 40% faster but I didn't put his Senpai 2 compilations with
the other Senpai files.

Best
Frank
Yes Frank 3.0.1 and compile myself, I will do that.

Fabien.
Have you considered using a public github repo? It would help with the releases and also to track changes between versions/commits. For example, I've noticed that you removed 7th rank pawn push extension in 3.0.1 in addition to the other two changes.
Pvt. Ryan
Posts: 65
Joined: Mon Sep 12, 2022 3:50 am
Location: Christchurch, NZ
Full name: Ray Bongalon

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Pvt. Ryan »

Hi. Does this engine have a build that uses HCE instead of NNUE? Cheers
Xann
Posts: 148
Joined: Sat Jan 22, 2011 7:14 pm
Location: Lille, France
Full name: Fabien Letouzey

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Xann »

Pablo Vazquez wrote: Wed Dec 17, 2025 10:02 pm Have you considered using a public github repo? It would help with the releases and also to track changes between versions/commits. For example, I've noticed that you removed 7th rank pawn push extension in 3.0.1 in addition to the other two changes.
Hi Pablo,

Public commits are not at all how I roll; there are multiple aspects.

The development version has a lot more code, and is organised in 'lab' modules that generate game examples, learn evaluation weights, test changes etc; they use the engine module directly. There is also a lot of unused chess code for future experiments. I consider all of this unfit for a UCI release.

Then, there is another big aspect. To me, GitHub and other popular places are more an 'AI-training farm' than a public utility (hence the value). You know how it works, they take your upload as 'consent' to use it for their models (which are not free to use). When I want to distribute something, I look for enthusiasts.

Specifically for the extension you mentioned, Ryan proposed to remove it this week. Since I had to make a change (Move Overhead) that affects Elo somewhat, I applied his proposal (after testing of course). I was focused on the release, and wasn't testing chess changes at the same time.

Fabien.
Xann
Posts: 148
Joined: Sat Jan 22, 2011 7:14 pm
Location: Lille, France
Full name: Fabien Letouzey

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Xann »

Pvt. Ryan wrote: Wed Dec 17, 2025 10:49 pm Hi. Does this engine have a build that uses HCE instead of NNUE? Cheers
First of all, Senpai does not use a neural network.

Secondly, I question the HCE vs NN categories. I am claiming earlier in this thread, and the link below that there is a 'grey area' inbetween. I hope that experts will give their opinion.

viewtopic.php?p=981661#p981661
See my answer to 'Will it use NN evaluation or hand-tuned eval?'

To come back to your question, I think that the community already considers Senpai's evaluation as HCE, apparently following this definition: it's not a neural network.

Fabien.
Pvt. Ryan
Posts: 65
Joined: Mon Sep 12, 2022 3:50 am
Location: Christchurch, NZ
Full name: Ray Bongalon

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Pvt. Ryan »

Thanks for that. I just thought the 'eval' file had something to do with NN. The engine won't work if 'eval' is not in the same folder.
Xann
Posts: 148
Joined: Sat Jan 22, 2011 7:14 pm
Location: Lille, France
Full name: Fabien Letouzey

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Xann »

Pvt. Ryan wrote: Wed Dec 17, 2025 11:42 pm I just thought the 'eval' file had something to do with NN.
Yeah, exactly. I think you felt that grey area already!
Ryan Benitez
Posts: 725
Joined: Thu Mar 09, 2006 1:21 am
Location: Portland Oregon

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Ryan Benitez »

Xann wrote: Wed Dec 17, 2025 11:22 pm
Pvt. Ryan wrote: Wed Dec 17, 2025 10:49 pm Hi. Does this engine have a build that uses HCE instead of NNUE? Cheers
First of all, Senpai does not use a neural network.

Secondly, I question the HCE vs NN categories. I am claiming earlier in this thread, and the link below that there is a 'grey area' inbetween. I hope that experts will give their opinion.

viewtopic.php?p=981661#p981661
See my answer to 'Will it use NN evaluation or hand-tuned eval?'

To come back to your question, I think that the community already considers Senpai's evaluation as HCE, apparently following this definition: it's not a neural network.

Fabien.
I think you have shown that there are multiple things between HCE and NN.
Peter Berger
Posts: 766
Joined: Thu Mar 09, 2006 2:56 pm

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Peter Berger »

1. The README is misleading - Senpai ponders just fine.

2. Time management is too conservative. It's one thing to save some time for the endgame, but in both games following Senpai effectively used only half of its time in a very long game.

3. Senpai has a grinding style, reminds me of Fruit. An insider joke: a "sceptical engine". I like. I think I understand what you wrote about eval. But it looks like it can't score what it don't know at all, like h-pawn with bishop with wrong colour in game 2.

As like no one does slow games these days - I share my first experiences with this interesting engine:

[pgn]

[Event "Lang 90min+30sek"]
[Site "Berlin"]
[Date "2025.12.19"]
[Round "?"]
[White "Crafty 25.6"]
[Black "Senpai 3.0.1"]
[Result "0-1"]
[ECO "C41"]
[PlyCount "172"]
[TimeControl "5400+30"]

{4096MB, DESKTOP-8OCGGEO} 1. e4 {[%emt 0:00:00]} e5 {[%eval 25,29] [%emt 0:01:21]} 2. Nf3 {[%emt 0:00:06]} d6 {[%eval 24,30] [%emt 0:01:50]} 3. d4 {[%emt 0:00:06]} exd4 {[%eval 24,30] [%emt 0:02:08]} 4. Nxd4 {[%emt 0:00:07]} Be7 {[%eval 20,32] [%emt 0:01:23]} 5. Nc3 {[%emt 0:02:23]} Nf6 {[%eval 26,31] [%emt 0:00:01]} 6. Bf4 {[%emt 0:00:06] (Le2)} O-O {[%eval 27,31] [%emt 0:01:25]} 7. Qd2 {[%emt 0:00:06] (Le2)} Nc6 {[%eval 34,30] [%emt 0:03:11]} 8. O-O-O {[%emt 0:00:07]} Nxd4 {[%eval 42,29] [%emt 0:01:25]} 9. Qxd4 {[%emt 0:00:08]} Be6 {[%eval 40,30] [%emt 0:01:03]} 10. f3 {[%emt 0:00:06] (Kb1)} Re8 {[%eval 45,28] [%emt 0:01:14]} 11. Bc4 {[%emt 0:02:18] (Kb1)} Nh5 {[%eval 48,33] [%emt 0:02:49]} 12. Be3 {[%emt 0:00:06] (Ld2)} Bf6 {[%eval 43,33] [%emt 0:04:25]} 13. Qd3 {[%emt 0:00:07]} Bxc4 {[%eval 36,31] [%emt 0:01:48]} 14. Qxc4 {[%emt 0:00:19]} Be5 {[%eval 48,33] [%emt 0:01:11]} 15. Kb1 {[%emt 0:05:52]} Nf6 {[%eval 44,32] [%emt 0:00:01]} 16. g4 {[%emt 0:04:54] (Db3)} c6 {[%eval 36,31] [%emt 0:01:53]} 17. g5 {[%emt 0:06:02]} Nh5 {[%eval 35,33] [%emt 0:00:01]} 18. Ne2 {[%emt 0:02:58]} Qe7 {[%eval 47,34] [%emt 0:00:01]} 19. Rd3 {[%emt 0:04:47] (Sg3)} g6 {[%eval 35,32] [%emt 0:01:17]} 20. h4 {[%emt 0:06:10] (Db4)} Rac8 {[%eval 43,32] [%emt 0:03:05]} 21. Qa4 {[%emt 0:03:55] (Thd1)} a6 {[%eval 40,32] [%emt 0:03:59]} 22. Rhd1 {[%emt 0:00:36]} Rb8 {[%eval 49,33] [%emt 0:02:52]} 23. Qa3 {[%emt 0:03:56] (Db4)} Qe6 {[%eval 54,33] [%emt 0:04:22]} 24. Bc1 {[%emt 0:02:09] (Db3)} b5 {[%eval 36,32] [%emt 0:01:12]} 25. f4 {[%emt 0:03:11] (Db3)} Bg7 {[%eval 28,36] [%emt 0:04:16]} 26. Re3 {[%emt 0:00:08]} b4 {[%eval 32,35] [%emt 0:00:54]} 27. Qd3 {[%emt 0:01:35]} Rbd8 {[%eval 25,34] [%emt 0:00:01]} 28. f5 {[%emt 0:01:02]} Qc8 {[%eval 25,32] [%emt 0:00:28]} 29. f6 {[%emt 0:00:20]} Bf8 {[%eval 23,34] [%emt 0:01:10]} 30. Qd2 {[%emt 0:00:07] (Dc4)} d5 {[%eval -21,40] [%emt 0:04:22]} 31. exd5 {[%emt 0:00:52]} Rxd5 {[%eval -35,39] [%emt 0:00:01]} 32. Qe1 {[%emt 0:00:43] (Td3)} Rxe3 {[%eval -2,37] [%emt 0:03:25]} 33. Bxe3 {[%emt 0:00:06]} Re5 {[%eval -1,37] [%emt 0:01:15]} 34. Qf2 {[%emt 0:00:09]} Qh3 {[%eval -31,38] [%emt 0:01:11]} 35. Bc1 {[%emt 0:00:07]} Qg4 {[%eval -35,40] [%emt 0:02:57]} 36. Rd2 {[%emt 0:00:06]} c5 {[%eval -42,41] [%emt 0:00:53]} 37. Ng1 {[%emt 0:00:06]} Nf4 {[%eval -50,40] [%emt 0:01:10]} 38. Nf3 {[%emt 0:01:47] R} Rf5 {[%eval -69,41] [%emt 0:01:14]} 39. Qe3 {[%emt 0:01:52] (Sh2)} Nd5 {[%eval -72,40] [%emt 0:01:12]} 40. Qd3 {[%emt 0:00:06] (De2)} h5 {[%eval -145,38] [%emt 0:02:50]} 41. Rf2 {[%emt 0:00:47] (De2)} c4 {[%eval -210,42] [%emt 0:03:28]} 42. Qe2 {[%emt 0:00:17]} Qg3 {[%eval -215,43] [%emt 0:03:41]} 43. Rf1 {[%emt 0:01:55]} c3 {[%eval -225,40] [%emt 0:00:01]} 44. Rd1 {[%emt 0:00:55] (b3)} cxb2 {[%eval -225,42] [%emt 0:00:57]} 45. Bxb2 {[%emt 0:00:07]} Rxf3 {[%eval -225,44] [%emt 0:00:55]} 46. Rxd5 {[%emt 0:00:06]} Re3 {[%eval -225,41] [%emt 0:00:55]} 47. Qd2 {[%emt 0:00:07]} Qxh4 {[%eval -239,39] [%emt 0:02:10]} 48. Bc1 {[%emt 0:00:07]} Re8 {[%eval -241,40] [%emt 0:00:35]} 49. Qd3 {[%emt 0:00:06] (Kb2)} a5 {[%eval -235,42] [%emt 0:02:42]} 50. Rd7 {[%emt 0:00:49]} Qe4 {[%eval -235,43] [%emt 0:00:07]} 51. Qxe4 {[%emt 0:00:48] (Db3)} Rxe4 {[%eval -273,43] [%emt 0:00:55]} 52. Rd3 {[%emt 0:00:07]} h4 {[%eval -273,45] [%emt 0:00:38]} 53. c3 {[%emt 0:00:06]} Rg4 {[%eval -303,42] [%emt 0:01:33]} 54. cxb4 {[%emt 0:00:34]} Bxb4 {[%eval -348,41] [%emt 0:01:25]} 55. Rh3 {[%emt 0:00:53]} Bd6 {[%eval -348,46] [%emt 0:00:41]} 56. Rd3 {[%emt 0:00:28] (Th1)} Bc7 {[%eval -356,42] [%emt 0:00:46]} 57. Re3 {[%emt 0:00:11]} Bg3 {[%eval -388,44] [%emt 0:00:41]} 58. Re8+ {[%emt 0:00:32]} Kh7 {[%eval 1,0] [%emt 0:00:01]} 59. Re7 {[%emt 0:00:24]} Rb4+ {[%eval -451,43] [%emt 0:00:44]} 60. Kc2 {[%emt 0:00:06]} Rc4+ {[%eval -466,46] [%emt 0:00:45]} 61. Kd1 {[%emt 0:00:59]} Rc7 {[%eval -480,47] [%emt 0:00:01]} 62. Rxc7 {[%emt 0:00:32]} Bxc7 {[%eval -648,49] [%emt 0:00:14]} 63. Ke2 {[%emt 0:00:12]} h3 {[%eval -768,53] [%emt 0:02:17]} 64. Kf3 {[%emt 0:00:06]} Kg8 {[%eval -843,57] [%emt 0:00:45]} 65. Be3 {[%emt 0:01:08] (La3)} Kf8 {[%eval -933,54] [%emt 0:00:50]} 66. Bc5+ {[%emt 0:01:48] (Lc1)} Ke8 {[%eval -1071,51] [%emt 0:00:50]} 67. Be3 {[%emt 0:01:24] (Ld4)} a4 {[%eval -1340,55] [%emt 0:01:27]} 68. Kf2 {[%emt 0:00:28]} Kd7 {[%eval -1370,56] [%emt 0:00:20]} 69. a3 {[%emt 0:00:53] (Kf3)} Bd6 {[%eval -2080,51] [%emt 0:02:26]} 70. Bd2 {[%emt 0:00:47]} Bxa3 {[%eval -32729,37] [%emt 0:02:00]} 71. Kf3 {[%emt 0:00:06]} Ke6 {[%eval -32731,36] [%emt 0:00:38]} 72. Be3 {[%emt 0:00:19] (Lc3)} Bd6 {[%eval -32733,36] [%emt 0:00:40]} 73. Bc1 {[%emt 0:00:07]} Kf5 {[%eval -32737,36] [%emt 0:00:37]} 74. Kf2 {[%emt 0:00:08] (Lb2)} Kg4 {[%eval -32741,38] [%emt 0:00:40]} 75. Kg1 {[%emt 0:00:18]} a3 {[%eval -32743,41] [%emt 0:00:24]} 76. Bxa3 {[%emt 0:00:06]} Bxa3 {[%eval -32745,46] [%emt 0:00:33]} 77. Kh1 {[%emt 0:00:07]} Bc5 {[%eval -32747,63] [%emt 0:00:32]} 78. Kh2 {[%emt 0:00:07]} Be3 {[%eval -32749,99] [%emt 0:00:10]} 79. Kh1 {[%emt 0:00:07]} Kxg5 {[%eval -32751,99] [%emt 0:00:00]} 80. Kh2 {[%emt 0:00:05]} Kh4 {[%eval -32753,99] [%emt 0:00:00]} 81. Kh1 {[%emt 0:00:05]} g5 {[%eval -32755,99] [%emt 0:00:00]} 82. Kh2 {[%emt 0:00:05]} g4 {[%eval -32757,99] [%emt 0:00:00]} 83. Kh1 {[%emt 0:00:05]} Bd4 {[%eval -32759,99] [%emt 0:00:00]} 84. Kh2 {[%emt 0:00:05]} g3+ {[%eval -32761,99] [%emt 0:00:00]} 85. Kh1 {[%emt 0:00:05]} g2+ {[%eval -32763,99] [%emt 0:00:00]} 86. Kh2 {[%emt 0:00:05]} g1=Q# {[%eval -32765,99] [%emt 0:00:00]} 0-1

[/pgn]

[pgn]

[Event "Lang 90min+30sek"]
[Site "Berlin"]
[Date "2025.12.19"]
[Round "?"]
[White "Senpai 3.0.1"]
[Black "Crafty 25.6"]
[Result "1/2-1/2"]
[ECO "B22"]
[PlyCount "321"]
[TimeControl "5400+30"]

{4096MB, DESKTOP-8OCGGEO} 1. e4 {[%eval 24,30] [%emt 0:01:48]} c5 {[%emt 0:00:06]} 2. c3 {[%eval 14,28] [%emt 0:01:19]} Nf6 {[%emt 0:00:06] (e6)} 3. e5 {[%eval 32,30] [%emt 0:01:15]} Nd5 {[%emt 0:00:05]} 4. d4 {[%eval 28,30] [%emt 0:01:32]} cxd4 {[%emt 0:00:06] (d6)} 5. Nf3 {[%eval 33,30] [%emt 0:01:43]} Nc6 {[%emt 0:00:06]} 6. cxd4 {[%eval 34,30] [%emt 0:02:04]} d6 {[%emt 0:00:07]} 7. Bc4 {[%eval 29,32] [%emt 0:01:47]} Nb6 {[%emt 0:00:06] (dxe5)} 8. Bb5 {[%eval 22,33] [%emt 0:02:35]} dxe5 {[%emt 0:00:07]} 9. Nxe5 {[%eval 22,33] [%emt 0:01:16]} Bd7 {[%emt 0:00:09]} 10. Nxd7 {[%eval 26,33] [%emt 0:00:55]} Qxd7 {[%emt 0:00:06]} 11. Nc3 {[%eval 21,33] [%emt 0:01:56]} e6 {[%emt 0:00:07]} 12. O-O {[%eval 16,32] [%emt 0:00:58]} Be7 {[%emt 0:00:06] (Td8)} 13. Qg4 {[%eval 48,32] [%emt 0:01:07]} O-O {[%emt 0:00:07]} 14. Bxc6 {[%eval 47,34] [%emt 0:01:36]} bxc6 {[%emt 0:00:07]} 15. Bh6 {[%eval 41,37] [%emt 0:01:16]} Bf6 {[%emt 0:00:06]} 16. Rfd1 {[%eval 44,35] [%emt 0:01:50]} Rfd8 {[%emt 0:00:08] (Kh8)} 17. Ne4 {[%eval 50,34] [%emt 0:02:03]} Qe7 {[%emt 0:00:06]} 18. Rac1 {[%eval 47,34] [%emt 0:01:35]} Rac8 {[%emt 0:00:41]} 19. a3 {[%eval 48,33] [%emt 0:00:32]} Kh8 {[%emt 0:02:26]} 20. Be3 {[%eval 43,35] [%emt 0:00:01]} Nd5 {[%emt 0:02:17]} 21. b4 {[%eval 43,35] [%emt 0:00:01]} Qe8 {[%emt 0:02:05]} 22. Nxf6 {[%eval 43,37] [%emt 0:00:01]} Nxf6 {[%emt 0:02:09]} 23. Qf3 {[%eval 43,38] [%emt 0:00:01]} Rd5 {[%emt 0:02:05] (Sd5)} 24. Rc5 {[%eval 42,33] [%emt 0:01:25]} Nd7 {[%emt 0:11:24] (Sg8)} 25. Rc3 {[%eval 36,35] [%emt 0:01:48]} Nf6 {[%emt 0:01:46]} 26. Rdc1 {[%eval 36,36] [%emt 0:00:05]} a5 {[%emt 0:02:10] (Sg8)} 27. bxa5 {[%eval 46,33] [%emt 0:01:51]} Rxa5 {[%emt 0:00:12] (Tf5)} 28. Rxc6 {[%eval 59,36] [%emt 0:01:32]} Rca8 {[%emt 0:01:38] (Txc6)} 29. Rc7 {[%eval 53,36] [%emt 0:01:07]} Rxa3 {[%emt 0:00:19]} 30. h3 {[%eval 35,42] [%emt 0:01:47]} Rb8 {[%emt 0:02:52] (Ta1)} 31. d5 {[%eval 33,43] [%emt 0:03:53]} Nxd5 {[%emt 0:00:07]} 32. Rxf7 {[%eval 29,45] [%emt 0:01:16]} h6 {[%emt 0:00:06] (Sxe3)} 33. Qg3 {[%eval 52,42] [%emt 0:02:20]} Qxf7 {[%emt 0:01:28]} 34. Qxb8+ {[%eval 52,42] [%emt 0:00:10]} Kh7 {[%emt 0:01:08]} 35. Bd4 {[%eval 45,37] [%emt 0:00:18]} Rd3 {[%emt 0:01:23] (Ta4)} 36. Be5 {[%eval 44,38] [%emt 0:01:38]} Rd2 {[%emt 0:01:21]} 37. Bg3 {[%eval 38,40] [%emt 0:00:01]} Qh5 {[%emt 0:01:20] (Df5) R} 38. Kh2 {[%eval 53,43] [%emt 0:01:38]} Nf6 {[%emt 0:00:07]} 39. Re1 {[%eval 53,44] [%emt 0:01:29]} Re2 {[%emt 0:00:11] (Td1)} 40. Qb1+ {[%eval 53,40] [%emt 0:01:36]} Kg8 {[%emt 0:00:07]} 41. Qa1 {[%eval 40,43] [%emt 0:01:01]} Rxe1 {[%emt 0:01:16]} 42. Qxe1 {[%eval 40,46] [%emt 0:00:16]} Qf5 {[%emt 0:00:52]} 43. Be5 {[%eval 40,46] [%emt 0:00:41]} Nd7 {[%emt 0:01:13] (Se4)} 44. Bb2 {[%eval 53,44] [%emt 0:01:15]} Kf7 {[%emt 0:01:11] (Sf6)} 45. Qc3 {[%eval 53,46] [%emt 0:01:18]} Qf4+ {[%emt 0:01:09] (Sf6)} 46. Kg1 {[%eval 53,48] [%emt 0:01:23]} Nf6 {[%emt 0:00:08]} 47. Qc8 {[%eval 53,48] [%emt 0:01:22]} Qd6 {[%emt 0:01:08] (De4)} 48. Qc1 {[%eval 53,46] [%emt 0:01:24]} Nd5 {[%emt 0:01:11] (Dd5)} 49. Qd1 {[%eval 53,47] [%emt 0:01:27]} Qf4 {[%emt 0:01:04] (Db8)} 50. Qh5+ {[%eval 78,42] [%emt 0:01:27]} g6 {[%emt 0:01:04]} 51. Qe2 {[%eval 64,47] [%emt 0:01:29]} h5 {[%emt 0:01:00] (Sf6)} 52. Qa6 {[%eval 114,42] [%emt 0:02:13]} Qb8 {[%emt 0:01:00]} 53. Qa1 {[%eval 114,40] [%emt 0:00:22]} g5 {[%emt 0:00:27] (Se7)} 54. Be5 {[%eval 128,41] [%emt 0:01:07]} Qb4 {[%emt 0:00:14]} 55. Qa7+ {[%eval 125,41] [%emt 0:01:07]} Qe7 {[%emt 0:00:23]} 56. Qa4 {[%eval 124,44] [%emt 0:00:44]} Qb4 {[%emt 0:01:45]} 57. Qd7+ {[%eval 124,45] [%emt 0:00:01]} Qe7 {[%emt 0:00:45]} 58. Qc6 {[%eval 124,44] [%emt 0:00:35]} h4 {[%emt 0:00:53] (Db4)} 59. Qc2 {[%eval 109,44] [%emt 0:01:32]} Nf6 {[%emt 0:00:08]} 60. Qd2 {[%eval 109,45] [%emt 0:01:03]} Kg6 {[%emt 0:00:51] (Sd5)} 61. Qc3 {[%eval 105,43] [%emt 0:01:19]} Nd5 {[%emt 0:00:51]} 62. Qc8 {[%eval 105,45] [%emt 0:00:27]} Qf7 {[%emt 0:00:51] (Sf4)} 63. Qd8 {[%eval 105,41] [%emt 0:01:00]} Kf5 {[%emt 0:00:58]} 64. Bh8 {[%eval 105,43] [%emt 0:00:01]} e5 {[%emt 0:00:51] (Kg6)} 65. Qc8+ {[%eval 94,45] [%emt 0:01:36]} Qe6 {[%emt 0:00:45]} 66. Qc2+ {[%eval 94,46] [%emt 0:00:31]} e4 {[%emt 0:00:44]} 67. Bd4 {[%eval 95,47] [%emt 0:00:25]} Nf4 {[%emt 0:00:44] (Kg6)} 68. Qc5+ {[%eval 95,47] [%emt 0:01:16]} Kg6 {[%emt 0:00:08]} 69. Kh2 {[%eval 95,45] [%emt 0:00:48]} Qd5 {[%emt 0:00:41] (Sd5)} 70. Qb6+ {[%eval 95,44] [%emt 0:01:00]} Ne6 {[%emt 0:00:07]} 71. Bc3 {[%eval 95,46] [%emt 0:01:07]} Qd7 {[%emt 0:00:41] (Dc4)} 72. Be5 {[%eval 95,46] [%emt 0:01:14]} Kf5 {[%emt 0:00:40] (Dd5)} 73. Qa5 {[%eval 95,46] [%emt 0:00:59]} Nf4 {[%emt 0:00:52] (Kg6)} 74. Bb2+ {[%eval 95,42] [%emt 0:00:59]} Nd5 {[%emt 0:00:41] (Dd5)} 75. Kh1 {[%eval 96,42] [%emt 0:01:00]} Qd6 {[%emt 0:00:37] (Db7)} 76. Qb5 {[%eval 96,46] [%emt 0:00:57]} Qe6 {[%emt 0:00:36]} 77. Qb7 {[%eval 96,47] [%emt 0:00:34]} Nf6 {[%emt 0:00:17]} 78. Qb4 {[%eval 96,47] [%emt 0:00:53]} Kg6 {[%emt 0:00:11]} 79. Qd4 {[%eval 96,48] [%emt 0:00:45]} Nh5 {[%emt 0:00:07] (Kf5)} 80. Kh2 {[%eval 96,45] [%emt 0:00:52]} Nf6 {[%emt 0:00:36]} 81. Kg1 {[%eval 96,47] [%emt 0:00:32]} Qf5 {[%emt 0:00:35] (Kf5)} 82. Qb6 {[%eval 96,44] [%emt 0:00:53]} Kf7 {[%emt 0:00:33]} 83. Qc7+ {[%eval 96,46] [%emt 0:00:35]} Nd7 {[%emt 0:00:08]} 84. Qb7 {[%eval 96,48] [%emt 0:00:48]} Qe6 {[%emt 0:00:32]} 85. Bd4 {[%eval 96,48] [%emt 0:00:35]} Kg6 {[%emt 0:00:32]} 86. Qc8 {[%eval 96,48] [%emt 0:00:35]} Kf5 {[%emt 0:00:54]} 87. Be3 {[%eval 96,47] [%emt 0:00:13]} Qd5 {[%emt 0:00:30] (Kg6)} 88. Qd8 {[%eval 95,42] [%emt 0:00:55]} Nf6 {[%emt 0:00:30]} 89. Qb6 {[%eval 95,46] [%emt 0:00:22]} Ne8 {[%emt 0:00:28] (Dd1+)} 90. Bd4 {[%eval 95,43] [%emt 0:00:52]} Nd6 {[%emt 0:00:08]} 91. Bc3 {[%eval 95,45] [%emt 0:00:47]} Qd1+ {[%emt 0:00:30] (Se8)} 92. Kh2 {[%eval 96,43] [%emt 0:00:52]} Qd5 {[%emt 0:00:08]} 93. Qd8 {[%eval 96,45] [%emt 0:00:58]} Qe6 {[%emt 0:00:27]} 94. Qa5+ {[%eval 96,45] [%emt 0:00:38]} Kg6 {[%emt 0:00:28]} 95. Qb6 {[%eval 96,47] [%emt 0:00:22]} Kf5 {[%emt 0:00:08]} 96. Kg1 {[%eval 96,46] [%emt 0:00:57]} Qc4 {[%emt 0:00:31] (Sf7)} 97. Bb2 {[%eval 96,41] [%emt 0:01:05]} Qd5 {[%emt 0:00:32] (Ke6)} 98. Qd8 {[%eval 96,43] [%emt 0:00:50]} Qe6 {[%emt 0:00:25] (Ke6)} 99. Qa5+ {[%eval 121,44] [%emt 0:01:01]} Kg6 {[%emt 0:00:07]} 100. Qb6 {[%eval 121,46] [%emt 0:00:44]} Kf5 {[%emt 0:00:07]} 101. Qd4 {[%eval 121,46] [%emt 0:00:54]} Nf7 {[%emt 0:01:31]} 102. f3 {[%eval 121,46] [%emt 0:00:01]} Nd6 {[%emt 0:00:14]} 103. Bc3 {[%eval 121,46] [%emt 0:00:49]} Kg6 {[%emt 0:00:22]} 104. Qg7+ {[%eval 121,45] [%emt 0:00:40]} Kf5 {[%emt 0:00:21]} 105. Bd2 {[%eval 121,46] [%emt 0:00:41]} e3 {[%emt 0:00:23]} 106. Bb4 {[%eval 121,46] [%emt 0:00:39]} Nf7 {[%emt 0:00:25]} 107. Qc3 {[%eval 121,45] [%emt 0:00:36]} Nh6 {[%emt 0:00:08]} 108. Bc5 {[%eval 121,48] [%emt 0:00:46]} e2 {[%emt 0:00:08]} 109. Kf2 {[%eval 121,49] [%emt 0:00:53]} e1=Q+ {[%emt 0:00:36]} 110. Qxe1 {[%eval 1,0] [%emt 0:00:01]} Qxe1+ {[%emt 0:00:16]} 111. Kxe1 {[%eval 1,0] [%emt 0:00:01]} Ng8 {[%emt 0:00:11]} 112. Kf2 {[%eval 121,61] [%emt 0:00:53]} Nf6 {[%emt 0:00:08]} 113. Be3 {[%eval 121,66] [%emt 0:00:52]} Nd5 {[%emt 0:00:19]} 114. Bd2 {[%eval 121,68] [%emt 0:00:39]} Kg6 {[%emt 0:00:08] (Sf4)} 115. Bc1 {[%eval 121,68] [%emt 0:00:57]} Kf5 {[%emt 0:00:08]} 116. Ba3 {[%eval 121,68] [%emt 0:00:52]} Ke5 {[%emt 0:00:19] (Sf4)} 117. Bb2+ {[%eval 121,65] [%emt 0:00:56]} Kf4 {[%emt 0:00:07] (Ke6)} 118. Ba1 {[%eval 121,69] [%emt 0:00:59]} Nb4 {[%emt 0:00:28] (Sc7)} 119. Bc3 {[%eval 121,67] [%emt 0:00:59]} Nd5 {[%emt 0:00:07]} 120. Ba5 {[%eval 121,71] [%emt 0:00:44]} Kf5 {[%emt 0:00:19]} 121. Bd8 {[%eval 121,72] [%emt 0:00:38]} Kf4 {[%emt 0:00:17]} 122. Kg1 {[%eval 121,73] [%emt 0:00:34]} Kf5 {[%emt 0:00:13] (Sb4)} 123. Kf1 {[%eval 121,68] [%emt 0:00:55]} Kf4 {[%emt 0:00:23] (Sf4)} 124. Ba5 {[%eval 121,69] [%emt 0:00:50]} Ne3+ {[%emt 0:00:24] (Kg3)} 125. Kg1 {[%eval 121,68] [%emt 0:00:57]} Nd5 {[%emt 0:00:17]} 126. Bd2+ {[%eval 121,70] [%emt 0:00:39]} Kf5 {[%emt 0:00:07]} 127. Bc1 {[%eval 121,71] [%emt 0:00:48]} Nb4 {[%emt 0:00:18] (Sf4)} 128. Kh2 {[%eval 121,65] [%emt 0:00:56]} Nd5 {[%emt 0:00:18]} 129. Bb2 {[%eval 121,72] [%emt 0:00:36]} Nf4 {[%emt 0:00:07]} 130. Kg1 {[%eval 121,73] [%emt 0:00:47]} Nd3 {[%emt 0:00:23] (Ke6)} 131. Bc3 {[%eval 121,71] [%emt 0:00:54]} Kf4 {[%emt 0:00:16] (Sf4)} 132. Bd2+ {[%eval 121,69] [%emt 0:00:54]} Kf5 {[%emt 0:00:07]} 133. Be3 {[%eval 121,71] [%emt 0:00:45]} Ne5 {[%emt 0:00:08] (Sb4)} 134. Kf2 {[%eval 121,68] [%emt 0:00:48]} Nd3+ {[%emt 0:00:16]} 135. Kf1 {[%eval 121,71] [%emt 0:00:29]} Ne5 {[%emt 0:00:16] (Sf4)} 136. Ke2 {[%eval 121,64] [%emt 0:00:53]} Nc4 {[%emt 0:00:08] (Sf7)} 137. Ba7 {[%eval 121,63] [%emt 0:00:52]} Ne5 {[%emt 0:00:15] (Kf4)} 138. Ke3 {[%eval 121,64] [%emt 0:00:46]} Nc4+ {[%emt 0:00:23] (Sg6)} 139. Kf2 {[%eval 121,61] [%emt 0:00:51]} Ne5 {[%emt 0:00:20] (Ke6)} 140. Bb8 {[%eval 121,65] [%emt 0:00:51]} Nd3+ {[%emt 0:00:23] (Sc6)} 141. Ke2 {[%eval 121,66] [%emt 0:00:51]} Nb4 {[%emt 0:00:14] (Se5)} 142. Ba7 {[%eval 121,63] [%emt 0:00:50]} Nd5 {[%emt 0:00:15] (Kf4)} 143. Kf2 {[%eval 121,71] [%emt 0:00:49]} Ke5 {[%emt 0:00:08] (Kf4)} 144. Bb8+ {[%eval 121,66] [%emt 0:00:44]} Kf5 {[%emt 0:00:13] (Ke6)} 145. Bd6 {[%eval 121,65] [%emt 0:00:49]} Nf4 {[%emt 0:00:08] (Ke6)} 146. Bc7 {[%eval 121,67] [%emt 0:00:48]} Nd5 {[%emt 0:00:14] (Sd3+)} 147. Bb8 {[%eval 121,69] [%emt 0:00:45]} Nb4 {[%emt 0:00:12] (Ke6)} 148. Kg1 {[%eval 121,68] [%emt 0:00:46]} Nd3 {[%emt 0:00:12]} 149. Bc7 {[%eval 121,71] [%emt 0:00:34]} Nb4 {[%emt 0:00:13] (Sf4)} 150. Bd6 {[%eval 121,67] [%emt 0:00:43]} Nd3 {[%emt 0:00:14]} 151. Kf1 {[%eval 121,69] [%emt 0:00:31]} Ke6 {[%emt 0:00:14]} 152. Ba3 {[%eval 121,69] [%emt 0:00:32]} Ke5 {[%emt 0:00:51] (Sf4)} 153. Be7 {[%eval 121,67] [%emt 0:00:46]} Kf5 {[%emt 0:00:08]} 154. Kg1 {[%eval 121,67] [%emt 0:00:33]} Kf4 {[%emt 0:00:14] (Sf4)} 155. Bf6 {[%eval 121,62] [%emt 0:00:46]} Ne1 {[%emt 0:00:12] (Se5)} 156. Kf1 {[%eval 121,67] [%emt 0:00:43]} Nxf3 {[%emt 0:00:21] (Sc2)} 157. gxf3 {[%eval 121,59] [%emt 0:00:46]} Kxf3 {[%emt 0:00:08]} 158. Bxg5 {[%eval 121,64] [%emt 0:00:37]} Kg3 {[%emt 0:00:08]} 159. Ke2 {[%eval 121,63] [%emt 0:00:35]} Kxh3 {[%emt 0:00:07]} 160. Kf3 {[%eval 121,63] [%emt 0:00:37]} Kh2 {[%emt 0:00:06]} 161. Bxh4 {[%eval 110,90] [%emt 0:00:38]} 1/2-1/2

[/pgn]

Peter
Xann
Posts: 148
Joined: Sat Jan 22, 2011 7:14 pm
Location: Lille, France
Full name: Fabien Letouzey

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Xann »

Hi Peter!
Peter Berger wrote: Fri Dec 19, 2025 3:21 pm 1. The README is misleading - Senpai ponders just fine.
At first I thought that wasn't possible. Then I wondered, maybe the GUI does something like 'go infinite' during the opponent's turn; that would help the engine fill the TT. There is a risk, however, if evaluation is asymmetric (engine vs opponent); that's not an issue with Senpai though.

Since you use Crafty, I assumed Winboard. I tried XBoard here, and Senpai 3 doesn't ponder, as expected; only the opponent does. Which GUI did you use?

2. Time management is too conservative. It's one thing to save some time for the endgame, but in both games following Senpai effectively used only half of its time in a very long game.
Thanks, that's a helpful observation. Perhaps you are talking about the remaining clock time? If you count increments as well, this could be well above half. I've always allocated a fixed portion of the remaining time (+ increment), and only tested in fast games. There is the possibility that 'fixed' doesn't scale to longer games indeed; food for thought ...
3. Senpai has a grinding style, reminds me of Fruit. An insider joke: a "sceptical engine". I like. I think I understand what you wrote about eval. But it looks like it can't score what it don't know at all, like h-pawn with bishop with wrong colour in game 2.
Fruit was super materialistic, to the point it's funny; is that what you are referring to? Senpai is less so, especially this version IMO. Perhaps you haven't seen a representative sample yet; it plays some positional sacrifices.

Yes, I have to encode drawish endgames manually, and focused on the most common ones. During development, I don't use the stalemate rule (which I consider a bug). So I postponed draws that depend on this rule for later, as they are erratic.

Thanks again for your feedback!

Fabien.
Peter Berger
Posts: 766
Joined: Thu Mar 09, 2006 2:56 pm

Re: Senpai 3.0 by Fabien LETOUZEY is available!

Post by Peter Berger »

Salut Fabien,
the games were run similar to an ICGA tournament, only without an extra wooden board - so each engine had its own computer, the game was operated manually.
Senpai was setup as an UCI engine in the Fritz 17 GUI.
In the PGN you can see the game from Senpai’s point of view: time used for each move, the expected move and the depth and eval. As you can see, Senpai behaves exactly as you’d expect from an engine that ponders. This includes sometimes moving instantly after the opponent makes the expected move.

[Event "Lang 90min+30sek"]
[Site "Berlin"]
[Date "2025.12.19"]
[Round "?"]
[White "Crafty 25.6"]
[Black "Senpai 3.0.1"]
[Result "0-1"]
[ECO "C41"]
[PlyCount "172"]
[TimeControl "5400+30"]

{4096MB, DESKTOP-8OCGGEO} 1. e4 {[%emt 0:00:00]} e5 {[%eval 25,29] [%emt 0:01:21]} 2. Nf3 {[%emt 0:00:06]} d6 {[%eval 24,30] [%emt 0:01:50]} 3. d4 {[%emt 0:00:06]} exd4 {[%eval 24,30] [%emt 0:02:08]} 4. Nxd4 {[%emt 0:00:07]} Be7 {[%eval 20,32] [%emt 0:01:23]} 5. Nc3 {[%emt 0:02:23]} Nf6 {[%eval 26,31] [%emt 0:00:01]} 6. Bf4 {[%emt 0:00:06] (Le2)} O-O {[%eval 27,31] [%emt 0:01:25]} 7. Qd2 {[%emt 0:00:06] (Le2)} Nc6 {[%eval 34,30] [%emt 0:03:11]} 8. O-O-O {[%emt 0:00:07]} Nxd4 {[%eval 42,29] [%emt 0:01:25]} 9. Qxd4 {[%emt 0:00:08]} Be6 {[%eval 40,30] [%emt 0:01:03]} 10. f3 {[%emt 0:00:06] (Kb1)} Re8 {[%eval 45,28] [%emt 0:01:14]} 11. Bc4 {[%emt 0:02:18] (Kb1)} Nh5 {[%eval 48,33] [%emt 0:02:49]} 12. Be3 {[%emt 0:00:06] (Ld2)} Bf6 {[%eval 43,33] [%emt 0:04:25]} 13. Qd3 {[%emt 0:00:07]} Bxc4 {[%eval 36,31] [%emt 0:01:48]} 14. Qxc4 {[%emt 0:00:19]} Be5 {[%eval 48,33] [%emt 0:01:11]} 15. Kb1 {[%emt 0:05:52]} Nf6 {[%eval 44,32] [%emt 0:00:01]} 16. g4 {[%emt 0:04:54] (Db3)} c6 {[%eval 36,31] [%emt 0:01:53]} 17. g5 {[%emt 0:06:02]} Nh5 {[%eval 35,33] [%emt 0:00:01]} 18. Ne2 {[%emt 0:02:58]} Qe7 {[%eval 47,34] [%emt 0:00:01]} 19. Rd3 {[%emt 0:04:47] (Sg3)} g6 {[%eval 35,32] [%emt 0:01:17]} 20. h4 {[%emt 0:06:10] (Db4)} Rac8 {[%eval 43,32] [%emt 0:03:05]} 21. Qa4 {[%emt 0:03:55] (Thd1)} a6 {[%eval 40,32] [%emt 0:03:59]} 22. Rhd1 {[%emt 0:00:36]} Rb8 {[%eval 49,33] [%emt 0:02:52]} 23. Qa3 {[%emt 0:03:56] (Db4)} Qe6 {[%eval 54,33] [%emt 0:04:22]} 24. Bc1 {[%emt 0:02:09] (Db3)} b5 {[%eval 36,32] [%emt 0:01:12]} 25. f4 {[%emt 0:03:11] (Db3)} Bg7 {[%eval 28,36] [%emt 0:04:16]} 26. Re3 {[%emt 0:00:08]} b4 {[%eval 32,35] [%emt 0:00:54]} 27. Qd3 {[%emt 0:01:35]} Rbd8 {[%eval 25,34] [%emt 0:00:01]} 28. f5 {[%emt 0:01:02]} Qc8 {[%eval 25,32] [%emt 0:00:28]} 29. f6 {[%emt 0:00:20]} Bf8 {[%eval 23,34] [%emt 0:01:10]} 30. Qd2 {[%emt 0:00:07] (Dc4)} d5 {[%eval -21,40] [%emt 0:04:22]} 31. exd5 {[%emt 0:00:52]} Rxd5 {[%eval -35,39] [%emt 0:00:01]} 32. Qe1 {[%emt 0:00:43] (Td3)} Rxe3 {[%eval -2,37] [%emt 0:03:25]} 33. Bxe3 {[%emt 0:00:06]} Re5 {[%eval -1,37] [%emt 0:01:15]} 34. Qf2 {[%emt 0:00:09]} Qh3 {[%eval -31,38] [%emt 0:01:11]} 35. Bc1 {[%emt 0:00:07]} Qg4 {[%eval -35,40] [%emt 0:02:57]} 36. Rd2 {[%emt 0:00:06]} c5 {[%eval -42,41] [%emt 0:00:53]} 37. Ng1 {[%emt 0:00:06]} Nf4 {[%eval -50,40] [%emt 0:01:10]} 38. Nf3 {[%emt 0:01:47] R} Rf5 {[%eval -69,41] [%emt 0:01:14]} 39. Qe3 {[%emt 0:01:52] (Sh2)} Nd5 {[%eval -72,40] [%emt 0:01:12]} 40. Qd3 {[%emt 0:00:06] (De2)} h5 {[%eval -145,38] [%emt 0:02:50]} 41. Rf2 {[%emt 0:00:47] (De2)} c4 {[%eval -210,42] [%emt 0:03:28]} 42. Qe2 {[%emt 0:00:17]} Qg3 {[%eval -215,43] [%emt 0:03:41]} 43. Rf1 {[%emt 0:01:55]} c3 {[%eval -225,40] [%emt 0:00:01]} 44. Rd1 {[%emt 0:00:55] (b3)} cxb2 {[%eval -225,42] [%emt 0:00:57]} 45. Bxb2 {[%emt 0:00:07]} Rxf3 {[%eval -225,44] [%emt 0:00:55]} 46. Rxd5 {[%emt 0:00:06]} Re3 {[%eval -225,41] [%emt 0:00:55]} 47. Qd2 {[%emt 0:00:07]} Qxh4 {[%eval -239,39] [%emt 0:02:10]} 48. Bc1 {[%emt 0:00:07]} Re8 {[%eval -241,40] [%emt 0:00:35]} 49. Qd3 {[%emt 0:00:06] (Kb2)} a5 {[%eval -235,42] [%emt 0:02:42]} 50. Rd7 {[%emt 0:00:49]} Qe4 {[%eval -235,43] [%emt 0:00:07]} 51. Qxe4 {[%emt 0:00:48] (Db3)} Rxe4 {[%eval -273,43] [%emt 0:00:55]} 52. Rd3 {[%emt 0:00:07]} h4 {[%eval -273,45] [%emt 0:00:38]} 53. c3 {[%emt 0:00:06]} Rg4 {[%eval -303,42] [%emt 0:01:33]} 54. cxb4 {[%emt 0:00:34]} Bxb4 {[%eval -348,41] [%emt 0:01:25]} 55. Rh3 {[%emt 0:00:53]} Bd6 {[%eval -348,46] [%emt 0:00:41]} 56. Rd3 {[%emt 0:00:28] (Th1)} Bc7 {[%eval -356,42] [%emt 0:00:46]} 57. Re3 {[%emt 0:00:11]} Bg3 {[%eval -388,44] [%emt 0:00:41]} 58. Re8+ {[%emt 0:00:32]} Kh7 {[%eval 1,0] [%emt 0:00:01]} 59. Re7 {[%emt 0:00:24]} Rb4+ {[%eval -451,43] [%emt 0:00:44]} 60. Kc2 {[%emt 0:00:06]} Rc4+ {[%eval -466,46] [%emt 0:00:45]} 61. Kd1 {[%emt 0:00:59]} Rc7 {[%eval -480,47] [%emt 0:00:01]} 62. Rxc7 {[%emt 0:00:32]} Bxc7 {[%eval -648,49] [%emt 0:00:14]} 63. Ke2 {[%emt 0:00:12]} h3 {[%eval -768,53] [%emt 0:02:17]} 64. Kf3 {[%emt 0:00:06]} Kg8 {[%eval -843,57] [%emt 0:00:45]} 65. Be3 {[%emt 0:01:08] (La3)} Kf8 {[%eval -933,54] [%emt 0:00:50]} 66. Bc5+ {[%emt 0:01:48] (Lc1)} Ke8 {[%eval -1071,51] [%emt 0:00:50]} 67. Be3 {[%emt 0:01:24] (Ld4)} a4 {[%eval -1340,55] [%emt 0:01:27]} 68. Kf2 {[%emt 0:00:28]} Kd7 {[%eval -1370,56] [%emt 0:00:20]} 69. a3 {[%emt 0:00:53] (Kf3)} Bd6 {[%eval -2080,51] [%emt 0:02:26]} 70. Bd2 {[%emt 0:00:47]} Bxa3 {[%eval -32729,37] [%emt 0:02:00]} 71. Kf3 {[%emt 0:00:06]} Ke6 {[%eval -32731,36] [%emt 0:00:38]} 72. Be3 {[%emt 0:00:19] (Lc3)} Bd6 {[%eval -32733,36] [%emt 0:00:40]} 73. Bc1 {[%emt 0:00:07]} Kf5 {[%eval -32737,36] [%emt 0:00:37]} 74. Kf2 {[%emt 0:00:08] (Lb2)} Kg4 {[%eval -32741,38] [%emt 0:00:40]} 75. Kg1 {[%emt 0:00:18]} a3 {[%eval -32743,41] [%emt 0:00:24]} 76. Bxa3 {[%emt 0:00:06]} Bxa3 {[%eval -32745,46] [%emt 0:00:33]} 77. Kh1 {[%emt 0:00:07]} Bc5 {[%eval -32747,63] [%emt 0:00:32]} 78. Kh2 {[%emt 0:00:07]} Be3 {[%eval -32749,99] [%emt 0:00:10]} 79. Kh1 {[%emt 0:00:07]} Kxg5 {[%eval -32751,99] [%emt 0:00:00]} 80. Kh2 {[%emt 0:00:05]} Kh4 {[%eval -32753,99] [%emt 0:00:00]} 81. Kh1 {[%emt 0:00:05]} g5 {[%eval -32755,99] [%emt 0:00:00]} 82. Kh2 {[%emt 0:00:05]} g4 {[%eval -32757,99] [%emt 0:00:00]} 83. Kh1 {[%emt 0:00:05]} Bd4 {[%eval -32759,99] [%emt 0:00:00]} 84. Kh2 {[%emt 0:00:05]} g3+ {[%eval -32761,99] [%emt 0:00:00]} 85. Kh1 {[%emt 0:00:05]} g2+ {[%eval -32763,99] [%emt 0:00:00]} 86. Kh2 {[%emt 0:00:05]} g1=Q# {[%eval -32765,99] [%emt 0:00:00]} 0-1

[Event "Lang 90min+30sek"]
[Site "Berlin"]
[Date "2025.12.19"]
[Round "?"]
[White "Senpai 3.0.1"]
[Black "Crafty 25.6"]
[Result "1/2-1/2"]
[ECO "B22"]
[PlyCount "321"]
[TimeControl "5400+30"]

{4096MB, DESKTOP-8OCGGEO} 1. e4 {[%eval 24,30] [%emt 0:01:48]} c5 {[%emt 0:00:06]} 2. c3 {[%eval 14,28] [%emt 0:01:19]} Nf6 {[%emt 0:00:06] (e6)} 3. e5 {[%eval 32,30] [%emt 0:01:15]} Nd5 {[%emt 0:00:05]} 4. d4 {[%eval 28,30] [%emt 0:01:32]} cxd4 {[%emt 0:00:06] (d6)} 5. Nf3 {[%eval 33,30] [%emt 0:01:43]} Nc6 {[%emt 0:00:06]} 6. cxd4 {[%eval 34,30] [%emt 0:02:04]} d6 {[%emt 0:00:07]} 7. Bc4 {[%eval 29,32] [%emt 0:01:47]} Nb6 {[%emt 0:00:06] (dxe5)} 8. Bb5 {[%eval 22,33] [%emt 0:02:35]} dxe5 {[%emt 0:00:07]} 9. Nxe5 {[%eval 22,33] [%emt 0:01:16]} Bd7 {[%emt 0:00:09]} 10. Nxd7 {[%eval 26,33] [%emt 0:00:55]} Qxd7 {[%emt 0:00:06]} 11. Nc3 {[%eval 21,33] [%emt 0:01:56]} e6 {[%emt 0:00:07]} 12. O-O {[%eval 16,32] [%emt 0:00:58]} Be7 {[%emt 0:00:06] (Td8)} 13. Qg4 {[%eval 48,32] [%emt 0:01:07]} O-O {[%emt 0:00:07]} 14. Bxc6 {[%eval 47,34] [%emt 0:01:36]} bxc6 {[%emt 0:00:07]} 15. Bh6 {[%eval 41,37] [%emt 0:01:16]} Bf6 {[%emt 0:00:06]} 16. Rfd1 {[%eval 44,35] [%emt 0:01:50]} Rfd8 {[%emt 0:00:08] (Kh8)} 17. Ne4 {[%eval 50,34] [%emt 0:02:03]} Qe7 {[%emt 0:00:06]} 18. Rac1 {[%eval 47,34] [%emt 0:01:35]} Rac8 {[%emt 0:00:41]} 19. a3 {[%eval 48,33] [%emt 0:00:32]} Kh8 {[%emt 0:02:26]} 20. Be3 {[%eval 43,35] [%emt 0:00:01]} Nd5 {[%emt 0:02:17]} 21. b4 {[%eval 43,35] [%emt 0:00:01]} Qe8 {[%emt 0:02:05]} 22. Nxf6 {[%eval 43,37] [%emt 0:00:01]} Nxf6 {[%emt 0:02:09]} 23. Qf3 {[%eval 43,38] [%emt 0:00:01]} Rd5 {[%emt 0:02:05] (Sd5)} 24. Rc5 {[%eval 42,33] [%emt 0:01:25]} Nd7 {[%emt 0:11:24] (Sg8)} 25. Rc3 {[%eval 36,35] [%emt 0:01:48]} Nf6 {[%emt 0:01:46]} 26. Rdc1 {[%eval 36,36] [%emt 0:00:05]} a5 {[%emt 0:02:10] (Sg8)} 27. bxa5 {[%eval 46,33] [%emt 0:01:51]} Rxa5 {[%emt 0:00:12] (Tf5)} 28. Rxc6 {[%eval 59,36] [%emt 0:01:32]} Rca8 {[%emt 0:01:38] (Txc6)} 29. Rc7 {[%eval 53,36] [%emt 0:01:07]} Rxa3 {[%emt 0:00:19]} 30. h3 {[%eval 35,42] [%emt 0:01:47]} Rb8 {[%emt 0:02:52] (Ta1)} 31. d5 {[%eval 33,43] [%emt 0:03:53]} Nxd5 {[%emt 0:00:07]} 32. Rxf7 {[%eval 29,45] [%emt 0:01:16]} h6 {[%emt 0:00:06] (Sxe3)} 33. Qg3 {[%eval 52,42] [%emt 0:02:20]} Qxf7 {[%emt 0:01:28]} 34. Qxb8+ {[%eval 52,42] [%emt 0:00:10]} Kh7 {[%emt 0:01:08]} 35. Bd4 {[%eval 45,37] [%emt 0:00:18]} Rd3 {[%emt 0:01:23] (Ta4)} 36. Be5 {[%eval 44,38] [%emt 0:01:38]} Rd2 {[%emt 0:01:21]} 37. Bg3 {[%eval 38,40] [%emt 0:00:01]} Qh5 {[%emt 0:01:20] (Df5) R} 38. Kh2 {[%eval 53,43] [%emt 0:01:38]} Nf6 {[%emt 0:00:07]} 39. Re1 {[%eval 53,44] [%emt 0:01:29]} Re2 {[%emt 0:00:11] (Td1)} 40. Qb1+ {[%eval 53,40] [%emt 0:01:36]} Kg8 {[%emt 0:00:07]} 41. Qa1 {[%eval 40,43] [%emt 0:01:01]} Rxe1 {[%emt 0:01:16]} 42. Qxe1 {[%eval 40,46] [%emt 0:00:16]} Qf5 {[%emt 0:00:52]} 43. Be5 {[%eval 40,46] [%emt 0:00:41]} Nd7 {[%emt 0:01:13] (Se4)} 44. Bb2 {[%eval 53,44] [%emt 0:01:15]} Kf7 {[%emt 0:01:11] (Sf6)} 45. Qc3 {[%eval 53,46] [%emt 0:01:18]} Qf4+ {[%emt 0:01:09] (Sf6)} 46. Kg1 {[%eval 53,48] [%emt 0:01:23]} Nf6 {[%emt 0:00:08]} 47. Qc8 {[%eval 53,48] [%emt 0:01:22]} Qd6 {[%emt 0:01:08] (De4)} 48. Qc1 {[%eval 53,46] [%emt 0:01:24]} Nd5 {[%emt 0:01:11] (Dd5)} 49. Qd1 {[%eval 53,47] [%emt 0:01:27]} Qf4 {[%emt 0:01:04] (Db8)} 50. Qh5+ {[%eval 78,42] [%emt 0:01:27]} g6 {[%emt 0:01:04]} 51. Qe2 {[%eval 64,47] [%emt 0:01:29]} h5 {[%emt 0:01:00] (Sf6)} 52. Qa6 {[%eval 114,42] [%emt 0:02:13]} Qb8 {[%emt 0:01:00]} 53. Qa1 {[%eval 114,40] [%emt 0:00:22]} g5 {[%emt 0:00:27] (Se7)} 54. Be5 {[%eval 128,41] [%emt 0:01:07]} Qb4 {[%emt 0:00:14]} 55. Qa7+ {[%eval 125,41] [%emt 0:01:07]} Qe7 {[%emt 0:00:23]} 56. Qa4 {[%eval 124,44] [%emt 0:00:44]} Qb4 {[%emt 0:01:45]} 57. Qd7+ {[%eval 124,45] [%emt 0:00:01]} Qe7 {[%emt 0:00:45]} 58. Qc6 {[%eval 124,44] [%emt 0:00:35]} h4 {[%emt 0:00:53] (Db4)} 59. Qc2 {[%eval 109,44] [%emt 0:01:32]} Nf6 {[%emt 0:00:08]} 60. Qd2 {[%eval 109,45] [%emt 0:01:03]} Kg6 {[%emt 0:00:51] (Sd5)} 61. Qc3 {[%eval 105,43] [%emt 0:01:19]} Nd5 {[%emt 0:00:51]} 62. Qc8 {[%eval 105,45] [%emt 0:00:27]} Qf7 {[%emt 0:00:51] (Sf4)} 63. Qd8 {[%eval 105,41] [%emt 0:01:00]} Kf5 {[%emt 0:00:58]} 64. Bh8 {[%eval 105,43] [%emt 0:00:01]} e5 {[%emt 0:00:51] (Kg6)} 65. Qc8+ {[%eval 94,45] [%emt 0:01:36]} Qe6 {[%emt 0:00:45]} 66. Qc2+ {[%eval 94,46] [%emt 0:00:31]} e4 {[%emt 0:00:44]} 67. Bd4 {[%eval 95,47] [%emt 0:00:25]} Nf4 {[%emt 0:00:44] (Kg6)} 68. Qc5+ {[%eval 95,47] [%emt 0:01:16]} Kg6 {[%emt 0:00:08]} 69. Kh2 {[%eval 95,45] [%emt 0:00:48]} Qd5 {[%emt 0:00:41] (Sd5)} 70. Qb6+ {[%eval 95,44] [%emt 0:01:00]} Ne6 {[%emt 0:00:07]} 71. Bc3 {[%eval 95,46] [%emt 0:01:07]} Qd7 {[%emt 0:00:41] (Dc4)} 72. Be5 {[%eval 95,46] [%emt 0:01:14]} Kf5 {[%emt 0:00:40] (Dd5)} 73. Qa5 {[%eval 95,46] [%emt 0:00:59]} Nf4 {[%emt 0:00:52] (Kg6)} 74. Bb2+ {[%eval 95,42] [%emt 0:00:59]} Nd5 {[%emt 0:00:41] (Dd5)} 75. Kh1 {[%eval 96,42] [%emt 0:01:00]} Qd6 {[%emt 0:00:37] (Db7)} 76. Qb5 {[%eval 96,46] [%emt 0:00:57]} Qe6 {[%emt 0:00:36]} 77. Qb7 {[%eval 96,47] [%emt 0:00:34]} Nf6 {[%emt 0:00:17]} 78. Qb4 {[%eval 96,47] [%emt 0:00:53]} Kg6 {[%emt 0:00:11]} 79. Qd4 {[%eval 96,48] [%emt 0:00:45]} Nh5 {[%emt 0:00:07] (Kf5)} 80. Kh2 {[%eval 96,45] [%emt 0:00:52]} Nf6 {[%emt 0:00:36]} 81. Kg1 {[%eval 96,47] [%emt 0:00:32]} Qf5 {[%emt 0:00:35] (Kf5)} 82. Qb6 {[%eval 96,44] [%emt 0:00:53]} Kf7 {[%emt 0:00:33]} 83. Qc7+ {[%eval 96,46] [%emt 0:00:35]} Nd7 {[%emt 0:00:08]} 84. Qb7 {[%eval 96,48] [%emt 0:00:48]} Qe6 {[%emt 0:00:32]} 85. Bd4 {[%eval 96,48] [%emt 0:00:35]} Kg6 {[%emt 0:00:32]} 86. Qc8 {[%eval 96,48] [%emt 0:00:35]} Kf5 {[%emt 0:00:54]} 87. Be3 {[%eval 96,47] [%emt 0:00:13]} Qd5 {[%emt 0:00:30] (Kg6)} 88. Qd8 {[%eval 95,42] [%emt 0:00:55]} Nf6 {[%emt 0:00:30]} 89. Qb6 {[%eval 95,46] [%emt 0:00:22]} Ne8 {[%emt 0:00:28] (Dd1+)} 90. Bd4 {[%eval 95,43] [%emt 0:00:52]} Nd6 {[%emt 0:00:08]} 91. Bc3 {[%eval 95,45] [%emt 0:00:47]} Qd1+ {[%emt 0:00:30] (Se8)} 92. Kh2 {[%eval 96,43] [%emt 0:00:52]} Qd5 {[%emt 0:00:08]} 93. Qd8 {[%eval 96,45] [%emt 0:00:58]} Qe6 {[%emt 0:00:27]} 94. Qa5+ {[%eval 96,45] [%emt 0:00:38]} Kg6 {[%emt 0:00:28]} 95. Qb6 {[%eval 96,47] [%emt 0:00:22]} Kf5 {[%emt 0:00:08]} 96. Kg1 {[%eval 96,46] [%emt 0:00:57]} Qc4 {[%emt 0:00:31] (Sf7)} 97. Bb2 {[%eval 96,41] [%emt 0:01:05]} Qd5 {[%emt 0:00:32] (Ke6)} 98. Qd8 {[%eval 96,43] [%emt 0:00:50]} Qe6 {[%emt 0:00:25] (Ke6)} 99. Qa5+ {[%eval 121,44] [%emt 0:01:01]} Kg6 {[%emt 0:00:07]} 100. Qb6 {[%eval 121,46] [%emt 0:00:44]} Kf5 {[%emt 0:00:07]} 101. Qd4 {[%eval 121,46] [%emt 0:00:54]} Nf7 {[%emt 0:01:31]} 102. f3 {[%eval 121,46] [%emt 0:00:01]} Nd6 {[%emt 0:00:14]} 103. Bc3 {[%eval 121,46] [%emt 0:00:49]} Kg6 {[%emt 0:00:22]} 104. Qg7+ {[%eval 121,45] [%emt 0:00:40]} Kf5 {[%emt 0:00:21]} 105. Bd2 {[%eval 121,46] [%emt 0:00:41]} e3 {[%emt 0:00:23]} 106. Bb4 {[%eval 121,46] [%emt 0:00:39]} Nf7 {[%emt 0:00:25]} 107. Qc3 {[%eval 121,45] [%emt 0:00:36]} Nh6 {[%emt 0:00:08]} 108. Bc5 {[%eval 121,48] [%emt 0:00:46]} e2 {[%emt 0:00:08]} 109. Kf2 {[%eval 121,49] [%emt 0:00:53]} e1=Q+ {[%emt 0:00:36]} 110. Qxe1 {[%eval 1,0] [%emt 0:00:01]} Qxe1+ {[%emt 0:00:16]} 111. Kxe1 {[%eval 1,0] [%emt 0:00:01]} Ng8 {[%emt 0:00:11]} 112. Kf2 {[%eval 121,61] [%emt 0:00:53]} Nf6 {[%emt 0:00:08]} 113. Be3 {[%eval 121,66] [%emt 0:00:52]} Nd5 {[%emt 0:00:19]} 114. Bd2 {[%eval 121,68] [%emt 0:00:39]} Kg6 {[%emt 0:00:08] (Sf4)} 115. Bc1 {[%eval 121,68] [%emt 0:00:57]} Kf5 {[%emt 0:00:08]} 116. Ba3 {[%eval 121,68] [%emt 0:00:52]} Ke5 {[%emt 0:00:19] (Sf4)} 117. Bb2+ {[%eval 121,65] [%emt 0:00:56]} Kf4 {[%emt 0:00:07] (Ke6)} 118. Ba1 {[%eval 121,69] [%emt 0:00:59]} Nb4 {[%emt 0:00:28] (Sc7)} 119. Bc3 {[%eval 121,67] [%emt 0:00:59]} Nd5 {[%emt 0:00:07]} 120. Ba5 {[%eval 121,71] [%emt 0:00:44]} Kf5 {[%emt 0:00:19]} 121. Bd8 {[%eval 121,72] [%emt 0:00:38]} Kf4 {[%emt 0:00:17]} 122. Kg1 {[%eval 121,73] [%emt 0:00:34]} Kf5 {[%emt 0:00:13] (Sb4)} 123. Kf1 {[%eval 121,68] [%emt 0:00:55]} Kf4 {[%emt 0:00:23] (Sf4)} 124. Ba5 {[%eval 121,69] [%emt 0:00:50]} Ne3+ {[%emt 0:00:24] (Kg3)} 125. Kg1 {[%eval 121,68] [%emt 0:00:57]} Nd5 {[%emt 0:00:17]} 126. Bd2+ {[%eval 121,70] [%emt 0:00:39]} Kf5 {[%emt 0:00:07]} 127. Bc1 {[%eval 121,71] [%emt 0:00:48]} Nb4 {[%emt 0:00:18] (Sf4)} 128. Kh2 {[%eval 121,65] [%emt 0:00:56]} Nd5 {[%emt 0:00:18]} 129. Bb2 {[%eval 121,72] [%emt 0:00:36]} Nf4 {[%emt 0:00:07]} 130. Kg1 {[%eval 121,73] [%emt 0:00:47]} Nd3 {[%emt 0:00:23] (Ke6)} 131. Bc3 {[%eval 121,71] [%emt 0:00:54]} Kf4 {[%emt 0:00:16] (Sf4)} 132. Bd2+ {[%eval 121,69] [%emt 0:00:54]} Kf5 {[%emt 0:00:07]} 133. Be3 {[%eval 121,71] [%emt 0:00:45]} Ne5 {[%emt 0:00:08] (Sb4)} 134. Kf2 {[%eval 121,68] [%emt 0:00:48]} Nd3+ {[%emt 0:00:16]} 135. Kf1 {[%eval 121,71] [%emt 0:00:29]} Ne5 {[%emt 0:00:16] (Sf4)} 136. Ke2 {[%eval 121,64] [%emt 0:00:53]} Nc4 {[%emt 0:00:08] (Sf7)} 137. Ba7 {[%eval 121,63] [%emt 0:00:52]} Ne5 {[%emt 0:00:15] (Kf4)} 138. Ke3 {[%eval 121,64] [%emt 0:00:46]} Nc4+ {[%emt 0:00:23] (Sg6)} 139. Kf2 {[%eval 121,61] [%emt 0:00:51]} Ne5 {[%emt 0:00:20] (Ke6)} 140. Bb8 {[%eval 121,65] [%emt 0:00:51]} Nd3+ {[%emt 0:00:23] (Sc6)} 141. Ke2 {[%eval 121,66] [%emt 0:00:51]} Nb4 {[%emt 0:00:14] (Se5)} 142. Ba7 {[%eval 121,63] [%emt 0:00:50]} Nd5 {[%emt 0:00:15] (Kf4)} 143. Kf2 {[%eval 121,71] [%emt 0:00:49]} Ke5 {[%emt 0:00:08] (Kf4)} 144. Bb8+ {[%eval 121,66] [%emt 0:00:44]} Kf5 {[%emt 0:00:13] (Ke6)} 145. Bd6 {[%eval 121,65] [%emt 0:00:49]} Nf4 {[%emt 0:00:08] (Ke6)} 146. Bc7 {[%eval 121,67] [%emt 0:00:48]} Nd5 {[%emt 0:00:14] (Sd3+)} 147. Bb8 {[%eval 121,69] [%emt 0:00:45]} Nb4 {[%emt 0:00:12] (Ke6)} 148. Kg1 {[%eval 121,68] [%emt 0:00:46]} Nd3 {[%emt 0:00:12]} 149. Bc7 {[%eval 121,71] [%emt 0:00:34]} Nb4 {[%emt 0:00:13] (Sf4)} 150. Bd6 {[%eval 121,67] [%emt 0:00:43]} Nd3 {[%emt 0:00:14]} 151. Kf1 {[%eval 121,69] [%emt 0:00:31]} Ke6 {[%emt 0:00:14]} 152. Ba3 {[%eval 121,69] [%emt 0:00:32]} Ke5 {[%emt 0:00:51] (Sf4)} 153. Be7 {[%eval 121,67] [%emt 0:00:46]} Kf5 {[%emt 0:00:08]} 154. Kg1 {[%eval 121,67] [%emt 0:00:33]} Kf4 {[%emt 0:00:14] (Sf4)} 155. Bf6 {[%eval 121,62] [%emt 0:00:46]} Ne1 {[%emt 0:00:12] (Se5)} 156. Kf1 {[%eval 121,67] [%emt 0:00:43]} Nxf3 {[%emt 0:00:21] (Sc2)} 157. gxf3 {[%eval 121,59] [%emt 0:00:46]} Kxf3 {[%emt 0:00:08]} 158. Bxg5 {[%eval 121,64] [%emt 0:00:37]} Kg3 {[%emt 0:00:08]} 159. Ke2 {[%eval 121,63] [%emt 0:00:35]} Kxh3 {[%emt 0:00:07]} 160. Kf3 {[%eval 121,63] [%emt 0:00:37]} Kh2 {[%emt 0:00:06]} 161. Bxh4 {[%eval 110,90] [%emt 0:00:38]} 1/2-1/2
Xann wrote: Sat Dec 20, 2025 6:58 am
2. Time management is too conservative. It's one thing to save some time for the endgame, but in both games following Senpai effectively used only half of its time in a very long game.
Thanks, that's a helpful observation. Perhaps you are talking about the remaining clock time? If you count increments as well, this could be well above half. I've always allocated a fixed portion of the remaining time (+ increment), and only tested in fast games. There is the possibility that 'fixed' doesn't scale to longer games indeed; food for thought ...
If Senpai is indeed pondering or at least allocating its time as if it were, this might make its time management look more conservative as it really is.
But if you look only at the first 15 moves from each game, where Crafty was moving instantly (as it used an opening book), you’ll see that Senpai allocates very little time, at least way less than any other strong engine I know.

Looking forward to seeing more games to get a better feel for Senpai’s playing style.
Peter