Skip to content

deoshreyas/Vertex-Chess

Repository files navigation

Vertex Logo

Vertex-Chess

A strong chess engine made using the C++ programming language! It is strong enough to beat me, with a decent (I hope!) evaluation function. This is my second attempt at making an engine, as the first one was riddled with bugs. This time, I properly tested each new feature by having the engine play 1000 games against the previous version (100ms per move). So, every single feature in the engine is there after a LOT of testing!

❓ How to run?

Currently, the engine does not support the Universal Chess Interface (UCI) protocol, so it won't work with traditional Chess GUIs. However, there are still several ways to play with it:

  1. Web GUI (recommended for most users):

You can use the Web GUI here! I ported the C/C++ code to Web Assembly, and used Web Workers to make this! It supports four time controls - Bullet (1 min | 5 sec), Blitz (5 min | 10 sec), Rapid (10 min | 15 sec) and Classical (30 min)! You can also set a predetermined time to spend per move for the engine (highly recommended - I have very little faith in my ability to code proper time management!). If you are feeling brave, you can set it to 0 and play!

  1. Python GUI (recommended for people looking for more control):

You can also use the Python GUI, created using Pygame and Python-Chess by cloning the GUI folder. This is recommended if you want to play a custom position, with custom time controls, etcetera. I had to port the C++ (and a bit of C) code to a Dynamic Link Library to make this, to use it from within Python.

Once you have cloned the Repository, you might have to install some packages like pygame and chess using the command:

pip install pygame

You can do this in a Virtual Environment if you want! The GUI folder comes with a precompiled DLL already, so you don't have to do it yourself!

3 Build from source:

If you want to, you can download the source code and compile it yourself. Please feel free to change it to suit your own needs!

⭐ Gratitude:

I am deeply grateful to the following individuals:

  1. Disservin for the Chess Library which handles move generation, Bitboards, etcetera!
  2. The creators of the komodo.bin opening book which all versions of Vertex currently use!
  3. The people behind the Chess Programming Wiki! This is a very extensive resource for learning more about chess engines - their search algorithms, evaluation functions, ectera! Very highly recommended for beginners.

About

A strong chess engine made using the C++ programming language!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published