Releases: frankkopp/FrankyGo
v1.0.3 Bugfix Release
v1.0.2 Bugfix Release
Fixed bug in pre computation of positional values
v1.0.1 Bugfix Release
Fixed:
MoveGen hasLegalMove did not check pawn doubles but necessary when pawn double blocks attacker in an otherwise nearly mate position.
v1.0.0
v1.0.0
- DONE:
- change default behavior for log files so running the executable without logs folder works smoothly
- make it runnable without config file / config file optional
- Razor (Stockfish)
- QSearch Futility Pruning
- Additional Feature Test tool
- History Heuristics (History Counter, Counter Moves)
Version v0.8.0
v0.8.0 (done)
- DONE
- SEE
- Move generation considering check evasion
- Reverse Futility Pruning
- Futility Pruning
- Search extensions:
- Check extension
- Mate threat extension (not active - search tree gets too big)
- Restructuring of packages to better match Go best practices
Version v0.7.0
v0.7 (done)
- DONE
- LMP and LMR
- Null Move
- Use TestSuites, TreeSize and Arena to test features
- Better Evaluation (not active in config yet - needs testing)
- Performance/Profiling/Testing
- Removed MPP (Minor Promotion Pruning) - more harm than benefit
vx.x (planned)
- TODO:
- SEE
- Better Evaluation and testing
- Pawn Structure Cache
- FP
- Ext
- MultiCut Pruning
- Other Prunings
- Aspiration
- NullMove Threat Detection
- Continuously Performance/Profiling/Testing
- LMR and LMP - more testing needed
FrankyGo v0.6
FrankyGo v0.6
v 0.x (planned)
- TODO:
- MultiCut Pruning
- IID??
- Aspiration
v 0.7 (planned)
- TODO
- Null Move
- Other Prunings
- Use TestSuites, TreeSize and Arena to test features
- Remove MPP if not worth
- Better Evaluation
- Pawn Structure Cache
- Performance/Profiling/Testing
v 0.6 (done)
-
DONE
- Enhance TestSuite / run from command line options
- TestSuite Tests
- PVS
- Killer
- TT in QS
- MDP/MPP
-
Remarks
PVS and TT might have some dependencies which I have not fully understood yet.
Some engines for example only cut with TT values for alpha/beta value in non PV nodes.
Tests show no drop in Search strength either way and also search tree size shows no
obvious issues -
Measurements
Test Standpat Nodes 4.837.838 Nps 3.507.125 Time 1.450
Test TT Nodes 1.763.431 63,55% Nps 3.137.947 10,53% Time 544 62,48%
Test QSTT Nodes 1.022.318 42,03% Nps 2.748.463 12,41% Time 379 30,33%
Test MDP/MPP Nodes 1.010.160 1,19% Nps 2.769.100 -0,75% Time 367 3,17%
Test PVS Nodes 893.718 11,53% Nps 2.777.407 -0,30% Time 322 12,26%
Test Killer Nodes 857.379 4,07% 82,28% Nps 2.802.207 -0,89% 20,10% Time 309 4,04% 78,69%
v0.5
FrankyGo v0.5
Fully playable in Arena against other engines.
Has AlphaBeta, Quiescence, Transposition Table, Opening Book.
Includes search feature testing to understand impact of search optimizations better.
v 0.x (planned)
v 0.6 (planned)
- TODO
- TestSuite Tests
- Better Evaluation
- Pawn Structure Cache
- IID
v 0.5 (done)
-DONE
- Use TT
- SearchTreeSize
- Quiescence search
- Score as string()
- Evaluation (simple)
v0.4
FrankGo v0.4
v0.4 works for plays with Arena against other engines.
v 0.5 (planned)
- TODO
- Evaluation (simple)
- Quiescence search
v 0.4 (done)
- DONE
- Pondering
- Testing for correct play with Arena against Stockfish
- log files for standard and search log
- Implement simple Evaluator
- Complete simple search
- Implement simple Search
v0.3
v 0.x (planned)
v 0.4 (planned)
- TODO
- Implement simple Search
- Implement simple Evaluator
- log files for standard and search log
v 0.3 (done)
- DONE:
- CleanUp and additional documentation
- complete uci options
- add log files to command line options
- make log files configurable
- make book configurable
- added uci options
- added configuration via file and command line
- search handling
- starting / stopping
- time control
- limits (except depth limit - needs simple search minimax)
v 0.2 (done)
- DONE
- CleanUp
- Added logging
- TranspositionTable
- Perft enhanced and more tests
- UCI Handler enhanced
- Completed MoveGen
- OpeningBook base framework (reading and caching)
- Improve performance of Perft - otherwise not worth continuing
- Added MoveSlice - little optimization of MoveArray - usable directly as Slice
v 0.1 (done)
- DONE:
- Perft works (1.353.761 nps / Java 3.5M, C++ 4.5M)
- MoveGenerator (all required for perft)
- Position (all required for perft)
- MoveArray and MoveList - both are for list of moves - MoveArray is faster for sorting
might be slower when inserting at the front - needs testing - Most types (all required for perft)