TT: Overhead of incrementally updating Zobrist key

Discussion of chess software programming and technical issues.

Moderator: Ras

lojic
Posts: 71
Joined: Thu Jan 28, 2021 9:50 pm
Full name: Brian Adkins

Re: TT: Overhead of incrementally updating Zobrist key

Post by lojic »

mvanthoor wrote: Tue Feb 16, 2021 6:15 pm (Is your engine called "RacketChess", "Racket", or something else, by the way?)
I named the Github repo "RacketChess", but I should probably come up with a different name. There may be many Racket-based chess engines in the future, and it doesn't seem appropriate to squat on that name.
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: TT: Overhead of incrementally updating Zobrist key

Post by mvanthoor »

PS: I found it helpful to make the engine completely self-sufficient.

Therefore it has a command-line option for basically everything. It can run any perft test, by running:

Code: Select all

rustic -f "<fen>" -p <depth> -h <mb>
In the same way, it can analyze any position:

Code: Select all

rustic -f "<fen>" -p <depth> -h <mb> -q
....
go <enter>
And do a full checkup of its move generator, make, unmake, zobrist hashing, and transposition table, by compiling it with EPD perft-suite support:

Code: Select all

cargo build --release --features "extra"
rustic -f "<fen>" -e -h <mb>
I started the same way as you did (with a console), but after I got the basics working, that got tiring quickly; so I implemented the UCI interface right after, and I keep the command line options in sync with new features such as the hash table. (In time, it'll also have a self-sufficient --texel option for tuning, etc... in the "extra" module.)

I like it if the engine can support all of its functionality without requiring extra files and/or scripts.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: TT: Overhead of incrementally updating Zobrist key

Post by mvanthoor »

lojic wrote: Tue Feb 16, 2021 6:22 pm I named the Github repo "RacketChess", but I should probably come up with a different name. There may be many Racket-based chess engines in the future, and it doesn't seem appropriate to squat on that name.
You can use something similar, like I did with Rustic. (There are several other projects called "Rustic", but they have nothing to do with chess. But you can find "Rustic" chess sets, which are mostly made to look old, or antique.)

If I'd write a Racket-based engine, I'ld probably call it Ratchet :D

Was a cool Transformer too, especially in Transformer's Prime.

The quote of your chess engine, when Ia piece gets captured, could be: "Darn, I needed that!" (Look up Ratchet in Transformer's Prime...)
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL