Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Publius 1.0 - new version chess engine


 Publius - public domain didactic chess engine
Author: Pawel Koziol


Publius is a simple public domain bitboard chess engine created for didactic purposes. Basically a boilerplate chess engine to build upon, no strings attached.

The current rating estimates are:

2874 on the CCRL scale for the HCE version, based on the score against Fruit 2.1: 738.0/1000 at 30s+0.16s
3250 on the CCRL scale for the NNUE version, based on almost holding its own in a 500 game match against Stash 33
"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, backward and isolated pawns, king safety based on attack units 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.
github:https://github.com/nescitus/publius




Comments