Hacker News new | past | comments | ask | show | jobs | submit login
An unusual UCI chess engine
2 points by omnivorist on Jan 9, 2020 | hide | past | favorite | 3 comments
For some time now I have been fascinated by the idea of a chess engine with an unusual evaluation function - at least I imagine it is unusual, I'm not an expert chess programmer and am not particularly familiar with the field. Most chess engines employ a tree-searching strategy with an evaluation function applied at the leaf nodes. It is the evaluation function that interests me primarily. Most evaluation functions embody some form of 'chess knowledge' such as pawn structure, placement of pieces on the board etc. My idea is for an evaluation function that scores a position purely on the number of legal moves available. By adopting such a simple function I would hope to be able to explore the tree a little more deeply than other engines. I have never written a chess engine before and I based my work on the Vice engine which is described in detail on Youtube. My engine - provisionally called Moby (for mobility) is written in C++ and the first implementation is running. Right now it plays a reasonable game but would be no match for the competition. At present it is only searching to depth 5 or 6 as it presently doesn't detect duplicate moves. Adding this in should make a difference I imagine. I'd love to hear from anyone who has considered something similar or who might find this post interesting. If my engine gets stronger I might release it so that it can be ranked alongside similar engines.



> By adopting such a simple function I would hope to be able to explore the tree a little more deeply than other engines.

I think you will explore the tree more widely, not more deeply. Many engines trim the tree very aggressively to make a mode depth analysis.


Thanks for your comment. The answer is that I am still hoping to trim the tree like other engines. The simplicity of my engine lies solely in the evaluation function. What I hope to save in CPU cycles on the evaluation might enable me to go deeper on the tree. That's the idea at least.


Have you look at the method used by DeepBlue or Alpha(Chess)Zero? IIRC they use a simple evaluation function and a lot of brute force ...




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: