KierenP / Halogen

C++ chess engine
GNU General Public License v3.0
67 stars 8 forks source link
# Halogen [![License](https://img.shields.io/github/license/KierenP/Halogen?style=for-the-badge)](https://github.com/KierenP/Halogen/blob/master/LICENSE) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/KierenP/Halogen?style=for-the-badge)](https://github.com/KierenP/Halogen/releases/latest) [![Commits since latest release](https://img.shields.io/github/commits-since/KierenP/Halogen/latest?style=for-the-badge)](https://github.com/KierenP/Halogen/commits/master) [![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/KierenP/Halogen/Halogen12-windows-avx2-pext.exe?style=for-the-badge)](https://github.com/KierenP/Halogen/releases/latest)

Halogen is a powerful, world-class program capable of analysing and playing chess. It currently is ranked within the top 30 chess engines of all time.

Details

Written in C++, Halogen implements Null-move pruning, Late move reductions, Quiessence search and a Transposition table that uses Zobrist Hashing. The search routine is multithreaded using the SMP parallelisation technique.

Halogen development is currently supported on the Openbench framework. OpenBench (created by Andrew Grant) is an open-source Sequential Probability Ratio Testing (SPRT) framework designed for self-play testing of engines. OpenBench makes use of distributed computing, allowing anyone to contribute CPU time to further the development of some of the world's most powerful engines.

Since 2020, Halogen has used a neural network for its evaluation function. Halogen makes use of an incrementally updated architecture, inspired by the new NNUE networks in Stockfish. The neural networks were trained using a novel application of Temporaral Difference learning^1, and then fine tuned using supervised learning on data generated through self-play games using the Bullet trainer^2.

Strength

Version CCRL 40/15 CCRL Blitz CCRL 40/2 FRC CEGT 40/20 CEGT 40/4 MCERL
12.0.0 - 3539 - 3385 - -
11.4.0 - - 3437 - - -
11.0.0 3380 3433 - 3288 3313 3398
10.0.0 3196 3220 - 3084 - -
9.0.0 3153 3178 - 3013 - -

How to use

Halogen is not a stand alone application and should be used with any popular chess GUI that supports the UCI protocol. Arena chess is a popular choice. You can find prebuilt binaries from the last major release in the releases tab, or build Halogen yourself. Halogen is officially supported on the following platforms:

Platform Build
Ubuntu Ubuntu
Windows (Mingw64) Windows (MinGW64)
Windows (Clang64) Windows (Clang64)

To build Halogen, simply use the included makefile in the src directory:

> make