Thursday, October 23, 2008

Prédateur's first competition in Chesswar

Prédateur entered Olivier Deville's 13rd Chesswar tournament for the first time and scored 5.5 points out of 11 (+4-4=3). Average result for an average ranking : 87/194 and a 1575 perf. I'm quite glad anyway, as it's a good result for a first try. I'll try to reach the top 10 next year!
You can watch in a fancy online interface all of the 11 games Prédateur played by clicking here.
One last word : thank you Olivier for organizing and running this great event ! It's much appreciated !

Monday, July 7, 2008

Prédateur 0.1.5 : Harder, Faster, Better


There we go! A new release For Prédateur. Several major bugs were corrected while many improvements were made. As you can see on this link, this version is really improved. The games for this tournament can be seen on this page.

New Functionalities :
- Verified Null-Move (tested working)
- Threat Extension
- Check Extension
- Singular Reply Extension
- Recapture Extension
- Pawn Push Extension
- Late Move Reduction (Thanks Dany!)
- Futility Pruning
- Extended Futility Pruning
- UCI command "go movetime xxxx", making possible to use Prédateur
with "x seconds per move" time ratings
- UCI command "go depth x", making possible to use Prédateur with
"search up to x plies" types "time" ratings
Modifications :
- Small tuning of the evaluation function.
(Hopefully) corrected bugs :
- Gigantic bug that made Prédateur play its last analyzed move before
the end of time instead of its best move found (as a result,
Prédateur was nearly playing randomly when in lack of time).
- Big bug in the hash tables : Prédateur did not take into account the
side to move when storing/retrieving positions in the hash.
- Small bug in the null-move that made it a R3 NM instead of a verified R3 NM.
- Various other unlisted small bugs.
Special thanks to Dany, Harald, Pradu and Andres!

Wednesday, June 25, 2008

Prédateur 0.1.4r2 bugfixed



The last release had a serious bug that prevented Prédateur from checkmating its opponents or see the checkmates. Its strength was thus severely severed. I'm sorry for those of you who bothered testing it. I took more time to test this one in depth before releasing it.

This is actually not a bugfix version only. Here is a list of the changes :

  • added a special time manager to handle 1) games with no time increment 2) grumpy testers
  • fixed an horrible bug in the checkmate handling
  • a first try with null-move (verified null-move)
  • total hash default size reduced to 64Mb (48 main + 16 quiesce). You can change those default sizes in the uci options.

Saturday, June 21, 2008

Prédateur 0.1.4 escaped!


Beware! The latest Prédateur just escaped and seemed to be in a playfull mood last time I met him...

This update is quite a major one. Maybe not in the playing strength (test will tell) but certainly from a user point of view. The code has been seriously cleaned up too and made ready for future improvements. I decided to postpone its translation to bitboards, as I could triple its speed by improving the current move generator. Here comes a summary of changes and improvements :

New functionalities :
- takeback implemented
- Prédateur now polls the console during its search and reacts to "stop" and "quit"
- Prédateur now handles FEN strings, though only allowing legal positions (Predateur can thus now be used as an analyse tool)
- UCI options uci Main_Hash added, allowing the user to set the main hash table size, and the uci option Quiesce_Hash that does the same for the quiescence search hash table
- Search extension for forced moves (that way Prédateur sometimes find deeper mate sequences)
- Algorythm to checkmate the naked king.
- perft tests implemented : Prédateur passes it successfully for all the test positions I tried (command : "perft x", x being the depth)
- a readme file
Modifications :
- The quiescence search hash table is back (small speed improvement)
- Evaluation function modified and speeded up :
-> penalty for isolated pawns
-> towers on (semi-)opened columns
-> pieces-square tables
-> attempt to develope minor pieces in the opening
- Check test and move generator partly rewrote.
Result : >+100% nps compared with Prédateur v0.1.3b2!
- Moves lists now sorted with quicksort instead of bubble sort. (+15% nps!)
- Better move ordering (Prédateur plays around 1.1 moves out of 30!)
- Time use slightly improved (?)
Corrected bugs :
- Yet another mate bug fixing attempt (the ultimate one?)
- bugs removed from the Restaure() function (castle flags might got lost)
- Another big bug eradicated from the Restaure() routine : Non initialized to zero, it made Prédateur compute lots of useless stuff.
- perft allowed me to correct several bugs :
-> the check test only took into account original knights, not pawns turned into knights - fixed
-> en passant capture broken - fixed

Monday, May 19, 2008

Prédateur 0.1.3b2 released



I now decided to release the last fully working version of Prédateur (that is, with no known bugs).

Amongst the improvements since v0.1.1 :

  • - transposition tables
    - many speedups
    - checkmate bug corrected : Prédateur should now always give the mate when there's one in range, and try to escape any checkmate menace it detects
    - more accurate info line
    - Evaluation function deeply modified, with many new euristics (wich might make it play even worse, hehe ;-) )
    - alpha beta move ordering improved.

I don't have the sources of this very specific version anymore, as the last sources I have for this Prédateur "classic" version are the ones for v0.1.3b4, which sadly has a bad bug making Prédateur selects bad variations from time to time (but even once in a game is enough to lose the game).

This version is untuched since nearly two months, as I'm in the process of rewriting Prédateur from scratch using bitboards.

Friday, May 16, 2008

You wanted it, you get it


All right... due to shameless and harsh popular pressure, I decided to release the old Prédateur 0.1.1.
This was a one month old version, so don't complain about any bugs you would find in this early version.
I must add that it was purely designed for engine to engine gantlets, and so lacks some uci commands to force it to play and so on...
I hope you'll have some fun toying with this early version anyway. =)
Download link on the right.