About Obsidian

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

Moderators: hgm, Rebel, chrisw

Ras
Posts: 2582
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: About Obsidian

Post by Ras »

DmitriyFrosty wrote: Fri Jan 26, 2024 1:24 pmYou need compare it to Stockfish with pure nnue evaluation (when he uses one network)
Need to compare what with what? The source code? The move output? What do you even mean? Obviously, SF16 is using the network, as seen in my posting.

Also, since you started the thread: give evidence. Both Obsidian and SF16 are on Github. Give specific links to specific files with specific line numbers.
Rasmus Althoff
https://www.ct800.net
User avatar
Gabor Szots
Posts: 1395
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: About Obsidian

Post by Gabor Szots »

mvanthoor wrote: Fri Jan 26, 2024 1:14 pm
Sylwy wrote: Fri Jan 26, 2024 11:24 am ...
This engine posted by Gabor has the same main sources:
Gabor Szots wrote: Thu Jan 25, 2024 4:05 pm New engine Molybdenum

rn5f107s2, Germany
https://github.com/rn5f107s2/Molybdenum ... s/tag/v2.0
But the link to the engine programming discord doesn't work.

Even so, I can't believe that there are people who go: "Let's write a chess engine!" Then: "Let's hang around in the Discord and Engine Programming Channels for a few weeks!" Then, 200 commits and a fart later, another 3500 engine drops.

That just feels wrong to me. Either I'm exceedingly stupid because I can't do that, or many others are just (re)writing code without exactly understanding what it does and why. My challenge would then be: if I gave you a text editor, a compiler of your language of choice and your own knowledge and notes (so NOT the source code of your previous engine), could you do it _again_? If not, then... well... you either didn't understand, or you didn't document and forgot.

There are SO many engines that just list a bunch of features and pop out new versions every other day without even listing a changelog. Those are useless to learn from, even if open source. The same goes for "I've been writing a chess engine for the last few weeks and *pop!* here's your new 3500 Elo engine! Enjoy, bye!" And the creator was never seen again. (And may not even have been seen before.)

I ignore all of them. The only new open source engines I follow are the ones for which I can see the beginnings, that document their progress and what they are doing, and why.
I very much agree with all this. I would have written the same if I could find the appropriate words.

It's been my opinion for a long time now that if a very strong engine pops up, developed for some time then abandoned, then it is a clone (sorry, a derivative) with nothing original in it. The author simply abandons it because he has implemented everything there was for the taking and has no ideas of his own.
Gabor Szots
CCRL testing group
Chessqueen
Posts: 5685
Joined: Wed Sep 05, 2018 2:16 am
Location: Moving
Full name: Jorge Picado

Re: About Obsidian

Post by Chessqueen »

Ras wrote: Fri Jan 26, 2024 1:13 pm Are we talking about Obsidian 10 from https://github.com/gab8192/Obsidian ?

As example, I compared one of the most important parts (search.cpp) with SF16. This is pretty different and not a copy. There are ideas from SF, but that's common practice and also acknowledged. Also the engine file sizes are different because Obsidian uses a small net compared to SF16, and that alone makes it very unlikely that they come up with the exakt same PV and eval. I suspect that Chessqueen's test is garbage, probably running two times the same engine, not SF16 and Obsidian 10.

I built both SF16 and Obsidian 10 from source (Linux) and gave the test position after move 14 with depth 20. Both SF16 and Obsidian at 256MB hash, single thread. The output is completely different, they don't even agree on the best move within the given depth. Despite much higher NPS, probably due to the smaller net, Obsidian takes much longer to reach depth 20.
Yes completely different, Lets give Stockfish the White pieces, later on Obsidian 10 the White pieces

[pgn][Event "Computer chess game"] [Date "2024.01.25"] [Round "?"] [White "Obsidian10-avx2"] [Black "Stockfish-windows-x86-64-avx2x"] [Result "1/2-1/2"] [BlackElo "3550"] [ECO "A20"] [Opening "English"] [Time "03:34:15"] [Variation "KID, 2.d3"] [WhiteElo "3525"] [TimeControl "1500+10"] [Termination "normal"] [PlyCount "178"] [WhiteType "program"] [BlackType "program"] 1. c4 e5 2. d3 Bb4+ 3. Nd2 Nf6 4. Nf3 Bd6 5. g3 O-O 6. Bg2 Re8 7. a3 a5 8. b3 Bf8 9. Bb2 Nc6 10. O-O d5 11. cxd5 Nxd5 12. Rc1 f6 13. Re1 Qd7 14. Ne4 {(Nd2-e4 Qd7-f7 Rc1-c2 h7-h6 Qd1-c1 Nd5-b6 Nf3-d2 Nb6-d5 Nd2-f3) 0.00/49 223} Qf7 {(Qd7-f7 Qd1-c2 h7-h6 Ne4-c5 Re8-d8 e2-e3 Bf8xc5 Qc2xc5 Bc8-e6 Nf3-d2 Nd5-e7 d3-d4 Ra8-b8 Qc5-c2 e5xd4 Bb2xd4 Be6-d5 Bd4-a1 Bd5xg2 Kg1xg2 Rd8-d7 Nd2-f3 Rb8-d8 Re1-d1 Rd7xd1 Rc1xd1 Rd8xd1 Qc2xd1 Qf7-g6 Qd1-d7 Qg6-b1 Ba1-c3 Qb1xb3 Bc3xa5 Kg8-h7 h2-h4 Qb3xa3 Ba5xc7 Qa3-a8) -0.14/36 49} 15. Nc5 {(Ne4-c5 b7-b6 Nc5-e4 Nc6-d4 Bb2xd4 e5xd4 Nf3xd4 Bf8xa3 Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Bc8-a6 Rc4xb4 a5xb4 Bg2xa8 Re8xa8 Nd4-c6 Ba6-b7 Qd1-c2 h7-h5 d3-d4 Bb7xc6 Qc2xc6 Ra8-a5 Qc6-c2 h5-h4 g3xh4 Ra5-h5 Re1-c1 Rh5xh4 Qc2xc7 Qf7xc7 Rc1xc7 Rh4xd4 Rc7-e7 Kg8-f8 Re7-e3 Rd4-d1+ Kg1-g2 Rd1-b1 h2-h4 g7-g6) +0.03/43 52} b6 {(b7-b6 Nc5-e4 Nc6-d4 Bb2xd4 e5xd4 Nf3xd4 Bf8xa3 Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Ra8-a6 Qd1-c2 c7-c5 Re1-a1 Kg8-h8 Nd4-c6 Bc8-e6 Nc6xb4 Be6xc4 Nb4xa6 Bc4xa6 e2-e3 h7-h6 Ra1-d1 Qf7-g6 Qc2-d2 Qg6-f7) 0.00/38 53} 16. Ne4 {(Nc5-e4 Nc6-d4 e2-e3 Nd4xf3+ Bg2xf3 Bc8-e6 Bf3-h5 g7-g6 Bh5-f3 Ra8-d8 h2-h4 c7-c5 Qd1-e2 Be6-f5 Qe2-c2 h7-h5 Rc1-d1 b6-b5 d3-d4 c5xd4 e3xd4 b5-b4 a3-a4 Nd5-c3 Bb2xc3 b4xc3 d4xe5 Bf8-b4 Rd1xd8 Re8xd8 Re1-d1 Rd8-d2 Rd1xd2 c3xd2 Qc2-d3 Kg8-g7 Qd3-e2 Bf5xe4 Qe2xe4 Qf7xb3 Qe4-b7+ Qb3-f7 e5xf6+ Kg7xf6 Qb7-b5 d2-d1R+ Bf3xd1 Kf6-g7) +0.02/45 28} Nd4 {(Nc6-d4 Bb2xd4 e5xd4 Nf3xd4 Bf8xa3 Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Ra8-b8 Re1-f1 Bc8-a6 Nd4-c6 Ba6xc4 b3xc4 Qf7-d7 Nc6xb8 Re8xb8 e2-e3 g7-g6 h2-h4 Kg8-g7 h4-h5 a5-a4 Bg2-f3 b6-b5 c4xb5 Qd7xb5 Qd1-c2 Bb4-d6 Bf3-c6 Qb5xh5 Qc2xa4 Rb8-b2 Bc6-g2 Qh5-b5 Qa4xb5 Rb2xb5 Bg2-f3 h7-h5 Kg1-g2 f6-f5 Rf1-a1 Rb5-b2) -0.01/39 36} 17. Bxd4 {(Bb2xd4 e5xd4 Nf3xd4 Bf8xa3 Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Bc8-a6 Rc4xb4 a5xb4 Bg2xa8 Re8xa8 Nd4-c6 Ba6-b7 Qd1-c2 h7-h5 d3-d4 Bb7xc6 Qc2xc6 Ra8-a5 Re1-c1 Qf7xb3 Qc6xc7 Qb3-e6 Qc7-c4 Qe6xc4 Rc1xc4 Ra5-a4 Kg1-g2 Kg8-f7 Kg2-f3 Kf7-e6 e2-e4 b6-b5 Rc4-c6+ Ke6-f7 Rc6-c5 Ra4-a3+ Kf3-g2 Ra3-a5 Rc5-c2 b4-b3 Rc2-b2 Ra5-a4 Rb2xb3 Ra4xd4 Kg2-f3 Rd4-a4 Rb3xb5 Ra4-a3+ Kf3-g2 Ra3-a4 e4-e5 f6xe5 Kg2-h3) +0.03/47 29} exd4 {(e5xd4 Nf3xd4 Bf8xa3 Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Ra8-b8 Re1-f1 Bc8-a6 Nd4-c6 Ba6xc4 b3xc4 Qf7-d7 Nc6xb8 Re8xb8 e2-e3 g7-g6 h2-h4 Kg8-g7 h4-h5 a5-a4 d3-d4 f6-f5 Bg2-f3 Bb4-e7 Qd1-c2 a4-a3 Rf1-b1 g6-g5 c4-c5 f5-f4 Qc2-e4 f4xg3 f2xg3 Be7-f6 Kg1-g2 Kg7-h6 Rb1-b3 a3-a2 Rb3-a3 b6xc5 Ra3xa2 c5xd4 e3xd4 Qd7xd4) -0.03/41 43} 18. Nxd4 {(Nf3xd4 Bf8xa3 Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Bc8-a6 Rc4xb4 a5xb4 Bg2xa8 Re8xa8 Nd4-c6 Ba6-b7 Qd1-c2 h7-h5 d3-d4 Bb7xc6 Qc2xc6 Ra8-a2 Qc6-b5 Ra2-b2 Qb5xb4 Rb2xb3 Qb4-d2 Qf7-d5 e2-e4 Qd5-a5 Qd2xa5 b6xa5 Re1-a1 Rb3-b4 Ra1xa5 Rb4xd4 e4-e5 f6xe5 h2-h4 c7-c5 Ra5xc5 g7-g6 Kg1-g2 Rd4-a4 Rc5-c6 Kg8-g7 Rc6-c2 Ra4-a3 f2-f3 Kg7-f7 Kg2-f2 Ra3-a1 Rc2-b2 Ra1-a3 Rb2-c2) 0.00/56 29} Bxa3 {(Bf8xa3 Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Ra8-b8 Re1-f1 Bc8-a6 Nd4-c6 Ba6xc4 d3xc4 Kg8-h8 Nc6xb8 Re8xb8 Qd1-d3 Rb8-f8 Rf1-d1 g7-g6 h2-h4 f6-f5 Qd3-f3 Qf7-f6 Qf3-b7 Rf8-d8 Rd1-d5 Rd8xd5 Bg2xd5 Qf6-d8 e2-e3 Kh8-g7 h4-h5 Kg7-h6 h5xg6 h7xg6 Kg1-g2 Bb4-c5 Qb7-c6 Qd8-e7 Qc6-b7) 0.00/41 26} 19. Nc3 {(Ne4-c3 Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Bc8-a6 Bg2xa8 Ba6xc4 Ba8-c6 Re8-d8 d3xc4 Bb4xe1 e2-e4 Be1-c3 Bc6-d5 Rd8xd5 e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 Qd4-g4 Qe7-e5 Qg4-d7 h7-h5 Kg1-f1 Qe5-a1+ Kf1-g2 Qa1-e5 h2-h3 Qe5-e4+ Kg2-f1 Qe4-b1+ Kf1-e2 Qb1-b2+ Ke2-f3 Qb2xb3+ Kf3-g2 Qb3xc4 Qd7-e8+ Kg8-h7 Qe8xh5+ Kh7-g8 Qh5-e8+ Kg8-h7 Qe8-h5+) 0.00/49 14} Nxc3 {(Nd5xc3 Rc1xc3 Ba3-b4 Rc3-c4 Bc8-a6 Rc4xb4 a5xb4 Bg2xa8 Re8xa8 Nd4-c6 Ba6-b7 Qd1-c2 Qf7-e6 Re1-c1 Ra8-e8 e2-e4 Bb7xc6 Qc2xc6 Qe6xc6 Rc1xc6 Re8-d8 d3-d4 Rd8xd4 Rc6xc7 Rd4-d3 Rc7-c6 Rd3xb3 Rc6xb6 Rb3-c3 Rb6xb4 Rc3-c1+ Kg1-g2) -0.11/25 8} 20. Rxc3 {(Rc1xc3 Ba3-b4 Rc3-c4 Ra8-a6 Qd1-c2 c7-c5 Re1-d1 Kg8-h8 Nd4-b5 Qf7-d7 Nb5-c3 b6-b5 Rc4-h4 f6-f5 Nc3-d5 Qd7-f7 Nd5xb4 c5xb4 Rd1-c1 h7-h6 Qc2-c5 Bc8-d7 Bg2-b7 Ra6-f6 Bb7-d5 Bd7-e6 Bd5xe6 Qf7xe6 Qc5xb5 Qe6xe2 Rh4-f4) +0.21/30 26} Bb4 {(Ba3-b4 Rc3-c4 Bc8-a6 Rc4xb4 a5xb4 Bg2xa8 Re8xa8 Nd4-c6 Ba6-b7 Qd1-c2 h7-h5 d3-d4 Bb7xc6 Qc2xc6 Ra8-a5 Re1-c1 Qf7xb3 Qc6xc7 Qb3-e6 Qc7-c4 Qe6xc4 Rc1xc4 Ra5-a4 Kg1-g2 Kg8-f7 Rc4-c6 b6-b5 Rc6-c5 b4-b3 Rc5xb5 Ra4xd4 Rb5xb3 Rd4-a4 e2-e3 h5-h4 Rb3-b7+ Kf7-g6 Rb7-b2 h4xg3 Kg2xg3 Ra4-e4 f2-f3 Re4xe3) -0.04/48 86} 21. Rc4 {(Rc3-c4 Ra8-a6 Qd1-c2 c7-c5 Re1-d1 Re8-f8 h2-h4 Kg8-h8 Rd1-b1 h7-h6 Bg2-f3 Bc8-d7 Nd4-c6 Rf8-e8 Rb1-a1 Bd7-e6 e2-e3 Re8-a8 d3-d4 Be6xc4 b3xc4 c5xd4 e3xd4 Bb4-f8 Qc2-f5 g7-g6 Qf5-f4 a5-a4 Nc6-e5 Qf7-g7 Bf3xa8) +0.14/32 33} Ba6 {(Bc8-a6 Rc4xb4 a5xb4 Bg2xa8 Re8xa8 Nd4-c6 Ba6-b7 Qd1-c2 h7-h5 Nc6xb4 c7-c5 Nb4-a2 h5-h4 Na2-c3 Qf7-e6 Re1-b1 h4xg3 h2xg3 Qe6-h3 e2-e4 Kg8-f7 Qc2-e2 Ra8-h8 Qe2-f3 Bb7-c8 Qf3-g2 Qh3xg2+ Kg1xg2 Rh8-d8 Nc3-a4 Rd8xd3 Na4xb6 Bc8-b7 f2-f3 f6-f5 Nb6-a4 Rd3-d2+ Kg2-f1 Rd2-c2 Rb1-d1 Bb7-c6 Rd1-d6 Bc6xa4 b3xa4 f5xe4 f3xe4 Rc2-a2 Rd6-d5 Kf7-e6 Rd5xc5 Ra2xa4 Kf1-f2 Ra4xe4) -0.02/45 56} 22. Bxa8 {(Bg2xa8 Re8xa8 Rc4xb4 a5xb4 Nd4-c6 Ba6-b7 Qd1-c2 Qf7-e6 Nc6xb4 c7-c5 Nb4-a2 h7-h5 Na2-c1 Ra8-a1 e2-e4 Qe6-e5 Kg1-g2 h5-h4 Re1-e3 h4xg3 h2xg3 Kg8-f8 f2-f3 Bb7-a6 Re3-e1 Kf8-f7 Re1-h1 Qe5-d6 g3-g4 Ba6-b5 Qc2-c3 Qd6-d4 Qc3xd4) +0.25/36 88} Bxc4 {(Ba6xc4 Ba8-c6 Re8-d8 d3xc4 Bb4xe1 e2-e4 Be1-c3 Bc6-d5 Rd8xd5 e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 Qd4-g4 Qe7-e5 Qg4-c8+ Kg8-f7 h2-h4 h7-h5 Kg1-f1 Kf7-g6 Qc8-d7 Qe5-a1+ Kf1-g2 Qa1-e5) 0.00/52 31} 23. Bc6 {(Ba8-c6 Bc4-e6 Bc6xe8 Qf7xe8 Nd4xe6 Bb4xe1 Ne6xc7 Be1xf2+ Kg1xf2 Qe8-c6 d3-d4 Qc6xc7 Qd1-d3 g7-g6 d4-d5 Qc7-c5+ Kf2-f3 Kg8-f7 Qd3-e4 Qc5-c8 Kf3-g2 Qc8-d7 Qe4-d3 Qd7-c7 d5-d6 Qc7-c6+ Kg2-g1 Kf7-e6 d6-d7 Qc6xd7 Qd3-e3+ Ke6-f7 Qe3xb6 Qd7-d5 Qb6-a7+ Kf7-e6 Qa7-e3+ Ke6-f7 Qe3-a7+) 0.00/34 35} Rd8 {(Re8-d8 d3xc4 Bb4xe1 e2-e4 Be1-c3 Bc6-d5 Rd8xd5 e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 Qd4-g4 Qe7-e5 Qg4-d7 h7-h5 Kg1-f1 Kg8-h7 Qd7-f7 Kh7-h6 h2-h4 Qe5-e4 Qf7xc7 Qe4-h1+ Kf1-e2 Qh1-e4+ Ke2-d2 Qe4-d4+ Kd2-e1 Qd4-e4+) 0.00/55 32} 24. dxc4 {(d3xc4 Bb4xe1 e2-e4 Be1-c3 Bc6-d5 Rd8xd5 c4xd5 Bc3xd4 Qd1xd4 Kg8-f8 f2-f4 Qf7-e7 Kg1-f1 Kf8-e8 Kf1-e2 b6-b5 Ke2-d3 Qe7-a3 Qd4-c3 Qa3-a2 Qc3xc7 Qa2xb3+ Kd3-e2 a5-a4 Qc7-c8+ Ke8-f7 Qc8-d7+ Kf7-g6 Qd7-g4+ Kg6-h6 Qg4-h3+ Kh6-g6 Qh3-f5+) 0.00/33 35} Bxe1 {(Bb4xe1 e2-e4 Be1-c3 Bc6-d5 Rd8xd5 e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 Qd4-g4 Qe7-e5 Qg4-c8+ Kg8-f7 Qc8-d7+ Kf7-g6 Qd7-g4+ Kg6-f7) 0.00/52 39} 25. e4 {(e2-e4 Be1-c3 Bc6-d5 Rd8xd5 c4xd5 Bc3xd4 Qd1xd4 Kg8-f8 Qd4-c4 Qf7-e7 h2-h4 Kf8-e8 h4-h5 Ke8-d8 d5-d6 c7xd6 Qc4-g8+ Kd8-c7 Qg8xh7 Qe7-d7 Qh7-g8 b6-b5 Qg8-d5 a5-a4 b3xa4 b5xa4 Qd5-a5+ Kc7-b7 Qa5-b4+ Kb7-c7 Qb4-c4+) 0.00/36 35} Bc3 {(Be1-c3 Bc6-d5 Rd8xd5 e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 Qd4-g4 Qe7-e1+ Kg1-g2 Qe1-e5 Kg2-f3 Kg8-f8 h2-h4 b6-b5 Qg4-c8+ Kf8-e7 Qc8-a6 Qe5-f5+ Kf3-g2 Qf5-e4+ Kg2-h2 Qe4-e2 Qa6-a7 Ke7-d6 Qa7-d4 b5xc4 b3xc4 Qe2-e5 c4-c5+ Kd6-e7 Qd4-d3 h7-h5 f2-f4 Qe5-b2+ Kh2-h3 Qb2-c1 d5-d6+ c7xd6 Qd3-e4+ Ke7-d7 Qe4-b7+ Kd7-e8 Qb7-c6+ Ke8-f7 Qc6-d5+ Kf7-g6 f4-f5+ Kg6-h7 c5xd6 Qc1-f1+ Kh3-h2 Qf1-e2+ Kh2-g1 Qe2-e1+ Kg1-g2) 0.00/51 48} 26. Bd5 {(Bc6-d5 Rd8xd5 e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 Kg1-g2 Kg8-f7 Kg2-f3 Kf7-e8 g3-g4 Ke8-d7 h2-h4 Qe7-e1 g4-g5 Qe1-b1 g5xf6 g7xf6 Qd4xf6 Qb1xb3+ Kf3-g2 Qb3-d3 Qf6-e6+ Kd7-d8 h4-h5 a5-a4 Qe6-g8+ Kd8-d7 Qg8-e6+) 0.00/35 28} Rxd5 {(Rd8xd5 e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 h2-h4 Qe7-e5 Qd4-g4 f6-f5 Qg4-g5 h7-h6 Qg5-d8+ Kg8-h7 Qd8-c8 Qe5-e1+ Kg1-g2 Qe1-e4+ Kg2-h2 Qe4-c2 Kh2-g1 Qc2-b1+ Kg1-g2) 0.00/49 30} 27. exd5 {(e4xd5 Bc3xd4 Qd1xd4 Qf7-e7 Kg1-g2 Kg8-f7 Qd4-g4 Qe7-e5 Qg4-c8 Qe5-e4+ Kg2-h3 Qe4-e7 g3-g4 Qe7-e5 Qc8-d7+ Kf7-f8 Kh3-g2 Qe5-e4+ Kg2-g3 Qe4-e5+ Kg3-h3 Qe5-e7 Qd7-c8+ Kf8-f7 Qc8-f5 g7-g6 Qf5-f4 Kf7-e8 Kh3-g2 Ke8-d7 Kg2-f3 Qe7-e5 Qf4xe5) 0.00/36 55} Bxd4 {(Bc3xd4 Qd1xd4 Qf7-e7 Kg1-g2 Kg8-f7 Qd4-h4 f6-f5 Qh4-h5+ Kf7-f6 Qh5-d1 h7-h6 f2-f4 Qe7-e4+ Kg2-f2 Kf6-f7 d5-d6 c7xd6 Qd1xd6 Qe4-c2+ Kf2-e1 Qc2-b1+ Ke1-e2 Qb1-b2+ Qd6-d2 Qb2xb3 Qd2-d7+ Kf7-f6 Qd7-c6+ Kf6-e7 Qc6-b7+ Ke7-d6 Qb7-d5+ Kd6-e7 Qd5-e5+ Ke7-d8 Qe5-d6+ Kd8-c8 Qd6-e6+ Kc8-c7 Qe6-f7+ Kc7-b8 Qf7-e8+ Kb8-a7 Qe8-d7+ Ka7-a6 Qd7-c8+ Ka6-a7 Qc8-c7+ Ka7-a8 Qc7-d8+ Ka8-b7 Qd8-d5+ Kb7-a7 Qd5-d7+) 0.00/54 80} 28. Qxd4 {(Qd1xd4 Qf7-e7 Qd4-f4 Kg8-f7 Qf4-g4 Qe7-e5 Qg4-c8 Kf7-g6 Qc8-g4+) 0.00/36 43} Qe7 {(Qf7-e7 Kg1-f1 Qe7-e5 Qd4-g4 Qe5-a1+ Kf1-g2 Qa1-e5) 0.00/54 43} 29. Kg2 {(Kg1-g2 Kg8-f8 h2-h4 Qe7-e5 Qd4-g4 Kf8-f7 Kg2-h3 h7-h5 Qg4-d7+ Kf7-g6 g3-g4 Kg6-h7 g4xh5 Qe5-f4 Kh3-g2 Kh7-h6 f2-f3 Kh6xh5 Qd7xg7 Kh5xh4 Qg7-h7+ Kh4-g5 Qh7-g8+ Kg5-h4) 0.00/38 139} Kf7 {(Kg8-f7 Qd4-h4 f6-f5 Qh4-h5+ Kf7-f6 Qh5-h4+) 0.00/52 36} 30. Kf3 {(Kg2-f3 Kf7-e8 h2-h4 Ke8-d8 Qd4-g4 g7-g6 Qg4-f4 Kd8-d7 g3-g4 Qe7-d6 Qf4-h6 Qd6-e7 Qh6-f4) 0.00/36 103} Ke8 {(Kf7-e8 Qd4-g4 Ke8-d8 h2-h4 g7-g6 h4-h5 g6xh5 Qg4xh5 Qe7-a3 Kf3-g2 Qa3xb3 Qh5xh7 Qb3xc4 Qh7-g8+ Kd8-d7 Qg8-e6+ Kd7-d8 Qe6-g8+) 0.00/52 31} 31. Qg4 {(Qd4-g4 Ke8-d8 h2-h4 g7-g6 Qg4-f4 Kd8-d7 g3-g4 Qe7-d6 Qf4-e4 Qd6-e7 Qe4-f4) 0.00/35 29} Kd8 {(Ke8-d8 h2-h4 g7-g6 h4-h5 g6xh5 Qg4xh5 Qe7-a3 Qh5xh7 Qa3xb3+ Kf3-g2 Qb3xc4 Qh7-g8+ Kd8-d7 Qg8-e6+ Kd7-d8) 0.00/53 38} 32. h4 {(h2-h4 g7-g6 Qg4-f4 Kd8-d7 Qf4-d4 Kd7-d6 Kf3-f4 Kd6-d7) 0.00/36 34} g6 {(g7-g6 h4-h5 g6xh5 Qg4xh5 Qe7-a3 Qh5xh7 Qa3xb3+ Kf3-g2 Kd8-c8 d5-d6 c7xd6 Qh7-g8+ Kc8-b7 Qg8-f7+ Kb7-c6 Qf7-d5+ Kc6-c7 Qd5-f7+) 0.00/58 32} 33. Qd4 {(Qg4-d4 Kd8-d7 g3-g4 Kd7-d6 Qd4-a1 Qe7-e5 Qa1-a3+ Kd6-d7 Qa3-f8 a5-a4 b3xa4 Qe5-c3+ Kf3-g2 Qc3xc4 Qf8-f7+ Kd7-c8 Kg2-g3 Qc4-c3+ Kg3-g2) 0.00/36 66} Kd7 {(Kd8-d7 Qd4-f4 f6-f5 Qf4-d4 Qe7-b4 Qd4-e3 Kd7-d8 Qe3-d3 Qb4-a3 Qd3-e3) 0.00/55 29} 34. Kf4 {(Kf3-f4 Qe7-e1 g3-g4 Qe1-g1 Kf4-f3 Qg1-h1+ Kf3-e2 Qh1xh4 Qd4-e4 Kd7-d8 Qe4-e6 f6-f5 Qe6-g8+ Kd8-d7 Qg8-e6+) 0.00/34 26} Kd6 {(Kd7-d6 Qd4-b2 Kd6-d7 Qb2-d4 Kd7-c8 Qd4-e3 Qe7-b4 Qe3-e6+ Kc8-b8 Qe6-e8+ Kb8-a7 Qe8-f7 Qb4-c5 Kf4-f3 a5-a4 b3xa4 Qc5xc4 Kf3-g2 Ka7-b7 Qf7xh7 Qc4xd5+ Kg2-g1 Qd5-d1+ Kg1-g2 Qd1-c2 Kg2-g1) 0.00/59 32} 35. Qa1 {(Qd4-a1 Kd6-d7 Qa1-d4 Kd7-d6) 0.00/36 53} Kd7 {(Kd6-d7 Qa1-d4 Kd7-c8 Qd4-e3 Qe7-b4 Qe3-e6+ Kc8-b8 Qe6-e8+ Kb8-a7 Qe8-f7 Qb4-c5 Kf4-f3 a5-a4 b3xa4 Qc5xc4 Kf3-g2 Ka7-b7 Qf7xh7 Qc4xd5+ Kg2-g1 Qd5-d1+ Kg1-g2 Qd1-d5+) 0.00/51 29} 36. Kf3 {(Kf4-f3 Kd7-c8 Qa1-d4 Qe7-b4 Qd4-d3 Kc8-b7 Kf3-g2 b6-b5 c4xb5 Kb7-b6 h4-h5 Qb4xb5 Qd3-d4+ Kb6-b7 h5-h6 Qb5xb3 Qd4-c5 a5-a4 Qc5-c6+ Kb7-b8 Qc6-e8+ Kb8-a7 Qe8-c6 Ka7-b8) 0.00/34 57} Kc8 {(Kd7-c8 Qa1-a4 f6-f5 Kf3-g2 Qe7-e4+ Kg2-g1 Qe4-e1+ Kg1-g2) 0.00/59 29} 37. g4 {(g3-g4 Qe7-b4 Qa1-a4 Qb4-e1 Qa4-c6 Qe1-h1+ Kf3-g3 Qh1-g1+ Kg3-f3 Qg1-h1+) 0.00/34 23} Kb7 {(Kc8-b7 Qa1-d4 f6-f5 g4xf5 g6xf5 Kf3-g2 Qe7-e8 Kg2-f3 b6-b5 c4-c5 Qe8-e7 b3-b4 a5-a4 c5-c6+ Kb7-a6 Qd4-h8 Qe7-e4+ Kf3-g3 Qe4-g4+ Kg3-h2 Qg4xh4+ Kh2-g1 Qh4-g4+ Kg1-h2 Qg4-f4+ Kh2-g1 Qf4-g4+) 0.00/49 45} 38. Qa4 {(Qa1-a4 Kb7-b8 Qa4-a1 Qe7-b4 Qa1-a4) 0.00/35 22} Qe1 {(Qe7-e1 Qa4-c6+ Kb7-b8 Qc6-d7 Qe1-h1+ Kf3-g3 Qh1-g1+ Kg3-f3 Qg1-h1+) 0.00/51 37} 39. Qc6+ {(Qa4-c6+ Kb7-b8 Qc6-e6 Qe1-d1+ Kf3-g2 f6-f5 g4xf5 Qd1-g4+ Kg2-f1 Qg4xf5 Qe6-e8+ Qf5-c8 Qe8-e4 Qc8-h3+ Kf1-g1 Qh3xb3 Qe4-e8+ Kb8-a7 Qe8-c6 Qb3-d1+ Kg1-h2 Ka7-b8 Qc6-e8+ Kb8-b7 Qe8-c6+) 0.00/37 51} Kb8 {(Kb7-b8 Qc6-d7 g6-g5 h4xg5 f6xg5 Qd7-e6 Qe1-f1 Qe6-e8+ Kb8-a7 Qe8-d7 Qf1-d3+ Kf3-g2 Qd3-e4+ Kg2-g3 Qe4-e5+ Kg3-h3 h7-h6 Kh3-g2 Qe5-e4+ Kg2-g3 Qe4-f4+ Kg3-g2) 0.00/57 30} 40. Qe6 {(Qc6-e6 Qe1-d1+ Kf3-g2 f6-f5 g4xf5 Qd1-g4+ Kg2-f1 Qg4xf5 Qe6-e8+ Qf5-c8 Qe8-e7 Qc8-h3+ Kf1-g1 Qh3xb3 Qe7-e8+ Kb8-b7 Qe8-c6+ Kb7-b8) 0.00/35 35} Qd1+ {(Qe1-d1+ Kf3-f4 Qd1-c2 Qe6-e3 Kb8-b7 Kf4-g3 Qc2-d1 f2-f3 g6-g5 h4xg5 f6xg5 Kg3-g2 Qd1-c2+ Kg2-g3 Qc2-g6 Qe3-e7 Kb7-c8 Kg3-g2 Qg6-c2+ Kg2-h3 Qc2-d1 Qe7-e3 Qd1-h1+ Kh3-g3 Qh1-h6 Kg3-g2 Kc8-d7 Qe3-e4 Qh6-g6 Qe4-e5 h7-h6 Kg2-g3 Kd7-c8 Qe5-e7 Kc8-b7 Qe7-e4 Qg6-d6+ Kg3-g2 Kb7-a6 Qe4-e8 Ka6-a7 Qe8-h8 Ka7-b7 Qh8-d4 Kb7-c8 Kg2-h3 Qd6-g6 Qd4-e4 Qg6-f6 Qe4-e8+ Kc8-b7) 0.00/54 28} 41. Kf4 {(Kf3-f4 Qd1-c2 Qe6-e3 Kb8-b7 Kf4-g3 Qc2-d1 f2-f3 Qd1-h1 d5-d6 c7xd6 Qe3-e7+ Kb7-a6 Qe7xf6 Qh1-e1+ Kg3-g2 Qe1-e5 Qf6-f7 Qe5-e2+ Kg2-g3 Qe2-e1+ Kg3-g2) 0.00/33 21} Qc2 {(Qd1-c2 Qe6-e3 Kb8-b7 Kf4-g3 Qc2-d1 f2-f3 g6-g5 h4xg5 f6xg5 Kg3-g2 Qd1-c2+ Kg2-g3) 0.00/53 27} 42. Qe3 {(Qe6-e3 Kb8-b7 Kf4-g3 Qc2-d1 f2-f3 Qd1-h1 d5-d6 c7xd6 Qe3-e7+ Kb7-a6 Qe7xh7 Qh1-g1+ Kg3-h3 Qg1-h1+) 0.00/34 28} Kb7 {(Kb8-b7 Kf4-g3 Qc2-d1 f2-f3 g6-g5 h4xg5 f6xg5 Kg3-g2 Qd1-c2+ Kg2-g3 Qc2-g6 Qe3-e7 Kb7-c8 Kg3-g2 Qg6-c2+ Kg2-h3 Qc2-d1 Qe7-e3 h7-h6 Kh3-g2 Kc8-b7 Qe3-e4 Kb7-a7 Qe4-e7 Qd1-d2+ Kg2-g3 Ka7-b7 Qe7-e4 Kb7-a6 Qe4-e8 Qd2-f4+ Kg3-g2 Ka6-a7 Qe8-e7 Ka7-b7 Qe7-e4 Qf4-d6 Qe4-d4 Qd6-a3 Qd4-e3 Qa3-b2+ Kg2-h3 Qb2-f6) 0.00/51 33} 43. Kg3 {(Kf4-g3 Qc2-d1 f2-f3 g6-g5 h4xg5 f6xg5 Kg3-h2 Qd1-f1 Qe3-e4 Qf1-f2+ Kh2-h3 Kb7-b8 Qe4-d3 h7-h6 d5-d6 c7xd6 Qd3xd6+ Kb8-c8 Qd6-e6+ Kc8-c7 Qe6-f7+ Kc7-d6 Qf7-d5+ Kd6-e7 Qd5-e4+ Ke7-d7 Qe4-f5+ Kd7-d8 Qf5-f6+ Kd8-e8 Qf6-c6+ Ke8-d8) 0.00/35 65} Qd1 {(Qc2-d1 f2-f3 g6-g5 h4xg5 f6xg5 Kg3-g2 Qd1-c2+ Kg2-g3 Qc2-g6 Qe3-e7 Kb7-c8 Kg3-g2 Qg6-c2+ Kg2-h3 Qc2-d1 Qe7-e3 h7-h6 Qe3-e6+ Kc8-b7 Kh3-g2 Qd1-c2+ Kg2-g3 Qc2-c1 Qe6-c6+ Kb7-b8 Qc6-e8+ Kb8-a7 Qe8-e7 Qc1-f4+ Kg3-g2 Ka7-b7 Qe7-e4 Qf4-d6 Qe4-d4 Kb7-c8 Qd4-e4 Kc8-d7 Qe4-f5+ Kd7-d8 Kg2-h3 Kd8-e7 Qf5-h7+ Ke7-d8) 0.00/50 29} 44. f3 {(f2-f3 b6-b5 Qe3-c5 Qd1-e1+ Kg3-g2 Qe1-e2+ Kg2-g3) 0.00/36 27} g5 {(g6-g5 h4xg5 f6xg5 Kg3-g2 Qd1-c2+ Kg2-g3 Qc2-g6 Qe3-e7 Kb7-c8 Kg3-g2 h7-h6 Kg2-g3 Kc8-b7 Qe7-e4 Qg6-d6+ Kg3-g2 Kb7-a7 Qe4-e3 Qd6-a3 Qe3-e5 Ka7-b7 Qe5-e4 Qa3-d6 Qe4-e8 Qd6-c5 Qe8-b5 Qc5-e3 Qb5-c6+ Kb7-b8 Qc6xh6 a5-a4 b3xa4 Qe3-e2+ Kg2-g3 Qe2-e1+ Kg3-g2 Qe1-e2+) 0.00/57 34} 45. hxg5 {(h4xg5 f6xg5 Kg3-h2 Qd1-c2+ Kh2-g3 Qc2-g6 Kg3-h3 h7-h6 Kh3-g2 Qg6-d6 Qe3-e4 Kb7-a7 Qe4-d4 Qd6-b4 Qd4-g7 Qb4-d2+ Kg2-h3 Qd2-f4 Qg7-c3 Ka7-b7 Kh3-g2 Qf4-d6 Kg2-f2 Qd6-c5+ Kf2-e2 Qc5-a3 Ke2-d2 Qa3-e7 Qc3-d3 Qe7-e5 Qd3-c3 Qe5-e7) 0.00/35 36} fxg5 {(f6xg5 Kg3-g2 Qd1-c2+ Kg2-g3) 0.00/59 31} 46. Kg2 {(Kg3-g2 Qd1-c2+ Kg2-g3 Qc2-g6 Kg3-f2 Qg6-b1 d5-d6 c7xd6 Qe3xg5 Qb1xb3 Qg5-d5+ Kb7-c7 Qd5-f7+ Kc7-c6 Qf7-d5+) 0.00/38 39} h6 {(h7-h6 Qe3-e4 Kb7-a7 Qe4-e7 Qd1-d2+ Kg2-g3 Qd2-f4+ Kg3-g2) 0.00/61 26} 47. Kf2 {(Kg2-f2 Qd1-c2+ Kf2-g3 Qc2-g6 Kg3-f2 Qg6-d6 Qe3-e8 Qd6-a3 Qe8-c6+ Kb7-b8 Qc6-e8+ Kb8-a7 Qe8-c6) 0.00/39 28} Qc2+ {(Qd1-c2+ Kf2-g3 Qc2-d1 Kg3-g2 Kb7-a6 Qe3-e6 Ka6-a7 Qe6xh6 Qd1-e2+ Kg2-g3 Qe2-e3 Kg3-g2 a5-a4 Qh6-c6 Qe3-e2+ Kg2-g3 Qe2-e5+ Kg3-f2 Qe5-b2+ Kf2-g1 Qb2xb3 Qc6xc7+ Ka7-a6 d5-d6 Qb3-d1+ Kg1-f2 Qd1-d2+ Kf2-g3 Qd2-e1+ Kg3-g2 Qe1-e2+ Kg2-g3 Qe2-e1+) 0.00/58 26} 48. Kg3 {(Kf2-g3 Qc2-g6 Kg3-f2 Qg6-d6 Qe3-e8 Qd6-h2+ Kf2-e3 Qh2-g3 Qe8-c6+ Kb7-b8 Qc6-e8+) 0.00/40 19} Qd1 {(Qc2-d1 Kg3-g2 Kb7-a6 Qe3-e6 Ka6-a7 Qe6xh6 Qd1-e2+ Kg2-g3 Qe2-e5+ Kg3-h3 Qe5-e3 Kh3-g2) 0.00/56 26} 49. Kg2 {(Kg3-g2 Kb7-a6 Qe3-e6 Ka6-a7 Qe6xh6 Qd1-e2+ Kg2-g3 Qe2-e1+ Kg3-g2) 0.00/37 21} Qc2+ {(Qd1-c2+ Kg2-g3 Qc2-d1 Kg3-g2 Qd1-c2+) 0.00/59 64} 50. Kh3 {(Kg2-h3 a5-a4 d5-d6 a4xb3 d6-d7 Qc2-d1 Qe3-e4+ Kb7-a7 Qe4-c6 Qd1-f1+ Kh3-g3 Qf1-g1+ Kg3-h3) 0.00/40 13} Qb1 {(Qc2-b1 Kh3-g2 Qb1-d1 Qe3-e4 Kb7-a7 Qe4-e7 Qd1-d2+ Kg2-h3 Qd2-f4 Kh3-g2) 0.00/63 24} 51. Kg3 {(Kh3-g3 Qb1-h1 Kg3-f2 Qh1-h2+ Kf2-e1 Qh2-c2 Qe3-e4 Qc2-c1+ Ke1-e2 Qc1-b2+ Ke2-e1) 0.00/38 17} Qh1 {(Qb1-h1 Qe3-e4 Qh1-g1+ Kg3-h3 Qg1-f1+ Kh3-g3 Kb7-a7 Qe4-e3 a5-a4 b3xa4 Qf1xc4 Qe3-e4 Qc4-c3 Kg3-f2 Qc3-d2+ Kf2-f1 Qd2-c1+ Kf1-f2 Qc1-f4 Kf2-e2 Ka7-a6 Qe4-d3+ Ka6-b7 Qd3-b5 Qf4-e5+ Ke2-d3 Qe5-d6 Qb5-c4 Kb7-b8 Qc4-c6 Qd6-a3+ Kd3-e2 Qa3-b4 Qc6-e8+ Kb8-a7 Qe8-c6 Ka7-b8) 0.00/65 42} 52. Kf2 {(Kg3-f2 Qh1-h2+ Kf2-e1 Qh2-g3+ Ke1-d2 Qg3-d6 Kd2-c3 Qd6-a3 Qe3-e4 Kb7-a7 Kc3-c2 Qa3-a2+ Kc2-c3 Qa2-a1+ Kc3-c2) 0.00/37 18} Qh2+ {(Qh1-h2+ Kf2-e1 Qh2-b2 Ke1-f1 Qb2-c2 Qe3-e4 Qc2-d1+ Kf1-f2 Qd1-d2+ Kf2-f1 Kb7-a7 Qe4-e5 Qd2-d1+ Kf1-g2 Ka7-b7 Qe5-e8 Qd1-c2+ Kg2-g3 Qc2-c1 Qe8-c6+ Kb7-b8 Kg3-g2 Qc1-b2+ Kg2-h3 Qb2-a1 Kh3-g2) 0.00/67 25} 53. Ke1 {(Kf2-e1 Kb7-a6 Qe3-e4 Qh2-g3+ Ke1-e2 Qg3-g2+ Ke2-e3 Qg2-g1+ Ke3-d3 Qg1-d1+ Kd3-c3 Qd1-c1+ Qe4-c2 Qc1-a1+ Kc3-d3 Qa1-f6 Kd3-e2 Qf6-e5+ Qc2-e4 Qe5-b2+ Ke2-e1 Ka6-a7 Qe4-d3 Qb2-h2 Ke1-d1 Ka7-b7 Qd3-e4 Qh2-g1+ Kd1-c2 Qg1-f2+ Kc2-d3 Qf2-f1+ Kd3-d2 Kb7-a7 Kd2-c2 Qf1-g2+ Kc2-c3 Qg2-g1) 0.00/38 21} Qh1+ {(Qh2-h1+ Ke1-f2 Qh1-h2+ Kf2-f1 Qh2-d6 Qe3-e4 Kb7-a7 Kf1-g2 Qd6-b4 Qe4-e3 Ka7-b7 Qe3-d3 b6-b5 Qd3-e4 Qb4-d2+ Kg2-h3 b5xc4 d5-d6+ Kb7-b6 d6xc7 Kb6xc7 Qe4xc4+ Kc7-b6 Qc4-e6+ Kb6-b5 Qe6-c4+) 0.00/62 25} 54. Kd2 {(Ke1-d2 Qh1-b1 Qe3-e4 Qb1-b2+ Kd2-e1 Kb7-a7 Qe4-e7 Qb2-c3+ Ke1-e2 Qc3-c2+ Ke2-e1) 0.00/40 22} Qb1 {(Qh1-b1 Kd2-e2 Qb1-a2+ Ke2-e1 Qa2-a3 Ke1-e2 Qa3-d6 Qe3-e4 Kb7-a7 Qe4-e3 Qd6-h2+ Ke2-f1 Ka7-b7 Qe3-e4 Qh2-f4 Qe4xf4 g5xf4 Kf1-e2 b6-b5 c4-c5 Kb7-c8 Ke2-d3 Kc8-d7 Kd3-c3 Kd7-e8 Kc3-d4 Ke8-d8 Kd4-c3 Kd8-e8) 0.00/60 23} 55. Kc3 {(Kd2-c3 Qb1-a1+ Kc3-d3 Qa1-a3 Kd3-d2 Qa3-b2+ Kd2-e1 a5-a4 Qe3-e4 a4-a3 d5-d6+ Kb7-a7 d6xc7 a3-a2 Qe4-a8+ Ka7xa8 c7-c8Q+ Ka8-a7 Qc8-d7+ Ka7-b8 Qd7-d8+ Kb8-b7 Qd8-d7+) 0.00/39 20} Qa1+ {(Qb1-a1+ Kc3-d2 Qa1-a3 Qe3-e4 Kb7-a7 Qe4-e5 Qa3-b4+ Kd2-c2 Ka7-b7 Qe5-e4 Qb4-d6 Kc2-d3 Kb7-a6 Qe4-e6 Qd6-f4 Kd3-e2 Qf4-h2+ Ke2-d3 Ka6-a7 Qe6-c6 Qh2-f4 Kd3-e2 Qf4-g3 Qc6xh6 Qg3-e5+ Ke2-d3 Qe5-b2 Qh6-c6 Qb2xb3+ Kd3-e4 Ka7-b8 Qc6-e8+ Kb8-b7 Qe8-c6+) 0.00/63 24} 56. Kc2 {(Kc3-c2 Qa1-a2+ Kc2-c3 Qa2-a3 Qe3-e4 Kb7-a7 Kc3-c2 Qa3-a2+ Kc2-c3) 0.00/40 19} Qa2+ {(Qa1-a2+ Kc2-c3 Qa2-a3 Kc3-d2 Qa3-d6 Qe3-e4 Kb7-a7 Kd2-c2 Qd6-h2+ Kc2-c3 Qh2-g1 Kc3-d2 Qg1-a1 Qe4-e7 Qa1-b2+ Kd2-e1 Qb2-h2 Qe7-e4 Qh2-g3+ Ke1-d2) 0.00/59 26} 57. Kc3 {(Kc2-c3 Qa2-a3 Kc3-d2 Qa3-b4+ Qe3-c3 Qb4-d6 Qc3-d3 Qd6-h2+ Kd2-c3 Qh2-f4 Kc3-c2 Qf4-e5 Kc2-b1 Qe5-d6 Qd3-e4 Kb7-a7 Kb1-a2 Qd6-c5 Ka2-b2 Qc5-f2+ Kb2-c3 Qf2-f1 Kc3-c2 Qf1-g2+ Kc2-c3 Qg2-h1 Kc3-d2 Qh1-g1 Kd2-e2 Qg1-c1 Qe4-d3 Qc1-a3 Ke2-d2 Qa3-b2+) 0.00/39 15} Qa1+ {(Qa2-a1+ Kc3-d2 Qa1-b2+ Kd2-e1 Qb2-a3 Ke1-f2 Qa3-a2+ Kf2-g3 Qa2-a1 Kg3-g2 Qa1-b2+ Kg2-g3) 0.00/62 30} 58. Kc2 {(Kc3-c2 Qa1-a2+ Kc2-c3 Qa2-a3 Kc3-d2 Qa3-b2+ Kd2-d1 Qb2-b1+ Kd1-d2 Kb7-a6 Qe3-e5 Qb1-a2+ Kd2-e1 Qa2xb3 Qe5xc7 Qb3-e3+ Ke1-d1 Qe3xf3+ Kd1-c2 Qf3-e2+ Kc2-b3 Qe2xg4 d5-d6 Qg4-f3+ Kb3-c2 Qf3-e2+ Kc2-c3 Qe2-e3+ Kc3-c2) 0.00/40 32} Qa2+ {(Qa1-a2+ Kc2-c3 Qa2-a3 Kc3-d2 Qa3-b4+ Kd2-e2 Qb4-d6 Qe3-e4 Qd6-h2+ Ke2-d3 Kb7-a7 c4-c5 Qh2-f2 c5xb6+ Ka7xb6 Qe4-e6+ Kb6-a7 Qe6-e4) 0.00/60 35} 59. Kc3 {(Kc2-c3 Qa2-a3 Kc3-d2 Kb7-a7 Qe3-c3 Qa3-d6 Qc3-e3 Ka7-b7) 0.00/40 7} Qa3 {(Qa2-a3 Kc3-d2 Qa3-b4+ Kd2-e2 Qb4-d6 Qe3-e4 Kb7-a7 Qe4-e3) 0.00/63 22} 60. Kd2 {(Kc3-d2 b6-b5 c4xb5 Qa3-b4+ Kd2-c2 Qb4xb5 Qe3-e4 Qb5-c5+ Kc2-b2 Kb7-b6 Qe4-e6+ Qc5-d6 Qe6-e4 Qd6-c5) 0.00/37 36} Qb4+ {(Qa3-b4+ Kd2-e2 Qb4-d6 Qe3-e4 Kb7-a7 Qe4-e3 Qd6-a3 Ke2-d2 Qa3-a2+ Kd2-e1 a5-a4 Qe3-e7 Qa2-a1+ Ke1-e2 Qa1-b2+ Ke2-f1 Qb2-c1+ Kf1-e2) 0.00/59 27} 61. Qc3 {(Qe3-c3 Qb4-a3 Qc3-d3 Qa3-c5 Qd3-e4 Qc5-b4+ Kd2-c2 Qb4-d6 Kc2-d1 Kb7-a7 Kd1-c2) 0.00/38 13} Qd6 {(Qb4-d6 Qc3-e3 b6-b5 Qe3-e4 b5xc4 Qe4xc4 Qd6-b6 Qc4-e4 Kb7-a7 Kd2-c3 Qb6-c5+ Kc3-d3 Qc5-c1 Qe4-d4+ Ka7-a6 Qd4-e4 Ka6-a7) 0.00/57 26} 62. Kd1 {(Kd2-d1 Qd6-c5 Kd1-d2 Qc5-d6) 0.00/38 15} Qf4 {(Qd6-f4 Qc3-d3 Qf4-d6 Qd3-e4 Kb7-a7 Kd1-c2 Qd6-a3 Qe4-e5 Ka7-b7 Qe5-e8 Qa3-d6 Kc2-d3 Qd6-f6 Qe8-e4 Kb7-a7 Qe4-e3 Qf6-f8 Kd3-c2 Ka7-b7 Qe3-e4 Kb7-b8 Qe4-e3 Kb8-a7 Kc2-d3 Ka7-b7 Qe3-e4 Kb7-b8 Kd3-e2 Kb8-a7 Qe4-e5 Qf8-c5 Qe5-c3 Ka7-b7 Qc3-d3 Kb7-b8 Qd3-e4 Kb8-a7 Qe4-d3) 0.00/61 22} 63. Qd3 {(Qc3-d3 Qf4-h2 Qd3-e4 Qh2-d6 Kd1-c2 Kb7-a7 Kc2-c3 Qd6-a3 Kc3-c2) 0.00/38 12} Kc8 {(Kb7-c8 Kd1-c2 Qf4-d6 Qd3-e4 Qd6-f6 Qe4-e8+ Kc8-b7 Qe8-e3 Qf6-d6 Kc2-d2 Qd6-a3 Kd2-e2 Qa3-a2+ Ke2-e1 Qa2-h2 Qe3-e4 Qh2-g3+ Ke1-e2 Qg3-d6 Ke2-e1 Kb7-b8 Qe4-e3 Qd6-b4+ Ke1-e2 Qb4-a3) 0.00/58 21} 64. Qe4 {(Qd3-e4 Qf4-d6 Kd1-c2 Kc8-b7 Kc2-d3 Kb7-a7 Kd3-d4 Qd6-b4 Qe4-e5 Ka7-b7 Qe5-e4 Kb7-a7) 0.00/40 36} Qf6 {(Qf4-f6 Kd1-c2 Kc8-d8 Qe4-e3 Qf6-d6 Qe3-e4) 0.00/59 26} 65. Kc2 {(Kd1-c2 Kc8-d8 Qe4-e3 Kd8-d7 Kc2-d3 Kd7-d6 Qe3-e4 Kd6-c5 Kd3-c2 b6-b5 c4xb5 Kc5xb5 Qe4-a4+ Kb5-a6 b3-b4 Qf6-b6 Kc2-c3 Qb6-e3+ Kc3-c4 Qe3-e2+ Kc4-c5 Qe2-f2+ Kc5-c4 Qf2-f1+ Kc4-c5) 0.00/38 13} Kd8 {(Kc8-d8 Qe4-e3 Qf6-d6 Qe3-e4 Qd6-f6) 0.00/60 32} 66. Qe3 {(Qe4-e3 Qf6-g6+ Qe3-e4 Qg6-d6 Qe4-f5 Qd6-e7 Kc2-d3 Qe7-b4 Kd3-d4 Qb4xb3 Qf5-f8+ Kd8-d7 Qf8-f5+) 0.00/39 12} Qd6 {(Qf6-d6 Qe3-e4 Qd6-f6 Qe4-e3 Kd8-c8 Qe3-e8+ Kc8-b7 Qe8-e4 Kb7-a7 Qe4-e3 Qf6-d6 Qe3-e4) 0.00/62 21} 67. Kc3 {(Kc2-c3 Qd6-a3 Kc3-d4 Qa3-c5+ Kd4-d3 Qc5-f8 Kd3-e4 Qf8-e8+ Ke4-d4 Qe8-f7 Kd4-e4) 0.00/38 18} Qf6+ {(Qd6-f6+ Kc3-c2 Qf6-d6 Qe3-e4 Qd6-e7 Qe4xe7+ Kd8xe7 Kc2-c3 Ke7-d6 Kc3-d4 c7-c6 d5xc6 Kd6xc6 Kd4-d3 Kc6-d7 Kd3-c3 Kd7-c7 Kc3-d3) 0.00/61 22} 68. Kc2 {(Kc3-c2 Qf6-g6+ Qe3-d3 Qg6xd3+ Kc2xd3 Kd8-d7 Kd3-e4 c7-c6 Ke4-e5 c6xd5 Ke5xd5 Kd7-c7 Kd5-e5 Kc7-c6 Ke5-d4 Kc6-d6 Kd4-d3 Kd6-c5 Kd3-c3 b6-b5 c4xb5 Kc5xb5 Kc3-d3 Kb5-c5 Kd3-c3) 0.00/40 13} Kc8 {(Kd8-c8 Qe3-e8+ Kc8-b7 Qe8-e4 Qf6-d6 Qe4-e3 Qd6-a3 Qe3-e4) 0.00/61 22} 69. Qc3 {(Qe3-c3 Qf6-d6 Qc3-d3 Qd6-c5 Qd3-e4 Qc5-f2+ Kc2-b1 Kc8-b8 Qe4-e8+ Kb8-a7 Qe8-e7 Qf2-g1+ Kb1-a2 Qg1-h2+ Ka2-a3 Ka7-b7 Qe7-e4 Qh2-g1 Ka3-b2 Kb7-a7 Qe4-e7) 0.00/38 18} Qg6+ {(Qf6-g6+ Qc3-d3 Qg6-d6 Qd3-f5+ Kc8-b8 Qf5-e4 Qd6-h2+ Kc2-c1 Qh2-a2 Qe4-e8+ Kb8-a7 Qe8-e7 Ka7-b7 Qe7-e4) 0.00/66 19} 70. Kd2 {(Kc2-d2 Qg6-d6 Kd2-e2 Qd6-a3 Ke2-d2) 0.00/37 17} Qd6 {(Qg6-d6 Qc3-d4 Qd6-a3 Qd4-c3) 0.00/57 20} 71. Qd3 {(Qc3-d3 Qd6-b4+ Kd2-c2 Kc8-b7 Qd3-e4 Qb4-d6 Kc2-d2 Kb7-b8 Kd2-c2 Qd6-h2+ Kc2-c3 Kb8-a7 Qe4-e7 Qh2-f4 Kc3-c2 Ka7-b7 c4-c5 Qf4xf3 c5-c6+ Kb7-a6 Qe7xc7 Qf3-e4+ Kc2-c3 Qe4-e3+ Kc3-c2) 0.00/39 11} Qh2+ {(Qd6-h2+ Kd2-c3 Qh2-f4 Qd3-e2 Qf4-f6+ Kc3-c2 Qf6-f8 Qe2-e4 Qf8-d6 Qe4-e8+ Kc8-b7 Qe8-e4 Kb7-a7 Kc2-d2 Qd6-a3 Qe4-e5 Ka7-b7 Qe5-e4 Qa3-b2+ Kd2-e1 Qb2-c3+ Ke1-e2 Kb7-a7 Qe4-e7 Qc3-c2+ Ke2-e1 Qc2-c1+ Ke1-e2 Qc1-c2+) 0.00/61 20} 72. Ke1 {(Kd2-e1 Qh2-g3+ Ke1-e2 Qg3-d6 Ke2-e3 Kc8-b7 Qd3-e4 Kb7-a7 Ke3-d4 Qd6-c5+ Kd4-e5 b6-b5 c4xb5 Qc5-e7+ Ke5-f5 Qe7-f7+ Kf5-e5) 0.00/39 21} Qf4 {(Qh2-f4 Qd3-e4 Qf4-d6 Ke1-d2 Kc8-b7 Kd2-c2 Kb7-a7 Qe4-e3 Qd6-g6+ Qe3-e4 Qg6-f6 Qe4-h7 Ka7-b7 Qh7-e4 Qf6-d6 Qe4-e8 Qd6-h2+ Kc2-d3 Qh2-b2 Qe8-c6+ Kb7-b8 Qc6-e8+) 0.00/64 20} 73. Kd1 {(Ke1-d1 Qf4-e5 Qd3-e4 Qe5-b2 d5-d6 Qb2xb3+ Kd1-e2 Qb3-b2+ Ke2-f1 Qb2-c1+ Kf1-e2) 0.00/38 45} Qf8 {(Qf4-f8 Kd1-c2 Qf8-d6 Kc2-c1 Qd6-a3+ Kc1-c2) 0.00/57 19} 74. Kd2 {(Kd1-d2 Kc8-b7 Qd3-e4 Kb7-a7 Kd2-e2 Qf8-a3 Qe4-d3 Qa3-e7+ Ke2-f1 Qe7-c5 Kf1-e2) 0.00/40 17} Qa3 {(Qf8-a3 Kd2-c2 Qa3-a2+ Kc2-c1 Qa2-a1+ Kc1-c2) 0.00/60 27} 75. Ke3 {(Kd2-e3 Qa3-d6 Qd3-f5+ Kc8-b7 Qf5-e4 Kb7-a7 Ke3-e2 Qd6-a3 Qe4-d3 Ka7-b7 Ke2-e3 Qa3-b2 Ke3-e4 Qb2-f6 Ke4-e3 Qf6-f4+ Ke3-e2 Qf4-h2+ Ke2-f1 Kb7-a7 Qd3-e4 Qh2-h1+ Kf1-f2 Qh1-d1 Qe4-e5 Ka7-b7 Qe5-e4) 0.00/39 15} Kb7 {(Kc8-b7 Ke3-e2 Qa3-b2+ Ke2-f1 Qb2-a1+ Kf1-e2 Qa1-a3 Qd3-e4 Qa3-b2+ Ke2-e1 Qb2-c3+ Ke1-f2 Kb7-a7 Qe4-e7 Qc3-d4+ Kf2-g2 Qd4-d2+ Kg2-f1 Qd2-d3+ Kf1-f2) 0.00/57 20} 76. Ke4 {(Ke3-e4 Qa3-e7+ Ke4-d4 Qe7-f6+ Kd4-e3 Qf6-e5+ Qd3-e4 Qe5-c3+ Ke3-f2 Qc3-d2+ Kf2-f1 Kb7-a7 Qe4-e7 Qd2-f4 Kf1-g2 Ka7-b7 Qe7-e4 Qf4-d6 Qe4-d4 Qd6-b4 Qd4-e4) 0.00/40 14} Qe7+ {(Qa3-e7+ Ke4-d4 Qe7-f6+ Kd4-e3 Qf6-f4+ Ke3-e2 Qf4-h2+ Ke2-d1 Qh2-b2 Kd1-e1 Qb2-c1+ Ke1-e2 Qc1-a3 Ke2-d2 Qa3-a2+ Kd2-e3 Qa2-h2 Qd3-e4 Kb7-a7 Qe4-e7 Qh2-g3 Ke3-e2 Qg3-g2+ Ke2-e1 Qg2-h2 Qe7-e3 Qh2-g3+ Ke1-d2 Qg3-d6 Kd2-e2 Qd6-a3 Ke2-f2 Ka7-b7 Qe3-e4 Qa3-c5+ Kf2-e2 Qc5-d6 Ke2-d3 Kb7-a7 Qe4-e3) 0.00/66 18} 77. Kd4 {(Ke4-d4 Qe7-f6+ Kd4-e3 Qf6-e5+ Qd3-e4 Qe5-c3+ Ke3-f2 Qc3-d2+ Kf2-f1 Kb7-a7 Qe4-e7 Qd2-f4 Kf1-g2 Qf4-d6 Qe7-e8 Ka7-b7 Qe8-e4 Kb7-b8 Qe4-e3 Qd6-f6 Kg2-g3 Kb8-b7 Qe3-e4 Kb7-a6 Qe4-e8 Qf6-d6+ Kg3-g2) 0.00/40 7} Qf6+ {(Qe7-f6+ Kd4-e3 Qf6-f4+ Ke3-e2 Qf4-h2+ Ke2-d1 Qh2-b2 Kd1-e1 Qb2-c1+ Ke1-e2 Qc1-a3 Ke2-d2 Qa3-a2+ Kd2-e3 Qa2-h2 Qd3-e4 Kb7-a7 Qe4-e7 Qh2-g3 Ke3-e2 Qg3-g2+ Ke2-e1 Qg2-h2 Qe7-e8 Qh2-g1+ Ke1-e2 Ka7-b7 Qe8-c6+ Kb7-b8 Qc6-e8+ Kb8-a7 Qe8-e3 Qg1-h2+ Ke2-d3 Qh2-b2 Kd3-e4 Qb2-b1+ Qe3-d3 Qb1-b2) 0.00/61 18} 78. Ke3 {(Kd4-e3 Qf6-e5+ Qd3-e4 Qe5-c3+ Ke3-f2 Kb7-a7 Qe4-e8 Qc3-d2+ Kf2-g3 Qd2-c1 Kg3-f2 Ka7-b7 Qe8-c6+ Kb7-c8 Qc6xh6 Qc1-d2+ Kf2-f1 Qd2-d1+ Kf1-g2 Qd1xb3 Qh6-e6+ Kc8-b8 Qe6-e8+ Kb8-a7 d5-d6 Qb3-b2+ Kg2-g3 Qb2-c1 d6-d7 Qc1-g1+ Kg3-h3 Qg1-f1+ Kh3-g3 Qf1-g1+) 0.00/40 4} Qf4+ {(Qf6-f4+ Ke3-e2 Qf4-h2+ Ke2-d1 Qh2-b2 Kd1-e1 Qb2-c1+ Ke1-e2 Qc1-a3 Ke2-d2 Qa3-a2+ Kd2-e3 Qa2-h2 Qd3-e4 Kb7-a7 Qe4-e8 Qh2-d6 Ke3-e2 Qd6-f6 Qe8-e3 Qf6-b2+ Ke2-f1 Qb2-c2 Kf1-e1 Qc2-b1+ Ke1-f2 Qb1-a2+ Kf2-g3 Qa2-a3 Kg3-f2) 0.00/62 18} 79. Ke2 {(Ke3-e2 Qf4-h2+ Ke2-d1 Qh2-g1+ Kd1-d2 Qg1-f2+ Kd2-d1) 0.00/40 7} Qe5+ {(Qf4-e5+ Qd3-e3 Qe5-h2+ Ke2-e1 Qh2-d6 Ke1-e2 Kb7-a7 Ke2-d1 Qd6-a3 Kd1-c2 Qa3-f8 Qe3-e4 Qf8-c5 Kc2-b2 Qc5-f2+ Kb2-c1 Qf2-g1+ Kc1-c2 Qg1-h2+ Kc2-c3 Qh2-d6 Kc3-c2 Qd6-h2+) 0.00/59 21} 80. Qe4 {(Qd3-e4 Qe5-d6 Ke2-e1 Qd6-b4+ Ke1-f2 Qb4-d2+ Kf2-g3 Qd2-d1 Kg3-g2 Qd1-d2+) 0.00/39 11} Qb2+ {(Qe5-b2+ Ke2-f1 Qb2xb3 d5-d6+ Kb7-a7 d6xc7 Qb3-d1+ Kf1-f2 Qd1-d2+ Kf2-f1 Qd2-d1+) 0.00/66 37} 81. Kf1 {(Ke2-f1 Kb7-a7 Qe4-d3 Qb2-a3 Kf1-e2 Ka7-b7 Qd3-e4 Qa3-d6 Ke2-f2 Kb7-a7 Kf2-g2 Qd6-c5 Qe4-e1 Ka7-b7 Qe1-e4 Kb7-a7) 0.00/38 16} Qc1+ {(Qb2-c1+ Kf1-g2 Qc1-d2+ Kg2-g3 Kb7-a6 Qe4-e8 Qd2-f4+ Kg3-f2 Ka6-a7 Qe8-e3 Qf4-d6 Kf2-f1 Qd6-c5 Qe3-c3 Qc5-a3 Qc3-e5 Ka7-b7 Qe5-e4) 0.00/57 36} 82. Kg2 {(Kf1-g2 Kb7-a7 Qe4-e8 Qc1-d2+ Kg2-f1 Qd2-f4 Kf1-e2 Qf4-h2+ Ke2-f1 Qh2-c2) 0.00/38 8} Qd2+ {(Qc1-d2+ Kg2-h3 Qd2-c1 Kh3-g2) 0.00/60 15} 83. Kh3 {(Kg2-h3 Qd2-d1 Kh3-g3 Qd1-g1+ Kg3-h3 Qg1-h1+ Kh3-g3) 0.00/40 6} Qc1 {(Qd2-c1 Kh3-g2 Kb7-a7 Qe4-e5 Qc1-d2+ Kg2-h3 Ka7-b7 Qe5-e4) 0.00/59 40} 84. d6+ {(d5-d6+ Kb7-a7 d6xc7 Qc1-f1+ Kh3-h2 Qf1-f2+ Kh2-h1 Qf2-f1+) 0.00/40 18} Ka7 {(Kb7-a7 d6xc7 Qc1-h1+ Kh3-g3 Qh1-g1+ Kg3-h3) 0.00/59 84} 85. dxc7 {(d6xc7 Qc1-f1+ Kh3-h2 Qf1-f2+ Kh2-h1 Qf2-f1+) 0.00/40 10} Qh1+ {(Qc1-h1+ Kh3-g3 Qh1-g1+ Kg3-h3 Qg1-h1+) 0.00/84 24} 86. Kg3 Qg1+ {(Qh1-g1+ Kg3-h3 Qg1-h1+ Kh3-g3) 0.00/69 3} 87. Kh3 Qh1+ {(Qg1-h1+ Kh3-g3 Qh1-g1+ Kg3-h3 Qg1-h1+) 0.00/73 11} 88. Kg3 Qg1+ {(Qh1-g1+ Kg3-h3 Qg1-h1+) 0.00/72 17} 89. Kh3 Qh1+ {(Qg1-h1+) 0.00/74 11 3-fold repetition} *[/pgn]
Last edited by Chessqueen on Fri Jan 26, 2024 2:10 pm, edited 1 time in total.
Russian believe that they are special, that they can Kill thousands of Ukranian civilians, but cry like babies when a few Russian...
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: About Obsidian

Post by mvanthoor »

Gabor Szots wrote: Fri Jan 26, 2024 1:57 pm It's been my opinion for a long time now that if a very strong engine pops up, developed for some time then abandoned, then it is a clone (sorry, a derivative) with nothing original in it. The author simply abandons it because he has implemented everything there was for the taking and has no ideas of his own.
It's not only with regard to ideas of one's own. It's also about understanding, documentation, time, and testing.

- Understanding: sometimes it takes me WEEKS to understand a topic/concept in enough detail to be able to implement it myself, without looking at other people's code, using my own programming knowledge. Sometimes the implementation changes 2-3 times because I either didn't understand something 100% properly, or I found some nifty feature in Rust that makes the implementation better/faster/whatever.

- Documentation: The knowledge to write a classical alpha/beta engine with handcrafted evaluation is there (it has been for over 50 years), but the documentation and sample code is often old and splintered all over the internet, stuck in forums and news-group posts that are often decades old. We even have to go back in time with the WayBack machine to unearth some of the most useful information (Bruce Moreland's site, for example). This was one of the big reasons for writing Rustic, so I would be able to also write https://rustic-chess.org/. To do so, I'd obviously need to understand each subject in detail, or I wouldn't be able to explain it. (The book has had some big additions the last few days by the way.) The goal of this website is to document every part of the engine and concept used in such a way that someone could write a chess engine in ANY language, by using only a text-editor, compiler, and rustic-chess.org.

- Time. Studying the concepts, writing the code, and testing all of it takes time. Having a full-time job and other things to do beside chess programming this leaves me with a few hours for research, coding, testing and documenting per week, tops. I understand that there are people who have more time to put into chess programming than I do, but I just can't believe you can research, code, test and document a 3500-level chess engine in mere weeks (or even 3 months or so).

- Testing. This not only takes time, but the stronger the engine becomes, it also takes re-writes of the code or re-implementing features because they turn out to not work 100% correctly. And as I always say: you can't move on to the next feature before the previous one is perfect. The last case in point we have seen is Tcheran: an engine written in Rust (very good code-base and easy to understand), but in my first test I found 3 bugs just by observing the engine and _knowing_ that for the feature set it had, it wasn't strong enough. I gave the author pointers to where the bugs would probably be (and those pointers were correct), the author fixed the bugs, and the engine jumped +200 Elo. Other engines I've done the same were Blunder, Loki, early versions of MinimalChess, Walleye, and maybe more that I don't even remember. I deem it impossible to get ALL steps of a 3500 Elo engine tested in mere weeks if you are writing code from scratch without extensively looking at other people's code.

I'm now in the process of writing the Texel tuner for Rustic. After this is finished, the only addition to the engine will be tapered and tuned PSQT's, which will probably boost playing strength by +250 Elo (~2050 in the current CCRL Blitz list). The next few steps (null move and such) will boost playing strength by another +200 points: look at the current version of Tcheran to get an almost-preview of Rustic 5's performance.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
Frank Quisinsky
Posts: 6831
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: About Obsidian

Post by Frank Quisinsky »

Andreas,
"Meme" ... never heard of it.
OK understand, but such people you have written we have for 25 years in chess fora. Thinking in the past about my own forum. We had more than 900 members, more than TalkChess had at that time, and various admins from other "bigger fora" are members with fantasy names and try to make problems every time. We live with it because most important is ... we have the same hobby and different opinion to this and that.

Coner,
"Open-Bench" ... oh yes, I fogort it in the last year.
Is also very new. Same as Discord, maybe not older than 4 years?
All what is not older as 10 years is very new.
I think you are very young and therefore your reaction is quite clear to me.

Jamie,
Ha, my dad got that answer from me so many years ago. I am more the revolution in young years and my father has no understanding. But I learn from him that a new way is not bad because he never says no to new things that I like. More or less he does not go new ways, but he never gave a no to it. I think I go with new technology, have to do it for another reason for the IT jobs I made ... not for my current job. Believe me, the point comes when you have no fun with a new PC, a new TV, a new mobile phone. To many years to do with it. I explain him (my vather) why a McDonnell Douglas DC-10 is interesting to me. End of the day he explain me why a McDonnell Douglas DC-3 is much more interesting. OK, today I like more to see the DC-3 as the DC-10.

:-)

