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

MadChess 1.2 Released

I’ve managed to add another 100+ Elo to MadChess. I estimate MadChess’ playing strength is ~ 2090 Elo at bullet time control. At blitz, I estimate its strength is ~ 2140 Elo. The strength improvement is mostly due to more efficient move generation and an improved principal variation search algorithm. Those and other more cosmetic changes are detailed below. Source code and EXEs available on the Downloads page. Implemented a check evasion move selector. Improved principal variation search algorithm. Improved efficiency of aspiration windows. Window is increased in configurable steps instead of doubling. Decreased positional bonuses. Added bonuses for backward… Continue Reading

MadChess 1.1 Released

I’ve made many changes to MadChess, detailed below. I tested at my usual bullet time control (2 min + 1 sec / move) and found only a 30 Elo gain, a bit disappointing for so many changes. However, informal testing at 40 moves in 4 min shows a much larger gain- potentially 60 Elo. This makes sense because my engine is a relatively slow searcher. Perhaps the CCRL testers can verify? I removed 174 lines of code and gained 30 Elo. At this rate, if I remove all the code my engine will play with super Grandmaster strength, ha ha!… Continue Reading