lichess.org
Donate

The highly frustrating side of chess engine development.

@Georgii_Surov_Suslik said in #3:
> Dude, @likeawizard .
> Your bot is insane! It so fast!

It's not that fast. When it has to think it will play at normal speed. I your game the bot just blitzed out opening book moves. Book moves stop at move 10. So after that it plays much slower. Unless it finds a checkmate - then it again blitzes out moves instantly.
@likeawizard said in #4:
> It's not that fast. When it has to think it will play at normal speed. I your game the bot just blitzed out opening book moves. Book moves stop at move 10. So after that it plays much slower. Unless it finds a checkmate - then it again blitzes out moves instantly.

Didn't impress me, still very fast
Thanks for leaving the chess insights enabled for others to view.
lichess.org/insights/likeawizard-bot/accuracy/openingFamily

It's interesting to compare chess engine insights.
Seeing the different chess openings families that each bot produces is interesting.
I searched through 15 bots and put their repertoire on a spreadsheet and sorted them.
I have not finished the list, but found the Van Geet Opening was so far unique to your bot at 93.60% accuracy.
"There's an old saying about those who forget history. I don't remember it, but it's good." - Stephen Colbert

But seriously, IBM's Deep Blue & rematch demonstrated the importance of modeling the right data, using the right algorithms, and having a speedy engine.

Leela Chess Zero and Stockfish demonstrated the importance of a robust test suite.
@Toscani, I had mostly forgotten that the feature exists. Might have to look through it. Who knows maybe it will give some insights where work needs to be done.

But my engine is not really producing any openings it just plays from a book until move 10. Picking moves with weighted randomness with a cut-off below certain values. That is all handled by the lichess python bot. Though my engine can play book moves too with the right settings.

The book I use is compiled by myself from the freely available lichess PGNs with no curation from my side. I have seen other bots use books that are already publicly available. The program filters out games that are bellow some rating threshold and bullet. I am currently working on improving the software that compiles those books. Such that I can add some extra depth to the book and also prune some low weight moves from it such that it does not take several gigabytes. Interesting work.
@Toadofsky said in #7:

> the importance of a robust test suite.

I really need to do that myself as well. Would take away some of the pain I talked about this blog. I of course have a perft command which simply counts all the nodes that can be reached from a given starting position and then compare them with known results. While also having tiny sanity checks within. To make sure that the internal state does not get corrupted during play.

Other than that I use self-play against the current stable version and just look if Elo goes up or down.

Having something more robust and automated would be great for developer experience.
optimizing code given algorithm... optimizing algorithm given problem.. but not optimizing problem given ELO on anemic lacking imagination contexts.

AB pruning may preserve original problem.. but optimzing that by optimizing problem.. is not code optimization given problem.

not to mention all the open source, scientific or statistical transparency, or efficnent chess interpretability coomunication problem, that is actively neglected given the same never revisde end-point.. been decades. now hasn't it?

also very well hidden under the carpet.. optimizing problem at leaf evaluation level... by hand-craftedly decreting that quiescent filtering and poor but numerous leaf evalutions is equivalent to the problem even if it is as reduced problem. even AB would not preserve the full problem with that bottom reduction.