Skip to content

kachhy/Onslaught

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

538 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub stars GitHub forks GitHub issues

GitHub license

Top Language

Onslaught

A UCI-compliant chess engine built in C++.

📖 Overview

Onslaught is a Universal Chess Interface (UCI) compliant chess engine developed in C++. Designed for performance, Onslaught can be used with various UCI-compatible chess graphical user interfaces (GUIs) to play, analyze, and find optimal moves in standard chess positions.

🚀 Quick Start

Follow these steps to build and run the Onslaught chess engine.

Prerequisites

  • C++ Compiler: A C++17 compatible compiler (e.g., GCC 7+ or Clang 5+).
  • Make: GNU Make utility.

Installation

  1. Clone the repository

    git clone https://github.com/kachhy/Onslaught.git
    cd Onslaught
  2. Build the engine The Makefile will compile the source code and create the Onslaught executable.

    make release

    To compile with debug symbols for easier debugging:

    make debug

    Or if you want to build for your machine specifically

    make native
    

📄 License & Contributing

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

There are two main ways to contribute to the project.

Contributing Code

To contribute code

  1. Fork the repository
  2. Make your changes
  3. Submit tests on the OpenBench instance. All functional changes must pass an LTC test and all non-functional changes or optimizations must pass a non-regression LTC test.
  4. Make a pull request with the test information (links to the tests, or the info blocks)
  5. Get feedback!

Contributing Compute

Running all of these SPRT tests takes a lot of compute. To contribute compute to our OpenBench instance, please refer to the OpenBench wiki. Ensure you have an account, use those credentials, and use https://openbench.kaichung.dev as the endpoint.

🙏 Acknowledgments

  • Chess Programming Wiki - an invaluable reference that guided much of our development.
  • Ethereal - a great source of inspiration, both in strength and in code clarity.
  • Bullet - the NNUE trainer we used to train our networks; intuitive and easy to work with.
  • OpenBench - the SPRT testing framework we rely on for all our testing.
  • Incbin - used to embed our networks directly into our binaries.
  • CodeMonkeyKing's YouTube series - a great starting point for learning chess engine implementation.

About

UCI chess engine in C++

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors