MadChess 2.2 Released

I have released version 2.2 of my chess engine. Source code and Windows binaries are available on the Downloads page. MadChess 2.2 is about 50 ELO stronger than version 2.1. It includes the following improvements. Added best move estimation. In principal variations where the cached position does not specify a best move, MadChess will search at reduced depth to obtain a best move. Then it completes the full depth search, searching the best move first. This is called Internal Iterative Deepening (IID) in other engines, though I find the name misleading. It’s recursive but not iterative. Added endgame piece location… Continue Reading

MadChess 2.1 Released

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… Continue Reading

MadChess 2.0 Released

I have released version 2 of my chess engine. I’ve rewritten the engine from scratch in a more procedural style code- as opposed to the sub-optimal (for chess engines at least) object-oriented style I used in MadChess 1.x. The engine is about 115 – 160 ELO stronger than its predecessor, depending on time control. I estimate it is about 2350 ELO. Source code and EXEs available on the Downloads page. Continue Reading

MadChess 1.4 Released

I’ve added features to improve MadChess’ value as a sparring partner and analysis tool. I spent a lot of time implementing an algorithm that reduces the playing strength of MadChess. In chess GUIs that support the feature, MadChess will automatically adjust its playing strength to match the user. See the User Guide for details. Source code and EXEs available on the Downloads page. Added UCI_LimitStrength and UCI_Elo options. Added chess personalities from young child to expert. Added MultiPV (display multiple principal variations). Enabled PVS search for MultiPV or when ScoreError > 0. Do not reduce search horizon of pawn pushes.… Continue Reading

MadChess 1.3 Released

I’ve added 50 to 90 ELO to MadChess, depending on the time control. I’ve finally broken the master barrier (2200 ELO)! I estimate MadChess’ playing strength is ~2200 ELO at blitz time control and ~2220 ELO at rapid time control. Source code and EXEs available on the Downloads page. Added parameters to weaken engine strength (Score Error and Max Nodes Per Second), though I did not test them thoroughly. Calculate piece location score in evaluation instead of incrementally during move generation. Replaced yield-based move selectors with state-machine move selectors due to poor performance of iterators in recursive search algorithm. More… Continue Reading