Comment by thom
7 years ago
This engine appears to have neither an interesting evaluation of positions, nor any of the performance tweaks that make traditional engines powerful. You're likely to learn more in an afternoon on https://www.chessprogramming.org, but all chess engines are beautiful in their own way, and I have certainly created nothing better.
It actually has quite a few performance tweaks that make traditional engines powerful.
For starters:
- A 12x10 Mailbox board representation.
- Killer move heuristic.
- QSearch.
- Null move pruning.
- Move sorting based on captures and positioning.
- MTD-bi search.
- Mate testing based on king capture.
- Transposition tables.
The Chess Programming Wiki is a great place to learn more about all of these though.
It's not meant to be a competitive engine, after all, it's written in 111 lines of python.
I think it could be very useful for didactic purposes, or for getting started. Not having all the extra complexities needed for efficient board representation, position evaluation, move generation etc... makes the big picture much clearer imvho
Yeah, I totally agree that eval + search is the first step to learn, in terms of overall structure. And this includes lots of important concepts like quiescence search etc. I just think it's worth being honest: you either need really good eval or really fast search just to give _yourself_ a good game.
You are welcome to try to play my rust rewrite of this exact engine on lichess https://lichess.org/@/sunfish_rs
If you're not a top 5% player, it can absolutely give you a good game (especially on fast time controls)
1 reply →