Skip to content

About

HCE Chess engine written in C.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

291 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cepimetheus

This is my C# engine Epimetheus remade in C. It is a command line chess engine utilising the UCI protocol, this means it requires an external GUI to use easily.
My recommended GUIs are:
-SCID: good program for analysis
-Cute Chess: Good for playing engines against each other in tournaments
-En Croissant: A GUI that I only recently came across but it has a modern UI and is good for both playing and analysis

I run the newest version as a bot on Lichess which you can see and play against here.
I will note that the lichess bot pool (especially bullet) seems very underrated, the Lichess bots (Cepimetheus included), in my opinion, play at a much higher level than a human at the same rating.
A friend of mine could not beat Cepimetheus in bullet after several attempts, he was 2629 at the time whilst the bot was 1850 (both ratings lichess bullet).

Rating

Cepimetheus is undergoing continuous development, with noticeable strength gains with each major release. The engine is officially tracked on the CCRL ratings lists here and on COPE here.
I have also made an effort to estimate the ratings of major versions to better show per version improvement and let users know how strong a certain version is.
Estimated ratings are calculated with Ordo on game pools played at the exact CCRL blitz time control of 120s + 1s increment, my testing cpu has very similar single thread performance to the CCRL baseline 4770K.
My testing games include several third party "anchor engines", these are engines that are rated on the CCRL list, to improve the accuracy of the data.

Version CCRL Blitz* CCRL Rapid CCRL 40/2 FRC COPE Bullet COPE Rapid
v17.0.0 2869.6 - 2876 - -
v16.0.0 2732 2795 - - -
v15.0.0 2640.0 2620 - 2725 2922
v14.0.1 2569.6 2556 - 2647 2771
v13.0.0 2490.0 - - - -
v12.0.0 2335.5 - - - -
v11.0.0 2238.1 - - - -
v10.0.0 2165 - - - -
v9.0.0 2125.1 - - - -
v8.0.0 2065.6 - - - -
v7.2.0 2005.3 - - - -
v6.4.1 1918 - - - -
v5.1.0 1706.2 - - - -
v4.3.1 1627.7 - - - -

* Official ratings in bold, estimates normal text

Note on Accuracy: All estimated ratings are subject to change as I play more games or add additional CCRL anchor engines to my testing to further calibrate the results.

Features

Search

  • Alpha-Beta Negamax Search
  • Quiescence Search
  • PV Search
  • Aspiration Windows

Transposition Table

  • 4 Value Hash Buckets
  • Incremental Hashing

Move Ordering

  • MVV-LVA
  • SEE
  • Killer Move Heuristic
  • Counter Move Heuristic
  • History Heuristic
  • Root Move Ordering

Selectivity

  • Check Extensions
  • Late Move Reductions
  • Internal Iterative Reductions
  • Null Move Pruning
  • Delta Pruning (QSearch)
  • SEE Pruning (QSearch)
  • Futility Pruning
  • Reverse Futility Pruning
  • Late Move Pruning
  • Singular Extensions
  • Multi Cut
  • Negative Extensions
  • Improving Flag

Evaluation

  • No PST Hand Crafted Evaluation
  • Tapered Evaluation
  • Custom Automated Tuning
  • Specific Endgame Knowledge
  • Pawn structure corrhist

Board Representation

  • PEXT/Fancy Magic Bitboards

Features

  • MultiPV Support
  • Allocatable Hash Table Size (in megabytes)
  • Move Overhead Adjustment
  • Materialism modifier

Download

To use this engine please click on the "releases" section of the github page. For newer versions I have provided a range of binaries for use on Windows or Linux.
Depending on your cpu, different binaries will perform differently, or will not be supported at all, please refer to the table below which recommends which version to use.
Alternatively you can also of course compile it yourself from the source code.

CPU Binary Selection Guide

Binary Name Intel AMD
AVX512 10th/11th Gen Core
(Not supported on newer consumer chips)
Zen 4 & Zen 5
BMI2 4th Gen Core to 14th Gen Core & Core Ultra Zen 3
AVX2 N/A
(Intel CPUs that support AVX2 also support hardware PEXT)
Zen, Zen+, & Zen 2
(These CPUs are unique in that they support BMI2 but will underperform due to microcoded PEXT)
POPCNT 1st Gen to 3rd Gen Core Phenom II, FX Series
64 Legacy 64-bit CPUs (Core 2 Duo, Pentium D) Legacy 64-bit CPUs (Athlon 64, Opteron)

Note on previous versions: before the release of v15.0.0, I didn't release a binary called BMI2, however the old AVX2 binaries are equivalent to the new BMI2 binaries in that they demand hardware PEXT, for this reason, for older releases, POPCNT binaries are potentially superior on older Zen architectures, although this is still ineffficient as they lack the AVX2 support (and only run on software PEXT rather than magic bitboards), hence my introduction of the new binary beginning with version 15.0.0.

Please note that the older the version of engine you get, not only will it be weaker, but the potential for bugs will increase, versions 6.4.1 and later have no major bugs.

About

HCE Chess engine written in C.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages