Floyd 0.9 released
Posted: Sat Aug 20, 2016 11:28 am
Floyd is a simple, bare-bones, chess engine for study purposes. It is designed for Windows, Linux and OSX and distributed under the permissive, "2-clause" or "simplified", open source BSD license.
The Floyd project is primarily intended as a platform for experimentation. This means that emphasis is on ease of change, clarity, soundness and preferably a very low code count. There are now only about 4,000 lines of real code. Raw search speed is of a lesser importance. Still most, if not all, modern evaluation and search techniques are present in their basic form and therefore Floyd can play very strong chess.
Executables: https://marcelk.net/floyd/
Sources: https://github.com/kervinck/floyd
Main changes:
- Gained approximately 180 elo at fast time controls
- Better handling of zugzwang positions
- Fixed illegal moves deep in PV (reported by Dirk-Jan D.)
- Full solution for the "0readyok" problem: also don't split info lines
- Able to abort search in Python module (e.g. by Ctrl-C)
Under the hood:
- Added history counters for move ordering
- Improved move ordering for killers
- Improved null move pruning/reductions (aka verification)
- Added delta pruning
- Added hanging piece evaluation
- Added basic futility pruning, razoring and stand pat pruning
- Some minor evaluation weight tuning
- Simplified UCI move printing
- Eliminated spurious "Illegal move" in debug mode
The Floyd project is primarily intended as a platform for experimentation. This means that emphasis is on ease of change, clarity, soundness and preferably a very low code count. There are now only about 4,000 lines of real code. Raw search speed is of a lesser importance. Still most, if not all, modern evaluation and search techniques are present in their basic form and therefore Floyd can play very strong chess.
Executables: https://marcelk.net/floyd/
Sources: https://github.com/kervinck/floyd
Main changes:
- Gained approximately 180 elo at fast time controls
- Better handling of zugzwang positions
- Fixed illegal moves deep in PV (reported by Dirk-Jan D.)
- Full solution for the "0readyok" problem: also don't split info lines
- Able to abort search in Python module (e.g. by Ctrl-C)
Under the hood:
- Added history counters for move ordering
- Improved move ordering for killers
- Improved null move pruning/reductions (aka verification)
- Added delta pruning
- Added hanging piece evaluation
- Added basic futility pruning, razoring and stand pat pruning
- Some minor evaluation weight tuning
- Simplified UCI move printing
- Eliminated spurious "Illegal move" in debug mode