New engine "Roc"

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

Moderators: hgm, Rebel, chrisw

stuwph
Posts: 28
Joined: Sun Dec 30, 2012 6:37 am

Re: New engine "Roc"

Post by stuwph »

trying to compile ROC with VS2017 only fails due to an error in line 58:

Severity Code Description Project File Line Suppression State
Error C2198 'unsigned int (__cdecl *)(uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,unsigned int,unsigned int,unsigned int,bool,unsigned int *)':
too few arguments for call Roc C:\ROC\Roc.cpp 58

can someone verify?
THyer
Posts: 40
Joined: Fri Jul 22, 2016 7:51 pm

Re: New engine "Roc"

Post by THyer »

That line is a template forwarding function. Can you find the line of the template instantiation? You can reach me directly at teamhyer at yahoo dot com.
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
stuwph
Posts: 28
Joined: Sun Dec 30, 2012 6:37 am

Re: New engine "Roc"

Post by stuwph »

think it is line 46:

template<class F_, typename... Args_> int TBProbe(F_ func, bool me, const Args_&&... args)

with the error "too few arguments to call" in line 58:

(me == White), std::forward<Args_>(args)...);
Tony P.
Posts: 216
Joined: Sun Jan 22, 2017 8:30 pm
Location: Russia

Re: New engine "Roc"

Post by Tony P. »

The non-HNI* binary of Roc 0.9 crashes instantly when I try to install it as a UCI engine in Arena 3.5.1 build 2861 under Windows 7 Home Premium x64.

* I have to use non-HNI builds because my Intel Core i7-2600QM is a Sandy Bridge and supports POPCNT but not BMI2.

The 0.9 binary can install itself as a Winboard engine, but then it still won't analyse (does nothing when started).

When I install the binary in Babaschess 4.0 build 12274, either as a UCI or Winboard engine, and attempt to analyse the starting position with it, it opens 8 empty Windows Terminal windows (with Roc_0_9_x64.exe in the title) and does nothing else.

I haven't yet tried to compile a binary from the 0.9 source. I'm using the non-HNI binary of Roc 0.8 for now, which works correctly with Arena.

Anyway, what I wanted to address is Roc's time management - Roc 0.8 seems to play too fast, in particular, to play a move from the PV instantly without recalculation if the opponent plays a move from the PV calculated by Roc on the previous move.

This can sometimes backfire, as in the below example, where, at move 28, having 1:34 on the clock vs Fizbo's 1:16 (the time control was 3 min + 3 sec inc.), Roc searched to base depth 15 only. It played the correct 28... hxg5, but the problem was that its PV included 28... hxg5 29. Qxg5 b5?? because of the horizon effect (it was expecting White to play 30. cxb6, thinking that 30. Rd3 would lead to an equal position). After Fizbo 1.9 predictably recaptured on g5, Roc played the 29... b5?? from the PV of the previous move.

[pgn][Event "Computer chess game"]
[Date "2017.09.12"]
[White "Fizbo19x64"]
[Black "Roc_0_8_x64"]
[Result "1-0"]
[ECO "C15"]
[Opening "French"]
[Time "04:40:36"]
[Variation "Winawer, 4.Bd3 dxe4 5.Bxe4 Nf6"]
[TimeControl "180+3"]
[Termination "normal"]
[PlyCount "76"]
[WhiteType "program"]
[BlackType "program"]

1. e4 e6 2. d4 d5 3. Nc3 Bb4 4. Bd3 dxe4 5. Bxe4 Nf6 6. Bg5 Nbd7 7. Ne2 h6
8. Bxf6 {(8.Bxf6 Nxf6 9.Bf3 0-0 10.0-0 Re8 11.Ne4 Nxe4) -0.35/15 5} Nxf6
{(8. ... Nxf6 9.0-0 0-0 10.Bf3 c6 11.Ng3 Qb6 12.Na4 Qa5 13.c3 Bd6 14.b4 Qd8
15.Nc5 a5) +0.25/13 2} 9. Bf3 {(9.Bf3 c5 10.Qd3 Qa5 11.a3 cxd4 12.Qxd4 Be7)
-0.45/15 8} O-O {(9. ... 0-0 10.Qd3 c6 11.0-0-0 Re8 12.Ne4 Nxe4 13.Bxe4 e5
14.dxe5 Qa5 15.f4 Qxa2 16.c3 Bc5 17.h4 Bg4 18.Bf3) +0.27/15 10} 10. O-O
{(10.0-0 c6 11.Ng3 Be7 12.Nce4 Qb6 13.Nxf6+ Bxf6) -0.46/16 13} c6 {(10. ...
c6 11.Qd3 Bd6 12.Rfe1 Qb6 13.a4 e5 14.a5 Qc7 15.d5 cxd5 16.Nxd5 Nxd5
17.Bxd5 Bb4 18.c3 Bxa5 19.Qe4 Bb6 20.Ng3 Re8 21.Rad1) +0.26/17 13} 11. Qd3
{(11.Qd3 Qb6 12.Ne4 Nxe4 13.Qxe4 Be7 14.b3 Bd7) -0.42/15 15} Qb6 {(11. ...
Qb6 12.Rad1 Be7 13.Na4 Qa5 14.Nac3 Rd8 15.Nc1 Qc7 16.Rfe1 a5 17.Qe3 Qb6
18.Nb3 a4) +0.26/16 20} 12. h3 {(12.h3 Bd6 13.Rab1 Qc7 14.Ne4 Nxe4 15.Bxe4
Rd8) -0.45/16 13} Rd8 {(12. ... Rd8 13.a3 Be7 14.Rfd1 Qc7 15.Re1 c5 16.Qe3
Bd7 17.d5 Bd6 18.dxe6 Bxe6 19.Nb5 Qb6 20.Nec3 Bf5 21.Nxd6 Rxd6 22.Na4)
+0.30/16 16} 13. Ne4 {(13.Ne4 Be7 14.a4 a5 15.Nd2 Qc7 16.Nc4 Bd7) -0.49/16
12} Nxe4 {(13. ... Nxe4 14.Qxe4 Bd6 15.a4 e5 16.a5 Qc7 17.a6 bxa6 18.Rfd1
Bb7 19.dxe5 Bxe5 20.c3 Rab8 21.Rxd8+ Rxd8 22.Qe3 Qa5 23.Re1 Qb5 24.b4 a5
25.Nf4 Bc7) +0.29/15 11} 14. Qxe4 {(14.Qxe4 Be7 15.b3 Bd7 16.c4 Be8 17.c5
Qc7) -0.50/16 9} Bd6 {(14. ... Bd6 15.a4 e5 16.a5 Qc7 17.a6 bxa6 18.Rfd1
Bb7 19.dxe5 Bxe5 20.c3 Rab8 21.Rxd8+ Rxd8 22.Qe3 Qa5 23.Re1 Qb5 24.b4 a5
25.Nf4 Bc7) +0.29/16 2} 15. c4 {(15.c4 Qxb2 16.a4 Qd2 17.c5 Bc7 18.h4 Qa5)
-0.66/15 16} Qxb2 {(15. ... Qxb2 16.Qd3 Qb4 17.Rab1 Qa5 18.Qc3 Qg5 19.Rfd1
Rb8 20.Qe3 Bd7 21.Qxg5 hxg5 22.Rb3 b5 23.c5 Bc7) +0.84/13 1} 16. Rfd1
{(16.Rfd1 Bc7 17.Ng3 e5 18.Rab1 Qxa2 19.d5 cxd5) -0.88/16 7} Bc7 {(16. ...
Bc7 17.Qd3 Qb4 18.Rab1 Qd6 19.Ng3 Rb8 20.c5 Qf4 21.Rb4 e5 22.Ne2 Qg5)
+0.92/14 3} 17. Ng3 {(17.Ng3 Bxg3 18.fxg3 Bd7 19.Qe3 Be8 20.a3 Qc2)
-0.93/17 9} Rb8 {(17. ... Rb8 18.Qe3 b5 19.c5 Bb7 20.Qb3 Qxb3 21.axb3 a5
22.Ne2 Rd7 23.g3 Rbd8 24.Kg2 g6 25.Rh1 Kg7 26.h4 e5 27.dxe5 Re8) +1.03/15
8} 18. Qh4 {(18.Qh4 Kf8 19.Qe4 Bxg3 20.fxg3 Kg8 21.c5 Bd7) -0.52/17 6} Rd7
{(18. ... Rd7 19.Qe4 Qc3 20.c5 Rd8 21.a4 e5 22.Rac1 Qb4 23.dxe5 Rxd1+
24.Bxd1 Qxe4 25.Nxe4 Bxe5 26.Bg4) +1.01/14 9} 19. c5 {(19.c5 Qc2 20.Be4 Qc3
21.Bf3 Qb2) +0.01/16 6} f5 {(19. ... f5 20.Qh5 Rf7 21.Rab1 Qc2 22.a4 Bd7
23.Rbc1 Qa2 24.Ra1 Qc4 25.Rac1 Qb3 26.Rb1 Qc3 27.Rbc1 Qb2 28.Rb1 Qc2)
+1.12/16 7} 20. Rab1 {(20.Rab1 Qxa2 21.Qh5 Rf7 22.Qg6 Bd7 23.Ra1 Qc2)
-0.27/15 8} Qa3 {(20. ... Qa3 21.Qh5 Re7 22.Qh4 Rf7 23.Rd2 Bd7 24.Kh1 Kh7
25.Ne2 b6 26.Rbd1 g6 27.Nf4) +1.03/16 12} 21. Nh5 {(21.Nh5 Qxa2 22.Ra1 Qc4
23.Rac1 Qa4 24.Ra1 Kh7) -0.24/16 13} Qa4 {(21. ... Qa4 22.Ng3 Kh7 23.Ne2 e5
24.Qh5 g6 25.Qh4 e4 26.Nc3 Qa5) +1.65/12 1} 22. g4 {(22.g4 Rf7 23.g5 hxg5
24.Qxg5 Qxa2 25.Nf4 Bxf4) -0.39/16 6} Qa3 {(22. ... Qa3 23.Rb3 Qxa2 24.Rbd3
f4 25.g5 e5 26.gxh6 Bd8 27.Qg4) +1.58/12 2} 23. Rb3 {(23.Rb3 Qxa2 24.Rbd3
fxg4 25.hxg4 Rf7 26.g5 hxg5) -0.12/17 8} Qxa2 {(23. ... Qxa2 24.Rbd3 fxg4
25.hxg4 Rf7 26.R3d2 g5 27.Qh1 Qa4 28.Qg2 Bd7 29.Be4 Ba5 30.Bg6 Bxd2
31.Bxf7+ Kxf7 32.Rxd2 Qa1+ 33.Kh2) +1.18/13 4} 24. Rbd3 {(24.Rbd3 fxg4
25.hxg4 Rf7 26.g5 hxg5 27.Qxg5 Qc2) -0.59/18 13} fxg4 {(24. ... fxg4
25.hxg4 Rf7 26.R3d2 g5 27.Qh1 Qb3 28.Be4 Bd7 29.Rd3 Qb2 30.R3d2 Qa3 31.Rd3
Qb2) +0.95/14 14} 25. hxg4 {(25.hxg4 Rf7 26.g5 hxg5 27.Qxg5 Qc2 28.Qe3 Bd7)
-0.09/19 9} Rf7 {(25. ... Rf7 26.R3d2 Qa5 27.Be4 Bd8 28.Qh3 b5 29.Bxc6 b4
30.Be8 Rf8 31.Bg6 Bd7 32.Be4 Bg5 33.Rb2 Qc7 34.Qb3 a5) +0.98/15 14} 26.
R3d2 {(26.R3d2 Qc4 27.Be4 e5 28.Bg6 Rf8 29.Qe7 Rf7) +0.01/19 4} Qb3 {(26.
... Qb3 27.Be4 g5 28.Qh1 Bd7 29.Rd3 Qc2 30.R3d2 Qc4 31.Bg6 Rff8 32.Ng3 Kg7
33.Bd3 Qd5 34.Be4 Qb3 35.Bd3 Bxg3 36.fxg3 Qd5 37.Be4 Qc4 38.Bc2 Rf6 39.Qe4
Rh8 40.Rb1 Bc8 41.Qe5 Rhf8 42.Be4 Kg8 43.Kh1 Bd7) +0.88/15 8} 27. Be4
{(27.Be4 e5 28.dxe5 Be6 29.Bg6 Rbf8 30.Bxf7+ Rxf7) -0.24/18 4} Bd7 {(27.
... Bd7 28.g5 hxg5 29.Qxg5 a5 30.Bg6 Rbf8 31.Rb1 Qh3 32.Qg2 Qxg2+ 33.Kxg2
Re7 34.Rxb7 Be8 35.Bxe8 Rfxe8 36.Ra7 Kf7 37.Rb2 Bd8 38.Ra8 Rd7 39.Rd2)
+0.54/15 10} 28. g5 {(28.g5 Rbf8 29.gxh6 gxh6 30.Rb1 Qc4 31.Bg6 Rf3)
+1.00/17 4} hxg5 {(28. ... hxg5 29.Qxg5 b5 30.cxb6 Rxb6 31.Bg6 Qf3 32.Bxf7+
Qxf7 33.Ng3 Rb5 34.Qg4 e5 35.Qe4 Rb4 36.Qe3 Bg4 37.Re1 Be6 38.Qa3 Rxd4
39.Rxd4 exd4 40.Qxa7 Bxg3 41.Qxf7+ Kxf7 42.fxg3 Kf6) +0.42/15 6} 29. Qxg5
{(29.Qxg5 Qh3 30.f3 Kf8 31.Bg6 Re7 32.f4 Qe3+) +0.07/18 5} b5 {(29. ... b5
30.cxb6 Rxb6 31.Bg6 Qf3 32.Bxf7+ Qxf7 33.Ng3 Rb5 34.Qg4 e5 35.Qe4 Rb4
36.Qe3 Bg4 37.Re1 Be6 38.Qa3 Rxd4 39.Rxd4 exd4 40.Qxa7 Bxg3 41.Qxf7+ Kxf7
42.fxg3 Kf6) +0.42/14} 30. Rd3 {(30.Rd3 Qc2 31.Rf1 Qb2 32.Qg6 Be8 33.Qh7+
Kf8) +3.43/18 12} Qa4 {(30. ... Qa4 31.Qg6 Kf8 32.Qh7 Ke7 33.Bg6 Rbf8
34.Bxf7 Rxf7 35.Nxg7 Qa2 36.Qh4+ Kf8 37.Nh5 Qd5 38.Nf6 Qf5 39.Nxd7+ Rxd7
40.Qh8+ Kf7 41.Kf1 Rd8 42.Qh1 Rd5 43.Qh4) -0.61/15 4} 31. Kg2 {(31.Kg2 Rbf8
32.Kh1 Rc8 33.Rg1 Kf8 34.Nxg7 Bf4) +4.24/17 5} Qc2 {(31. ... Qc2 32.R1d2
Qc4 33.Rf3 e5 34.Nf6+ Rxf6 35.Rxf6 Bd8 36.Qxe5 Rb7 37.Rf3 Bf6 38.Qd6 a5
39.Bxc6 Bxc6 40.Qxc6 Rb8 41.Qc7 Rd8 42.Qxa5 Rxd4 43.Qa8+ Kh7 44.Rxd4)
-2.03/12 6} 32. R1d2 {(32.R1d2 Qc4 33.Rf3 e5 34.Qg6 Rd8 35.Qh7+ Kf8)
+7.50/17 7} Qc4 {(32. ... Qc4 33.Rf3 e5 34.Nf6+ Rxf6 35.Rxf6 Bd8 36.Qxe5
Bxf6 37.Qxb8+ Kf7 38.Qxa7 Qe6 39.Bxc6 Qxc6+ 40.d5 Qc8 41.c6 Bd8 42.cxd7 Qc3
43.Qe3 Qxe3 44.fxe3 Ke7 45.Rb2 Kxd7 46.Rxb5 Kc7 47.e4 Kd6 48.Kf3 g6 49.Rb8
Bc7) -3.63/16 11} 33. Rf3 {(33.Rf3 e5 34.Qg6 Qe6 35.Qh7+ Kf8 36.Qxg7+ Ke7)
+10.43/18 4} e5 {(33. ... e5 34.Nf6+ Rxf6 35.Rxf6 Bd8 36.Qxe5 Bxf6 37.Qxb8+
Kf7 38.Qxa7 Qe6 39.Bxc6 Qxc6+ 40.d5 Qc8 41.c6 Bd8 42.cxd7 Qc3 43.Qe3 Qxe3
44.fxe3 Ke7 45.Rb2 Kxd7 46.Rxb5 Kc7 47.e4 Kd6 48.Kf3 g6 49.Rb8 Bc7)
-3.63/15} 34. Qg6 {(34.Qg6 Be6 35.Rdd3 Kf8 36.Nxg7 Re8 37.Nxe8 Kxe8)
+12.17/19 5} Qe6 {(34. ... Qe6 35.Qh7+ Kf8 36.Bg6 Qg4+ 37.Rg3 Qe6 38.Bxf7
Qh6 39.Qxh6 gxh6 40.Bb3 e4 41.Rg7 Be8 42.Rxc7 Bxh5 43.Rxc6 a5 44.Rxh6 Bf3+
45.Kg3 Ke7 46.Rh7+ Kf6 47.Rf7+ Kg5 48.d5 a4 49.Bd1 Rc8) -5.68/14 8} 35.
Qh7+ {(35.Qh7+ Kf8 36.Qxg7+ Ke7 37.Rxf7+ Qxf7 38.Qg5+ Kf8) +15.89/21 4} Kf8
{(35. ... Kf8 36.Bg6 Qg4+ 37.Rg3 Qe6 38.Bxf7 Qh6 39.Qxh6 gxh6 40.Bb3 e4
41.Rg7 Be8 42.Rxc7 Bxh5 43.Rxc6 a5 44.Rxh6 Bf3+ 45.Kg3 Ke7 46.Rh7+ Kf6
47.Rf7+ Kg5 48.d5 a4 49.Bd1 Rc8) -5.68/6} 36. Qxg7+ {(36.Qxg7+ Ke7 37.Rxf7+
Qxf7 38.Qg5+ Kf8 39.Rd3 Be8) +16.85/21 4} Ke7 {(36. ... Ke7 37.Qg5+ Ke8
38.Bg6 Qg4+ 39.Qxg4 Bxg4 40.Rxf7 Kd8 41.dxe5+ Kc8 42.Nf6 Be6 43.Re7 Kb7
44.Ne8 Bd5+ 45.Kg3 Rxe8 46.Bxe8 a5 47.f4 a4 48.f5 a3 49.Kf4 a2 50.Rd1 Be6)
-7.88/15 2} 37. Rxf7+ {(37.Rxf7+ Qxf7 38.Qg5+ Kf8 39.Rd3 Be8 40.Rf3 Qxf3+)
+17.88/21 8} Qxf7 {(37. ... Qxf7 38.Qg5+ Kf8 39.dxe5 Qg8 40.Qxg8+ Kxg8
41.Nf6+ Kf8 42.Nxd7+ Kg8 43.Nxb8 Bxe5 44.Nxc6 Bc3 45.Rd8+ Kf7 46.Nxa7 Ke7
47.c6 Kxd8 48.c7+ Kxc7 49.Nxb5+ Kd7 50.Nxc3 Kc7 51.f4 Kd6 52.Kf3) -8.88/16
52} 38. Qg5+ {(38.Qg5+) +17.88/20 5} Kf8 {(38. ... Kf8 39.dxe5 Qg8 40.Qxg8+
Kxg8 41.Nf6+ Kf8 42.Nxd7+ Kf7 43.Nxb8 Bxe5 44.Nxc6 Bf4 45.Rd7+ Ke6 46.Rxa7
Kf6 47.Rb7 Bc1 48.Kf3 Bd2 49.Rxb5 Bc1 50.Nb8 Ke5 51.Nd7+ Ke6 52.c6 Bh6
53.Nb6) -8.88/16 8 Black resigns} 1-0[/pgn]

I don't know the effect of this time management on the rating, though - it indeed may be beneficial if, in most games, Roc manages to maintain a bearable position until the opponent gets into time trouble and blunders.