MadChess 3.3 Released

I have released version 3.3 of my chess engine. This release adds static exchange evaluation and integrates it into futility pruning and deferring the search of losing captures. This pushed MadChess’ playing strength above 2800 Elo. In addition, I adjusted formulas used to calculate internal limit-strength engine parameters to be based on 2800 Elo instead of 2600 Elo. If you adjusted any values in the MadChess.AdvancedConfig.json file, please recalculate per instructions included in comments in the file. The engine’s UCI_Elo option still has a max value of 2600, though, because the non-PVS search (alpha / beta window remains open at… Continue Reading

MadChess 3.2.2 Released

I have released version 3.2.2 of my chess engine. This release fixes a bug that caused truncated principal variations when MultiPV > 1. Also, it improves the efficiency of MultiPV search, so it gets deeper faster. This release does not add any features nor playing strength. Testers may substitute this version for version 3.2 without any need to restart or re-run tournaments. You may download x64 and x86 versions of MadChess 3.2.2 from the Downloads page. Install the appropriate version for your computer’s CPU. The x64 binary is the strongest version of the engine. Continue Reading

MadChess 3.2.1 Released

I have released version 3.2.1 of my chess engine. This release fixes a bug that caused MadChess to report illegal principal variations. That is, PVs that contain illegal moves. To be clear, the bug never caused MadChess 3.2 to crash. Merely to report fantasy lines. I didn’t notice the issue back in January because of my desire to transition from programming chess to playing chess- which involves fighting the urge to tinker with one more engine issue. I did wonder why MadChess occasionally reported truncated PVs in the CuteChess GUI. One factor contributing to my (chosen) ignorance is the CuteChess… Continue Reading

MadChess 3.2 Released

I have released version 3.2 of my chess engine. The main feature in this release is a sophisticated limit-strength mode, including adjustments to chess knowledge, search speed, chance of erring or blundering, and severity of blunders. MadChess, in limit-strength mode, excludes moves it considers unreasonable (dumb moves even a chess novice wouldn’t play). I have extensively documented the settings and technical implementation of MadChess’ limit-strength mode in The MadChess UCI_LimitStrength Algorithm. I also provide a Limit-Strength FAQ. MadChess 3.2 is slightly stronger than the prior release. I estimate it has gained 60 rating points, climbing to roughly 2770 Elo at… Continue Reading

MadChess 3.1 Released

I have released version 3.1 of my chess engine. I worked on the engine over the last year occasionally, when I had time in the evenings. Slowly, I’ve added about 100 Elo points of playing strength compared to the prior release. This release includes strength improvements achieved by Singular Move, Threat Evaluation, Pawn Structure Evaluation, Move Legality Performance Improvement, Logarithmic LMR Based on QuietMoveNumber and ToHorizon, and evaluation of piece mobility, king safety (including x-ray moves), and threats using Safe Squares. It also includes code quality improvements such as Color Agnostic Code, Removed Endgame King Safety Evaluation, Code Style Refactor… Continue Reading