I have released version 3.0 of my chess engine. This is a complete rewrite of the engine using bitboards. I began the project two and a half years ago and worked on it sporadically, with long stretches of inactivity. I didn’t work on MadChess at all in 2019. Life got too busy, personally and professionally.
Gradually, I improved MadChess’ playing strength, surpassing the previous version, and crossing the 2600 Elo threshold. Considering MadChess 3.0 doesn’t have a sophisticated evaluation function, I’m satisfied to have reached that milestone. I’ll likely pursue evaluation improvements in a future version.
I have written MadChess 3.0, like its predecessors, in C#. I use preprocessor directives and Visual Studio solution configuration to include or exclude CPU intrinsics (
LeadingZeroCount) and target various platforms when compiling a binary executable: Windows 64 bit (x64) and Windows 32 bit (x86). When you click the 3.0 EXE link on the Downloads page, you’ll notice the ZIP file contains x64, x64 Non-PopCount, and x86 directories. Install the appropriate version for your computer’s CPU. The x64 binary is the strongest version of the engine.
MadChess 3.0 is built on Microsoft’s .NET 5 framework, which is open-source and cross-platform. On the Downloads page, I provide binaries only for Windows. However, .NET 5 supports Linux and Mac, so you’re welcome to compile it for those platforms. If you do attempt to compile a non-Windows binary, please let me know if you succeed or experience difficulties.
I have taken a minimalist approach to engine configuration. MadChess 3.0 doesn’t expose many UCI parameters. However, it does support
UCI_Elo, so you may configure MadChess for a more enjoyable game- assuming you’re not a Grandmaster.
Enjoy! Leave a comment on this blog post or click the Contact Me link and let me know what you think of my chess engine.