chess22k v1.0
-
- Posts: 24
- Joined: Wed Jun 01, 2016 3:52 pm
chess22k v1.0
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?
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?
-
- Posts: 190
- Joined: Sun Jul 14, 2013 10:00 am
- Real Name: H.G. Muller
Re: chess22k v1.0
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.
-
- Posts: 24
- Joined: Wed Jun 01, 2016 3:52 pm
Re: chess22k v1.0
I think you can read in my post that I've had enough satisfactionH.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.
It would indeed be really nice to get on the CCRL-list. Any idea how that is achieved?
-
- Posts: 190
- Joined: Sun Jul 14, 2013 10:00 am
- Real Name: H.G. Muller
Re: chess22k v1.0
I guess announcing the release in a place where CCRL testers regularly read (such as talkchess.com) should be sufficient.
-
- Posts: 30
- Joined: Thu Dec 29, 2016 10:13 pm
Re: chess22k v1.0
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.
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.
-
- Posts: 24
- Joined: Wed Jun 01, 2016 3:52 pm
Re: chess22k v1.0
Tx for the kudosnotachessplayer 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.
The evaluation tables were originally from another source (don't know which ) 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.