Right is ...
Never get into a fight with younger people, they are usually stupidly right for such topics.
My problem is more, I have so many things on my todo and all this need a lot of time. Sure, a todo younger people are faster ready as I. Think so ... That need again a lot of time (Discord, Facebook and other things), and if I am sitting on my PC I have enough to do in chess with answering of all the mails I get.

Best
Frank

And to the topic Obsidian:
Let the programmer make his job and if he have fun with it ... all is fully OK because that is most important.
JacquesRW
Posts: 113
Joined: Sat Jul 30, 2022 12:12 pm
Full name: Jamie Whiting

Re: About Obsidian

Post by JacquesRW »

mvanthoor wrote: Fri Jan 26, 2024 2:43 pm - Understanding: sometimes it takes me WEEKS to understand a topic/concept in enough detail to be able to implement it myself, without looking at other people's code, using my own programming knowledge. Sometimes the implementation changes 2-3 times because I either didn't understand something 100% properly, or I found some nifty feature in Rust that makes the implementation better/faster/whatever.
There is quite literally not a single technique in developing an alpha/beta engine that takes weeks to understand.
mvanthoor wrote: Fri Jan 26, 2024 2:43 pm but I just can't believe you can research, code, test and document a 3500-level chess engine in mere weeks (or even 3 months or so).
You can, the most time consuming parts of developing a 3500-level chess engine is testing and data generation, by simply skipping the data generation (i.e. by using Lc0 data, as Obsidian does, which is also, annoyingly, much better than self-generated data anyway) you massively cut down on the time and compute required - and what really is imposing self-generated data other than an arbitrary restriction for the sake of "originality", with no real effect on your "understanding".

