5 ms·
This engine appears to have neither an interesting evaluation of positions, nor any of the performance tweaks that make traditional engines powerful. You're lik
by thom 7y 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 https://www.chessprogramming.org, but all chess engines are beautiful in their own way, and I have certainly created nothing better.
- Recursing 7y agoIt'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
- thom 7y agoYeah, 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.
- Recursing 7y agoYou are welcome to try to play my rust rewrite of this exact engine on lichess https://lichess.org/@/sunfish_rs 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)
- thomasahle 7y agoThat is cool! I've thought about making a rust version of Sunfish, and I didn't even know this existed!
- thomasahle 7y agoIt 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.