Releases: tom-m-white/Hyperion
Hyperion v0.2.0-beta
Hyperion v0.2.0-beta: Puzzle Elo and Hand-Crafted Evaluation
This second beta release of Hyperion introduces major new features for engine evaluation and search, alongside a massive performance uplift. The focus of this update is on providing better tools for measuring strength and experimenting with different search strategies.
The engine continues to be in beta, with the core MCTS and UCI functionality being the primary focus for testing.
What's New
-
Puzzle-Based Elo Rating System
A new puzzle evaluation mode has been added to gauge the engine's tactical ability. This system allows Hyperion to solve a series of chess puzzles to determine an Elo rating.- Adaptive Testing: The puzzle difficulty is adaptively adjusted based on the engine's performance, providing a more accurate strength assessment.
- Glicko-2 Rating: It uses the Glicko-2 rating system to calculate the engine's Elo, including a rating deviation (margin of error) to show the confidence in the rating.
-
Hand-Crafted Evaluation MCTS (MCE-MCTS)
A new search mode has been implemented that uses a basic, hand-crafted evaluation function to guide the Monte Carlo Tree Search. This provides a tangible improvement in playing strength over a "pure" MCTS. Users can now test and play against both the pure MCTS and this new evaluation-guided search. -
Massive Performance Gains
The core engine's move generation and perft calculations have been significantly optimized.- Perft test speeds have increased dramatically, now reaching nearly 44 million nodes per second (
4.39454e+07 nps). This improvement makes search deeper and more efficient.
- Perft test speeds have increased dramatically, now reaching nearly 44 million nodes per second (
How to Build
The build process remains the same. For developers who want to build the engine themselves:
Prerequisites:
- A C++ compiler (like g++)
- CMake (version 3.15 or higher)
- MinGW (on Windows) or Make (on Linux/macOS)
Steps:
- Clone the repository:
git clone [https://github.com/quackcoast/hyperion.git](https://github.com/quackcoast/hyperion.git) cd hyperion - Create a build directory:
mkdir build cd build - Run CMake. For a release build with optimizations, use:
cmake -G "MinGW Makefiles" -DHYPERION_ENABLE_BMI2=ON -DCMAKE_BUILD_TYPE=Release .. - Compile the engine:
mingw32-make
- The executable will be located in the
build/bin/directory.
How to Use
- Download the
HyperionEngine.exefrom the release assets below (or build it from source). - Open your favorite UCI-compatible chess GUI.
- Add a new engine, and when prompted, select the
HyperionEngine.exefile.
Beta Version Limitations
- No Neural Network: This version does not yet include a neural network for position evaluation. The "hand-crafted" evaluation is a placeholder for the eventual NN-based evaluation.
Future Plans
The next major milestone for Hyperion remains the integration of the neural network:
- Initial Neural Network Creation (Supervised Learning)
- Initial Neural Network Implementation
- Neural Network Self-Play (Reinforcement Learning)
- Refinements/Advanced Features
Hyperion v0.1.0-beta
Welcome to the first public beta release of Hyperion, a Monte Carlo Tree Search (MCTS) chess engine written in C++. This version features a functional UCI engine with a basic MCTS implementation, without neural network integration.
This beta release is intended for testing the core engine's stability and performance. The neural network features are under development and will be integrated in a future release.
What's Included in This Release
- Functional UCI Engine: Hyperion can connect to any UCI-compatible graphical interface (like Arena, Cute Chess, or Scid vs. PC) to play games. The main UCI loop is handled in
src/cpp/main.cpp. - Core Chess Logic: A complete and robust chess logic library, including bitboard representation (
src/cpp/core/bitboard.cpp), move generation (src/cpp/core/movegen.cpp), and position handling (src/cpp/core/position.cpp). - MCTS Search: A basic implementation of the Monte Carlo Tree Search algorithm to select moves (
src/cpp/search/search.cpp). - Performance Enhancements: The engine is built with modern C++ and includes optimizations like BMI2 instruction set support for improved performance, as configured in
CMakeLists.txt.
Prerequisites:
- A C++ compiler (like g++)
- CMake (version 3.15 or higher)
- MinGW (on Windows) or Make (on Linux/macOS)
Steps:
-
Clone the repository:
git clone [https://github.com/quackcoast/hyperion.git](https://github.com/quackcoast/hyperion.git) cd hyperion -
Create a build directory:
mkdir build cd build -
Run CMake. For a release build with optimizations, use:
cmake -G "MinGW Makefiles" -DHYPERION_ENABLE_BMI2=ON -DCMAKE_BUILD_TYPE=Release .. -
Compile the engine:
mingw32-make
(On Linux/macOS, you can likely just use
make) -
The executable will be located in the
build/bin/directory.
How to Use
- Download the
HyperionEngine.exefrom the release assets (or build it from source). - Open your favorite UCI-compatible chess GUI.
- Add a new engine, and when prompted, select the
HyperionEngine.exefile. - The GUI should now be able to communicate with Hyperion to play games and analyze positions.
Beta Version Limitations
- No Neural Network: This version does not include a neural network for position evaluation. The engine currently relies on random playouts for the MCTS simulation, as seen in
src/cpp/search/eval.cpp. - Basic MCTS: The MCTS implementation is functional but has not yet been extensively tuned for maximum playing strength.
- No Self-Play Data: The Python package for the neural network (
src/python/hyperion_nn) is included but is currently in a preliminary stage.
Future Plans
- Initial Neural Network Creation (Supervised Learning)
- Initial Neural Network Implementation
- Neural Network Self-Play (Reinforcement Learning)
- Refinements/Advanced Features