Publius is a dead simple public domain bitboard chess engine created for didactic purposes. Basically a boilerplate chess engine to build upon, no strings attached.
The current rating estimate is 2854 on the CCRL scale, based on the score against Fruit 2.1.
"Simple" and "teaching engine" are vague concepts, so explanation of constraints is in order:
eval is done, if not necessarily tuned. It takes into account material, bishop pair, piece/square tables, mobility, passed, doubled and isolated pawns, intentionally primitive king safety and some detection of drawish endgames.
quiescence search is probably done, unless I make delta pruning work.
search is under active developement and there will be more stuff added.
board update relies on four functions: AddPiece, DeletePiece, MovePiece and ChangePiece.
apart from the hash key, there are no incremental updates of evaluation stuff. If someone wants to slap NNUE on top of my code, there will be no need to delete them. If not, at least eval can be read in one piece.
movegen uses kindergarten bitboard technique. It's still slower than some libraries out there, but good enough.
I'm still not sure whether to generate discovered checks.
more comments will be added.
The current rating estimate is 2854 on the CCRL scale, based on the score against Fruit 2.1.
"Simple" and "teaching engine" are vague concepts, so explanation of constraints is in order:
eval is done, if not necessarily tuned. It takes into account material, bishop pair, piece/square tables, mobility, passed, doubled and isolated pawns, intentionally primitive king safety and some detection of drawish endgames.
quiescence search is probably done, unless I make delta pruning work.
search is under active developement and there will be more stuff added.
board update relies on four functions: AddPiece, DeletePiece, MovePiece and ChangePiece.
apart from the hash key, there are no incremental updates of evaluation stuff. If someone wants to slap NNUE on top of my code, there will be no need to delete them. If not, at least eval can be read in one piece.
movegen uses kindergarten bitboard technique. It's still slower than some libraries out there, but good enough.
I'm still not sure whether to generate discovered checks.
more comments will be added.
Publius 0.063 by Pawel Koziol
A didactic engine
Windows/Linux & Android profiled builds - Jim Ablet compiles:
Comments
Post a Comment