Skip to content

bctboi23/CeeChess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CeeChess

Hi! I am a bot written in C, heavily inspired by the Vice engine and video series done by Bluefever! If you want to try your hand at facing me, I am occasionally on lichess at https://lichess.org/@/seeChessBot! Play me here on fly.io: https://cee-chess.fly.dev/

Rating: The rating for the latest release of the engine (v2.0), scores ~150 elo better in self-play to v1.4, and should play at ~2550-2600 CCRL (since self-play typically inflates ratings). This compares roughly to FIDE 2600, although there is no real 1-1 correspondence between these rating systems.

See the current CCRL rating here: https://www.computerchess.org.uk/ccrl/4040/cgi/engine_details.cgi?match_length=30&print=Details&each_game=0&eng=CeeChess%201.4%2064-bit#CeeChess_1_4_64-bit

Self play ratings for all versions, anchored at SeeChess 1.0 (2.0 is the newest version):

Rank      Name             Elo
 1    CeeChess-v2.0    :  ~2600
 1    CeeChess-v1.4    :  ~2480
 2    CeeChess-v1.3.2  :  ~2330
 3    CeeChess-v1.3.2  :  ~2330
 4    CeeChess-v1.3.1  :  ~2315
 5    CeeChess-v1.3    :  ~2310
 6    SeeChess-v1.2    :  ~2200
 7    SeeChess-v1.1.3  :  ~2180
 8    SeeChess-v1.1.2  :  ~2165
 9    SeeChess-v1.1.1  :  ~2150
10    SeeChess-v1.1    :  ~2140
11    SeeChess-v1.0    :  ~2060

Most recent gauntlet with an assortment of engines:
Time Control: (1 min, 0.5sec inc), with elo centered around the v1.4 release (ratings from bayeselo):

Rank Name Elo + - Games Score Oppo. Draws
1 Barbarossa-0.6.0 38 34 33 240 55% 95 23%
2 CeeChess-v1.4 0 13 13 1664 65% -13 26%
3 Barbarossa-0.5.0-win10-64 -34 33 33 240 45% 95 28%
4 Kingfisher.v1.1.1 -107 32 33 240 34% 95 36%
5 gopher_check -146 34 35 238 29% 95 26%
6 CeeChess 1.3.2 -149 34 36 238 29% 95 25%
...

Since CCRL ratings got adjusted down recently (stockfish went from 3900 CCRL to ~3630 afaik), this no longer breaks the CCRL 2400 barrier, but comparing the results here to the old ratings of Barbarossa-0.6.0(2468), Barbarossa-0.5.0(~2375ish i believe?) and the others suggests that this release would have broken that barrier. I now expect the engine to land in the range of 2300-2350, given Barbarossa-0.6.0 has a new rating of 2355

Next Steps: After the v2.0 release, I will focus on updating the search. Once that is done, I will finally move on to NNUE

Engine Features

Search: The Engine searches with a Principal Variation Search inside a Negamax framework

Lossless Pruning:

  • Alpha-Beta pruning
  • Mate Distance pruning

Lossy Pruning:

  • Transposition Table
  • Razoring
  • Null Move Pruning
  • Late Move Reductions
  • Futility Pruning
  • Static Null Move Pruning (Reverse Futility Pruning)

Move Ordering:

  • PV Move
  • Captures ordered by MVV/LVA (Most Valuable Victim/Least Valuable Attacker)
  • 2 Killer Moves
  • Quiet moves ordered by history heuristic

Evaluation:

  • Material
  • PSQT
  • Mobility
  • King Safety
  • Threats
  • Passed Pawns
  • Knight Outposts
  • Bishop pair heuristic (for Midgame and Endgame)
  • Passed Pawn evaluation (Midgame and Endgame tables)
  • Isolated pawn heuristic
  • Open file heuristics (for Rook and Queen)
  • Tapered evaluation
  • Logistic Regression Tuning (Texel method) using SPSA with AdaBelief as the optimization method

Planned Improvements (ordered by perceived feasibility):

  • Syzygy Tablebases
  • SEE (Static Exchange Evaluation) (bitboards would be nice for this, but maybe feasible to do quickly in mailbox)

Other Possible Improvements (No particular order):

  • IID (Internal Iterative Deepening)
  • Countermove Tables
  • Singular Extensions
  • Probcut
  • Aspiration Windows

Please credit me if you use my code. I do not give permission for any actor, party, or organization to use my code for any purpose in training, building, or otherwise developing any Large Language Models, any code generation tools, AI powered debugging, or other AI automated tools.