As for the search, if you join the various engine-related discord and ask for help, you'll most likely be pointed to the "connorpasta":

Code: Select all

A reasonable search feature progression (starting with vanilla TT (sorting TT move first), PVS, QS and aspiration windows which are all pretty fundamental) imo is: NMP, LMR (log formula is most principled ~ there are a number of adjustments you can experiment with), static NMP (aka RFP), 
butterfly history heuristic, LMP, futility pruning, CMH+FMH, QS SEE pruning, PVS SEE pruning (captures and quiets), QS delta pruning, history pruning, capture history heuristic, singular extensions, multicut (using singular search result).
(with a healthy amount of parameter tweaking after each addition)
Idk if I'm missing anything major. Those search heuristics constitute the vast majority of the Elo you'll find in any top engine, though the details of the implementation are very important.
Note that this doesn't just serve everything up on a plate, but it gives a roadmap to follow however you wish, and these really do make up the majority of an engine's elo (search-wise).
mvanthoor wrote: Fri Jan 26, 2024 2:43 pm you can't move on to the next feature before the previous one is perfect.
This is silly. The second you add any other features on top of your "perfected" current feature set, its no longer perfect. There's an abundance of evidence for this, e.g: https://chess.swehosting.se/test/4440/ and https://chess.swehosting.se/test/4437/ in my own engine.
Frank Quisinsky
Posts: 6831
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: About Obsidian

Post by Frank Quisinsky »

Ah, means we life with it (not live with it).
Shit English ... sorry, never I learn it.

Best
Frank
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: About Obsidian

Post by mvanthoor »

JacquesRW wrote: Fri Jan 26, 2024 4:09 pm There is quite literally not a single technique in developing an alpha/beta engine that takes weeks to understand.
Have you tried explaining something as "simple" as alpha/beta to someone on the basis of a code snippet and WHY the code snippet actually works? Try it. You may find it harder than you think. Many techniques in the chess engine world took YEARS to develop and understand back in the 70's. People have written Ph.D.'s on those techniques. I aim to understand techniques at, or close to that level so I can then explain them in simpler terms, in such a way that they can be even understood by chess players and non-programmers if they so desire. Understanding a technique at the 'just enough to implement' is not good enough.
You can, the most time consuming parts of developing a 3500-level chess engine is testing and data generation, by simply skipping the data generation (i.e. by using Lc0 data, as Obsidian does, which is also, annoyingly, much better than self-generated data anyway) you massively cut down on the time and compute required - and what really is imposing self-generated data other than an arbitrary restriction for the sake of "originality", with no real effect on your "understanding".
Of course you can just take shortcuts. You either write a chess engine from scratch and understand every single line you wrote and why it works and you generate your own data and run your own tests, or you just (re-)implement the techniques and be done with it. And as far as I can see, there are lots of people doing the latter, because there's more than one 3400-3500+ engine that's suddenly popped up and has little or no development afterwards.
As for the search, if you join the various engine-related discord and ask for help, you'll most likely be pointed to the "connorpasta":
I found out about that roadmap/progression for myself, because I understand the techniques and what they do. And yes, you can just copy that list, find the relevant CPW page and if needed some code some engine, so you can add many techniques to your engine in a very short time. Where's the fun in that? In that case you're just doing busy-work, IMHO. It doesn't guarantee that you understand them well enough to be able to explain them to others, and THAT is what I am aiming for.

