Skip to content

TheGogy/atom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atom

A basic chess bot written as a fun / learning / hobby project in C++. Still in development, expect many bugs!

Note

This bot does not have time control support; it will run indefinitely. To play it, you should manually set a max search depth.

Current perft score (i5-11400H @ 4.5GHz):

  • starting position (depth 7): 3195901860 nodes, 4250 ms, 751976908 nps
  • kiwipete position (depth 7): 374190009323 nodes, 274811 ms, 1361626751 nps

Installation

Requires g++ compiler. Some parts (i.e memory) may only work on linux.

git clone https://github.com/thegogy/atom
cd atom
make release

This will automatically download the NNUE files and compile the bot.

Playing

This is UCI compatible. You can use any UCI-compatible interface to play it, such as en-croissant or cutechess.

Tuning

This bot uses weather-factory for tuning. In order to tune the bot, use the following steps:

# Install weather factory
git clone https://github.com/jnlt3/weather-factory tuning
# Make tuner dir
mkdir tuning/tuner

You should also install fastchess and place the binary in the tuner dir.

# Build engine for tuning
make clean
make tune
cp atom tuning/tuner/engine
# Run tuning
cd tuning

# Put tunables in config.json
./tuner/engine tunables > config.json

# Run tuning
python main.py

Inspiration

Move generation takes a lot of inspiration from VincentBab's Belette, as well as Daniel inführ's Gigantua, as well as many techniques from the Chess Programming Wiki.

perft_massive from Elcabesa's engine, Vajolet.

NNUE from Stockfish. For more information, see the NNUE readme in this repo.

Todo

[ ] Tune parameters [ ] Time management [ ] EGTB pruning [ ] Testing for search

About

A simple chess engine written in C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages