This is the home of Plisk the chess engine developed by me, Vlad Stamate. I developed this chess engine from scratch as a means to learn chess programming. It is not a clone of any engine out there.
Contact: vlad dot stamate at gmail dot com
This is a bit of history of how I came about programming chess and how Plisk came into existence.
I first started chess programming in 2006 on a program called ps3chess. It did not have proper alpha beta search and the evaluation was really bad. Move generation was reaaaaaly slow. Also very buggy.
That came out of ps3chess when I converted it from C to C++. Some classes still exist in Plisk today. This is also the first time perft actually produced correct numbers.
Fastthink was the successor or ps3chess2 and it came about because I started to fully utilize the bitboards I had and started using rotated bitboards for move generation , attack detection, etc. SEE has been added at this version.
Plisk is the current version of the chess dynasty. I started working on Plisk in January 2009. The search has been completely re-writen from fastthink and it has very few bugs now. The evaluation has been tweaked and corrected a lot. Mainly, the difference in strength between fastthink and Plisk are to do with the fact that Plisk has very few known bugs.
- alpha-beta PV prunning search
- quiesce search
- delta prunning in QS
- late move reductions
- rotated bitboards
- futility pruning
- check/promotions extension
- opening book (in own format)
- UCI and XBOARD protocol
Plisk plays both on FICS and ICC.
Tournament rating websites
Computer Chess rating lists
WCRCC 2010 - http://aigames.net/ACCA/ACCAWCRCC/2010ACCAWCRCC/WCRCCResults.html
OpenWar7 - http://www.open-aurec.com/chesswar/OpenWar/OpenWar07/openwar.htm
ACCA ACCC 2010 - http://compchess.org/ACCAChampionships/ACCA2010Championships/2010ACCCResults.html
While Plisk supports both UCI and XBoard protocols, when run from the command line it supports few more parameters.
Will produce the perft calculation up to the required depth. It will perform make/unmake at the leaves too.
You can optionally provide a fen string. If none is provided, perft calculation will be performed from the start position
plisk -perft <depth> [fen]
Will run tests to see if plisk can find the required best move(s) from the given epd/fen file.
plisk [-quiet|--q] [--t <seconds>] [--d <depth>] [-analyze|--a] <path_to_epd> [start_pos number_of_tests]
-quiet - will make plisk show stats instead of full analysis. Useful if you want to test plisk against known tests. Omiting -quiet is useful if you want to analyze a given position.
start_pos - is 0 based, so first position in a file is 0. If the last 2 arguments are missing then the entire file will be tested.
--t <seconds> - means each position will be searched at the given number of seconds. If you pass 0 the search will be infinite.
--d <depth> - will search each position to a given depth in plys. It is mutually exclusive with the -t option.
Will produce a static evaluation of the position given in fen format from the side to move point of view.
plisk -evaluate <fen>
Plisk uses Polyglot books. It can create books from pgn files, merge two Polyglot moves into one, list the available moves (with percentages) for a given position in a book as well as give statistics about books.
plisk -createbook <pgnfile> <halfmoves> <minplayed> <bookfile>
pgnfile - the file to create the book from
halfmoves - number of half moves from each game to use
minplayed - only use moves if they were played at least that many times
bookfile - the name of the binary book file as output
plisk -mergebooks <book1> <book2> <mergedbook>
plisk -bookstats <bookfile>
plisk -listmoves <bookfile> <fen>
* - ran with a faster CPU: AMD Phenom II @ 2.6GHz compared to AMD Phenom @ 2.4Ghz for the previous versions.
0.2.7d - (11/12/2010) - Win Binaries - Linux Binaries - MacOSX Binaries
- eval from engine's PoV (back as it always used to be)
- updated opening book
- king safety tweaking
- pawn evaluation tweaking
- don't miss PV output when kibitzing
- change mobility eval for Knights, Bishops and Rooks
- some general speed optimizations
- added support for hash size commands in the UCI protocol
0.2.5n - (07/23/2010) - Win Binaries - Linux Binaries - MacOSX Binaries
- reworked king safety
- new move sorting algorithm
- speedups in evaluation
- eval printed from White's point of view
0.2.4o - (06/17/2010) - Win Binaries - Linux Binaries - MacOSX Binaries
- search improved
- switched book format to Polyglot books
- added Polyglot book management options
- small evaluation changes
0.2.3h - (05/14/2010) - Win Binaries -
- fixed a bug related to calculating pawn attacks and hashing
0.2.3 - (05/13/2010) - Win Binaries -
- improved king safety (pre-castle) evaluation
- fixed a mate and pondering bug
- enabled futility pruning
- tweaks and improvements in passed pawns evaluation
0.2.2 - (05/03/2010) - Win Binaries - Linux Binaries
- fixed bugs in passed pawns and isolani pawns eval and hashing
- improved king safety evaluation
- added ponder
0.2.1 - (04/21/2010) - Win Binaries - Linux Binaries
- rewritten search
- added working TT
- rewritten evaluation
- bug fixes - lots of them
0.1.2 - (08/20/2009) - Win Binaries - Linux Binaries
- fixed a bug when selecting a move from OpeningBook could cause it to select an invalid move.
- when only 1 legal move, do not search(if in root), just return it
- lower the weak rank penalty
- bonus for minor pieces attacking isolani pawns
- fixed receiving multiple moves in force mode under xboard protocol
- have a move prepareSort function that is for QS only
- reworked piece mobility
- tweaks to timing code
- penalty for trapped rook by the king who moved
- bonus if the passed pawn is not isolani
- added stats printout when analyzing positions
- new analysis output when specifing -analyze
- new parameter (-d <depth>) forces analysis to only go to a certain depth
- do not do SEE if the pawn is the capturing piece
- fixed a bug with not detecting pawn moves from opponent for verifying the 5-move rule.
- reworked king's pawn shield evaluation
- added extension for when entering a pawn-only endgame
- added initial pawn-only eval: just king vs passers for now
- doubled up pawns as passers evaluated differently
- fixed a bug in UCI protocol to do with promotion moves
- evaluation values tweaks
- LMR tweaks
- killer moves now indexed by ply not by depth
- fixed futility prunning conditions
- order good captures by MVV/LVA (and other changes in move ordering)
- added a sleep while polling for input
- improved king safety in mid game
- weak back rank for king detection
- corrected analysis reporting
- generate king moves last, but castling first
- fixed xboard protocol for when playing -scp and black
- fixed pinned pieces detection
- fixed end game draw chance evaluation
- added a -t parameter to analysis
- corrected SEE function
- added hash move in move ordering
- fixed some xboard protocol bugs
- improved king safety code
- fixed some pawn evaluation terms (passed pawns and islands)
- add LINUX binary (32bit compile)
web counter code