- 14/08/09:
- Evaluation: code improved, material eval / endgame detection refactored.
- Bitboards: code improved, many global vars (some large arrays) was removed.
- Move gen: code improved, quiet check moves generation is now faster.
- Attacks: code improved for pins and discover checks detection.
- 02/08/09:
- Evaluation: code execution time improved.
- Attacks: code improved.
- Move gen: Check evasions code improved.
- 08/07/09:
- SEE: code improved, some knps gained.
- Threefold repetition detection: code improved, some knps gained.
- Threefold repetition detection: solved minor bug that causes Chronos draw very often.
- Evaluation: pawn structure improved.
- Transposition tables: trans hash tables are cleared when the "new" command is received.
- Move sorting: code improved, some knps gained.
- Score extensions: code refactored, Chronos extends allocated time correctly in certain score changes.
- Search: soved minor bug in first best move detection for root search.
- 12/06/09:
- Extensive code cleanup and refactor in evaluation and movegen.
- Evaluation: Some minor but time-consuming eval terms was completely removed.
- 29/05/09:
- Evaluation: Material evaluation cleanup.
- Evaluation: Piece-evaluation cleanup and optimized (nps slightly increased).
- Evaluation: Endgame evaluation improved, supporting several common endgames:
- Insufficient material draws: kk, knk, kkn, kbk, kkb, knnk, kknn (improved from version 1.9.5)
- Pawn endgames: kpk, kkp (also supported for non rook-pawns).
- Majors-drawish endgames: krkr, kqkq
- Bad-bishop endgames (A bishop for each side, opposing, and pawns semi balanced)
- Evaluation: Fixed a minor bug in unstoppble passed pawns.
- Evaluation: Pawn shelter slightly improved (infimus ELO gain!).
- Whole code refactoring (some .cpp and .h files were completely excluded).
- Command line parameters: Transposition, material and pawn hash tables sizes can be adjusted.
- 26/04/09:
- Move gen: Main methods optimized (nps slightly increased).
- Search: Prunning conditions refactored.
- Search: Aspiration windows margin narrowed.
- Evaluation: Minor evaluation terms was added in development and material eval.
- 24/01/09:
- Opening Book: again choose a book with classic lines, as used in version 1.9.4, but with much more content.
- 21/01/09:
- Evaluation: Simplistic insufficient material eval was added.
- Search: Null-move verification search refactored.
- Search: Razoring refactored.
- Opening Book: New opening book generated from won games of Kasparov and Karpov.
- 31/12/08:
- Evaluation: Lazy eval was added.
- Evaluation: Static pawn evaluation revised.
- Evaluation: Passed pawns evaluation revised, basic unstoppable pawns evaluation added.
- Evaluation, chess knowledge: Knights outposts added, improved blocked bishop, trapped rooks added, queen-minor exchange added.
- Move gen optimized (nps slightly increased).
- Core data structures oprimized (nps slightly increased).
- Solved minor bugs in: Exchange evaluation, Passed pawns eval, Pawns attacks to king,
- 10/12/08:
- Time management: Score drop extensions was added.
- Time management: Fail-high, Fail-low re-searches now can consume more search time than normal searches.
- Fixed bugs in candidates evaluation and blocked-passed pawns evaluation.
- Passed pawns dangerousness evaluation refactored.
- Fixed-size material hash tables was added.
- Basic material imbalances eval was added for rooks, knights and bishops, acording Larry Kaufman's paper.
- Whole code refactored, core data structures optimized, the engine is slightly faster now
- Some profiling tests was runed (Using "Very Sleepy" and "AMD Codeanalyst") to detect the speed/bad-nps bug.
(Thanks to Pradu Kannan for recommendations on this topic).
- 22/11/08:
- 16/11/08:
- Added quiet checks in QS.
- Extensions code refactored, recapture extension finally was included.
- Fixed a serious bug in SEE(), this increased the strength of the engine by 100 ELO points or more!!.
- 13/11/08:
- Transposition tables code rewrited using a TwoDepth scheme, explained in "Replacement Schemes for Transposition Tables" (D.M. Breuker, J.W.H.M. Uiterwijk, and H.J. van den Herik). (Link)
- Pawn hash implemented to store static evaluation and some king shelter features.
- 08/11/08:
- Added Futility pruning and Razoring.
- NullMove code rewrited using Evaluate() function and verification re-search.
- 01/11/08:
- 30/09/08:
-
31/08/08:
- 23/08/08:
- Several experiments with the PST code. Four PST are generated for each piece (opening, middle, endgame and pawn endgame).
-
21/08/08:
-
10/08/08:
-
28/07/08:
-
23/07/08:
-
A cleaning and refactor began for the whole program. This process continues today, and was the key for fix a ton of bugs. Currently the debug framework is an extension of this process.
If your engine does not play well no matter what you try with the code you have to do the following: Do not add any new features,
backup, then remove any suspicious or too extravagant code, modify the code to make it as simple as possible and finally try to "catch" all bugs as you can (use "asserts" in C).
-
-
Added Basic code for time management and draw detection. The engine started to play very slow and not beat anyone anymore... the project was nearly aborted.
-
-
Enpassant moves implemented. (i delay the development of this feature because I did not consider it important and assumed that it's going to decrease the speed of my precious engine)
-
-
"InCheck" detection in QS.
- 01/06/08:
- Core bitboard functions (Count, Get, Clear and Set) was refactored.
- Added fractional extensions.
- Aspiration windows code improved.
- PVS code improved (Depth>2 removed in re-search detection, because there was a lot of instability in the whole search)
- 21/05/08:
- The standard NullMove code was added.
- GenerateCheckEvasions() implemented.
- Single-reply extension implemented.
- 14/05/08:
-
The initial phase was concluded with the development of the core engine, with the following characteristics: Bitboard move generation, Alpha-Beta w/PVS search, Aspiration windows, History Heuristics, Material and PST evaluation.
-
01/05/08:
-
Project starts from a previous non-bitboard and weak engine named GFC ("Guillermo Filia Chess"). Source code can be found in Downloads section.
|
|