From TCEC wiki
Jump to: navigation, search
2020 FRC 4 - Flowchart of leagues and stages with equal distance seeding

See also TCEC FRC rules.

Explanation of typography

Explanation of special typography:

  • underlined means possible invite
  • italics - invited for this particular event
  • bold - contact has been sought or established with, the author(s)
  • bold italics - engine and/or update received.
  • struck through - declined or not participating

Participating engines

  1. KomodoDragon - Update coming - reminder sent -> update to 2814.0 received
  2. Stockfish - Update coming -> updated to Stockfish dev15_2021121915
  3. Lc0 - Update coming -> received: 0.29-dev with 610826 net
  4. Stoofvlees - no update. Stoofvlees II a18 will play.
  5. Scorpio - Update coming -> 3.0.15 received
  6. Ethereal - reminder sent -> strong update received: v 13.43 network 885D1C58
  7. SlowChess - updated to SlowChess Blitz 2.8 avx. -> updated to SlowChess Blitz 2.82
  8. Rubichess - reminder sent -> update to RubiChess-2.3-dev-TCECfrc4 received
  9. Nemorino - Failed FRC startup test. Update needed. -> Nemorino 6.10 submitted
  10. Defenchess - no update. Defenchess 2.3_dev2 will play
  11. Vajolet - reminder sent -> No update -> Vajolet2 2.9.0-TCEC-S19 will play.
  12. Winter - updated to Winter 0.9.8.
  13. MultiAra ClassicAra - engine file needed - reminder sent -> update incoming -> ClassicAra 0.9.8 with FRC support received
  14. Revenge - updated to Revenge 20211210
  15. Monolith - reminder sent -> No update -> Monolith 20210221 will play.
  16. Minic - no update. Minic 3.17 will play
  17. Weiss - no update. Weiss 2.1-dev will play.
  18. Cheng - no update. Cheng 4.42_dev will play.
  19. Stash - updated to Stash 32.1
  20. Berserk - updated to Berserk 9-dev -> updated to Berserk 9-dev2
  21. Cheese - updated to Cheese 3.0 beta (16 threads -> 104 threads, 16GiB Hash -> 64GiB Hash) -> Update Cheese 3.0 beta2 received -> Update Cheese 3.0 beta3 received. -> final version 3.0 released and received
  22. Critter - Critter 1.6 will play
  23. Wasp - updated to version 5.02 (NNUE)

Bugs and problems found in FRC testing

  1. Nemorino failed FRC startup test. Update received
  2. Cheese - Cheese 3.0 beta tested. 2 x illegal move due to FRC castling bug -> Update Cheese 3.0 beta2 received. Another 2 x illegal move due to FRC castling bug -> Update Cheese 3.0 beta3 received
  3. Nemorino might have some FRC castling blindness (missing opponent long castling?)


Engine submission deadline was Sunday, December 19, 2021 23:59 UTC.

Start time

FRC4 started Monday, December 20, 17.00 UTC


  1. ...

The Leagues in detail

First phase

League A

1. KomodoDragon
5. Scorpio
9. Nemorino
13. ClassicAra
17. Weiss
21. Cheese

League B

3. Lc0
7. SlowChess
11. Vajolet
15. Monolith
19. Stash
23. Wasp

League C

2. Stockfish
6. Ethereal
10. Defenchess
14. Revenge
18. Cheng
22. Critter

League D

4. Stoofvlees
8. Rubichess
12. Winter
16. Minic
20. Berserk

Second phase

Semileague 1

1. KomodoDragon advances
3. Lc0 advances
6. Ethereal
20. Berserk

Semileague 2

2. Stockfish advances
8. RubiChess
5. Scorpio advances
7. SlowChess

Third phase

Final League

1. KomodoDragon
3. Lc0 advances
5. Scorpio
2. Stockfish advances

FRC Final

2. Stockfish
3. Lc0


Stockfish-Lc0 27-23 (+13, -9, =28)



  1. Who will win the FRC final Closed
  2. Draw percentage in the Final League Closed
  3. Advance to Final League Closed
  4. Advance to Semileague 1 & 2 Closed
  5. Overachievers Closed
  6. TCEC FRC starting positions coverage Closed. During League A 112 lost FRC games from the Season 6 FRC Special Event was found and added to the database.

FRC Book Generation

Top 6 most unbalanced Starting positions

The Final League first Double Round Robin used the 6 most unbalanced zero-moves start positions.
These opening positions were selected as follows in a Two-stage process.
First, for all 960 positions, I (Bastiaan/kbg519v1a) played SF-SF, KD-KD, Eth-Eth and Lc0-Lc0, for just one move (two ply), terminating the game after that move and recording the eval. Average the b/w evals and I used some rescaling to make them compatible among the four engines. Hardware resource was an intel i5, four threads, and each side had 30 minutes for 3 moves. And then the second stage was similar self-play only for the top 60 starting positions, now five moves, again recording the evals and averaging over five moves.

1-move book exits

I started with an analysis of all 960 opening positions as described above. From those I selected the 60 positions that came out as the most unbalanced (most strongly favouring white -- note that not a single position favours black in my analysis).

For those 60 positions I have one-move self-play SF-SF, KD-KD, Eth-Eth and Lc0-Lc0. One-move games with a time control set to 20 or 30 minutes using four threads on an i5.

Often one white move is clearly favoured, sometimes two are favoured by these four engines. The following work is done by hand.

Fort each of the 60 positions that are already favouring white I look at one or two opening moves that are favoured by the engines. Then (by hand and eye) I choose a few responding moves (black moves) that are *not* chosen by the engines, but that don't look crazy to me. That gave me about 300 one-move lines for further analysis.

Then I did further short self-play, still SF-SF, KD-KD, Eth-Eth and Lc0-Lc0, now for three or five moves and again with a time control of 20 to 30 minutes.

Using that machine analysis I eliminated lines that looked too drawish or too busted. It left me with about 70 lines.

Then I went back and looked at the engine play those lines. Some had a really obvious continuation, some looked too artificial, some looked a bit too similar to others, so I cut it down from 70 to 43 (18 + 25) by my own judgment.

Computer time added up to about two or three months using two i5 processors and one 1070K, the latter for the Lc0 work. Four threads for the non-GPU engines.