Page 1 of 1

chess22k v1.0

Posted: Fri Jan 13, 2017 10:26 am
by sandermvdb
I just released the first version of my engine on Github on which I have been working for about a year. See:
https://github.com/sandermvdb/chess22k

This has been my 2nd engine. About three years ago I started building an engine which the basic knowledge I had; I could program and I could play chess. This engine could only search till a depth of about 6 plies and I soon found out that if I wanted to build a good engine, the foundation had to be different. So therefore I started about half a year later with my current engine.

A good initial source of information was the following thesis (Nesik):
http://www.top-5000.nl/ps/SomeAspectsOf ... amming.pdf

It felt really good when at a certain point my engine was better than Nesik. I had beaten my master :)

Other usefull sources I've used are Mediocre (also written in Java):
http://mediocrechess.blogspot.nl/

And Madchess (site seems not to be complete anymore):
http://www.madchess.net/

I've used ChessArena a lot to test my engine. One of the included engines is Anmon, which has an elo of about 2500. Most of the time I'd thought that this engine/elo was way out of reach and I will never forget the moment I first beat Anmon! An example:
https://en.lichess.org/Mc5hWy4s/black

At the moment I am also using CuteChess to test engines multi-threaded.

What do you think? :)

Re: chess22k v1.0

Posted: Sat Jan 14, 2017 9:55 am
by H.G.Muller
Very nice. But remember that this is a hobby that you almost exclusively do for your own satisfaction. The demand for engines that play orthodox Chess is close to zero, (and there already are thousands on offer), unless they are within a couple of Elo from Stockfish. There is a (quite small) community of engine testers, who use any engine to play against other engines.

Re: chess22k v1.0

Posted: Sat Jan 14, 2017 4:13 pm
by sandermvdb
H.G.Muller wrote:Very nice. But remember that this is a hobby that you almost exclusively do for your own satisfaction. The demand for engines that play orthodox Chess is close to zero, (and there already are thousands on offer), unless they are within a couple of Elo from Stockfish. There is a (quite small) community of engine testers, who use any engine to play against other engines.
I think you can read in my post that I've had enough satisfaction :)
It would indeed be really nice to get on the CCRL-list. Any idea how that is achieved?

Re: chess22k v1.0

Posted: Sun Jan 15, 2017 11:17 am
by H.G.Muller
I guess announcing the release in a place where CCRL testers regularly read (such as talkchess.com) should be sufficient.

Re: chess22k v1.0

Posted: Wed Jan 18, 2017 10:16 pm
by notachessplayer
Kudos, seems like a very well written program.

Did you get your evaluation tables from other sources or from your own game knowledge?

Also, I've been wanting to cache moves generated at the corresponding hashing key (and why not in a persisent table) to gain a lot of time during the search, but it has proven unreliable because of collisions (using 56 bits). I didn't find it in your code, so I assume you don't do it neither? Or did I see it wrong?
I have solutions to this problem, but they're not as elegant and as fast as I would hope.

Re: chess22k v1.0

Posted: Thu Jan 19, 2017 7:08 pm
by sandermvdb
notachessplayer wrote:Kudos, seems like a very well written program.

Did you get your evaluation tables from other sources or from your own game knowledge?

Also, I've been wanting to cache moves generated at the corresponding hashing key (and why not in a persisent table) to gain a lot of time during the search, but it has proven unreliable because of collisions (using 56 bits). I didn't find it in your code, so I assume you don't do it neither? Or did I see it wrong?
I have solutions to this problem, but they're not as elegant and as fast as I would hope.
Tx for the kudos :)

The evaluation tables were originally from another source (don't know which :oops: ) but I have updated them so they better 'fit' my engine. For instance if you want to stimulate castling, there are several ways of doing that. I also think these numbers can be optimized a lot.

I have never looked at caching generated moves because I have never read about that. And to be honest, I generate moves incrementally (hash-move, attack-moves, killer-moves, etc) so I don't think it would improve the search a lot. Offcourse this also depends on your move-generation speed.