- Blind mode tutorial
lichess.org
Donate

How Do Chess Engines Really Work?

This was a great writeup. I am a programmer interested in building a toy engine, so I might use this as my kickstart guide.

I assume you got some kind of clearance to have your bot play on the site? Can anyone apply for that?

This was a great writeup. I am a programmer interested in building a toy engine, so I might use this as my kickstart guide. I assume you got some kind of clearance to have your bot play on the site? Can anyone apply for that?

@DarkRama said in #4:

This was a great writeup. I am a programmer interested in building a toy engine, so I might use this as my kickstart guide.

I assume you got some kind of clearance to have your bot play on the site? Can anyone apply for that?
Thanks. In fact, you don't need a special authorization to make your engine play as a bot on Lichess. For that, I used lichess-bot: https://github.com/lichess-bot-devs/lichess-bot. This is a bridge between lichess.org and chess engines. I think most if not all bots on Lichess use it. One prerequisite is that your engine must implement some kind of standard chess interface, like UCI (Universal Chess Interface), or even the maybe less common XBoard protocol. Then, you "just" have to follow the lichess-bot setup instructions to create a new account, upgrade it to BOT with an API token, install and configure lichess-bot to get your bot running.

@DarkRama said in #4: > This was a great writeup. I am a programmer interested in building a toy engine, so I might use this as my kickstart guide. > > I assume you got some kind of clearance to have your bot play on the site? Can anyone apply for that? Thanks. In fact, you don't need a special authorization to make your engine play as a bot on Lichess. For that, I used lichess-bot: https://github.com/lichess-bot-devs/lichess-bot. This is a bridge between lichess.org and chess engines. I think most if not all bots on Lichess use it. One prerequisite is that your engine must implement some kind of standard chess interface, like UCI (Universal Chess Interface), or even the maybe less common XBoard protocol. Then, you "just" have to follow the lichess-bot setup instructions to create a new account, upgrade it to BOT with an API token, install and configure lichess-bot to get your bot running.

Well written and easy to follow explanation - love to read more from you!

Well written and easy to follow explanation - love to read more from you!

There's enough advanced concepts implemented in this toy engine that to make further progress, I'd need to first add test automation to ensure I'm not breaking anything...

Noteworthy: an example test implementation in Python:
https://www.chessprogramming.org/Bratko-Kopec_Test#External_Links

There's enough advanced concepts implemented in this toy engine that to make further progress, I'd need to first add test automation to ensure I'm not breaking anything... Noteworthy: an example test implementation in Python: https://www.chessprogramming.org/Bratko-Kopec_Test#External_Links

Hi there,

as i chose to read your article, i was expecting a good laugh, as there happens to be a conflict: Either explanations are insufficient/incorrect or they are incomprehensible by most readers. ;-)

But you did well, no major flaw, and due to the complexity of the matter, i can understand, that neither the creation/training of a neural net nor the historical viewpoint about how our situation developed, possibly focussing on the why's and why not's has made it into the article.

With this much of an insight, i guess, you clearly see the downsides of picking python as your preferred language. It is not just slower by nature (but faster for the developer), it also misleads humans to take in false concepts, just like many - even scientists - took in the concepts from computers (memory/hard disk/processing/(lately) neural net...) for our brains, forgetting, that the latter are a totally different kind of animal.

But as long as your challenge is mostly a fun training playground, it may prove useful to experiment with recursion, data structures, object orientation and more to develop programming skills into a higher understanding. I myself did never regret having played around with all those topics during my own development as a programmer, although my favorite - at the time - was assembler. (LOL)

Have fun!

Hi there, as i chose to read your article, i was expecting a good laugh, as there happens to be a conflict: Either explanations are insufficient/incorrect or they are incomprehensible by most readers. ;-) But you did well, no major flaw, and due to the complexity of the matter, i can understand, that neither the creation/training of a neural net nor the historical viewpoint about how our situation developed, possibly focussing on the why's and why not's has made it into the article. With this much of an insight, i guess, you clearly see the downsides of picking python as your preferred language. It is not just slower by nature (but faster for the developer), it also misleads humans to take in false concepts, just like many - even scientists - took in the concepts from computers (memory/hard disk/processing/(lately) neural net...) for our brains, forgetting, that the latter are a totally different kind of animal. But as long as your challenge is mostly a fun training playground, it may prove useful to experiment with recursion, data structures, object orientation and more to develop programming skills into a higher understanding. I myself did never regret having played around with all those topics during my own development as a programmer, although my favorite - at the time - was assembler. (LOL) Have fun!

@SlowSlug said in #8:

Have fun!
Who play Chess without having fun ?

@SlowSlug said in #8: > Have fun! Who play Chess without having fun ?

Thanks for a pretty useful and motivating blog! Thanks to you, I've improved my engine a few notches, lol.

Thanks for a pretty useful and motivating blog! Thanks to you, I've improved my engine a few notches, lol.