If I just wanted to have a very strong engine in the shortest amount of time, I could have quit after "hello world" in Rust and re-implement Stockfish's move generator, search, and ev... wait. Damn. It has already been done. Twice.
This is silly. The second you add any other features on top of your "perfected" current feature set, its no longer perfect. There's an abundance of evidence for this, e.g: https://chess.swehosting.se/test/4440/ and https://chess.swehosting.se/test/4437/ in my own engine.
With perfect, I mean bug-free. As I said, I have assisted more than one engine to boost its strength by +200 and once even +500 points by eliminating bugs in existing features.

=====================

In short: You just can't convince me that it is possible to write a chess engine from scratch in a few weeks starting from 0 knowledge unless you cut _a lot_ of corners.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
j.t.
Posts: 252
Joined: Wed Jun 16, 2021 2:08 am
Location: Berlin
Full name: Jost Triller

Re: About Obsidian

Post by j.t. »

How long it takes to understand something depends on how much time you have, how much help you get, and what you mean with “understanding”.

It will take you longer to develop a good understanding of a topic, if you have to work and/or have young kids, etc., than if you are on semester break and have nothing else to do.

It will take much longer if you want to develop search techniques yourself, than if you look them up on CPW or some pasta. It will take you longer to make a technique work if you get told only the concept, than if you can follow a specific implementation (because a lot of time, it really depends on a few details to make something work or fail).

If with “understanding” you only mean to be able to implement and SPRT it, you'll be faster than if you want to actually get the idea of something. And it will take you even longer to get a solid understanding/intuition, how a specific method interacts with other features in your search, or why this works but that doesn't, even if they both sound like good ideas.

I think most of this disagreement boils down to having different goals.
I have to admit myself, I sometimes notice a flicker of jealousy if I see another engine overtaking me in less than one year, while I've been pondering on my stuff for 8 years (oh shit oh shit that's longer than I had in mind). But this doesn't need to feel like a competition between people, the only way this would make even sense is if you were seriously trying to beat Stockfish.

Tbh I don't even mind Stockfish clones with questionable additions, as long as nobody claims the work of someone else for themselves.
connor_mcmonigle
Posts: 544
Joined: Sun Sep 06, 2020 4:40 am
Full name: Connor McMonigle

Re: About Obsidian

Post by connor_mcmonigle »

mvanthoor wrote: Fri Jan 26, 2024 5:19 pm In short: You just can't convince me that it is possible to write a chess engine from scratch in a few weeks starting from 0 knowledge unless you cut _a lot_ of corners.
I think I agree with this sentiment despite disagreeing with much of what you've said (i.e, many top engine devs understand alpha-beta pruning/PVS, MTD(f), and the many associated search heuristics at a very deep level as a deep, intuitive understanding is really what's required to push the envelope). I also take issue with the notion that all search heuristics were developed by researchers as this is just patently false. Many of the heuristics you'll find in top engines originated a random developer following their intuition and trying a random idea that popped into their head - the process is much more organic than you seem to suggest.

Regarding Obsidian, I've not actually inspected the code too thoroughly, but seemingly neither has the OP given they didn't provide any meaningful evidence supporting their accusations. As far as I can tell, Obsidian doesn't really do anything particularly novel in regards to search nor it's network topology. It's outlier rating for such a new project can be attributed to using Lc0 data. Take away the ~70-100 Elo afforded by training on Lc0 data and the picture starts to look less preposterous. That's still incredibly fast progress, but as you mention, implementing a search heuristic doesn't actually require understanding and, at this point, there exist many very similar engines in the relevant strength range which follow more or less the same blueprint.