I have released version 2.1 of my chess engine. I built this version of MadChess using .NET Core, Microsoft’s new cross-OS development platform. I have provided source code and binaries for Windows on the Downloads page.
I do not have access to a Linux or Mac machine. If you are feeling adventurous and would like to build Linux or Mac binaries, please refer to Getting Started with .NET Core on Windows / Linux / MacOS for instructions on how to build .NET Core applications.
I have configured the MadChess project to build a self-contained application. All binaries required to run MadChess are included in the .zip file. Unlike previous versions of MadChess, no prerequisite .NET framework must be installed prior to running the engine.
MadChess 2.1 is about 60 or 70 ELO stronger than version 2.0. It includes the following improvements, some impacting playing strength, some more focused on code quality.
- Converted cached position from a class to a ulong primitive with bitwise operations.
- Tuned evaluation using the technique described by Peter Österlund.
- Include static exchange score when determining move futility.
- Update history heuristic value of previously played quiet moves that failed to produce a cutoff.
- Extract principal variation from a triangular array (rather than from hash table).
- Simplified time management.