New engine: Calvin

Questions and comments related to CCRL testing study
Post Reply
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

New engine: Calvin

Post by kelseyde »

Hello all,

First time poster here. Over the last few weeks I've been working on a chess engine written in Java as a personal project. It's called Calvin and can be found on GitHub here: https://github.com/kelseyde/calvin-chess-engine

Calvin is UCI-compliant and plays on Lichess where it is rated ~2200: https://lichess.org/@/Calvin_Bot

I would love to submit Calvin to CCRL to see where it lands in the official rankings. My question is, what is the best way to go about that? Should I submit a .jar file or does the link to the repo suffice?

Since I've seen some other posters sharing their names/nationalities for display on the CCRL boards: my name is Dan Kelsey, and I'm from Scotland :)

Many thanks!
User avatar
Graham Banks
Posts: 26916
Joined: Sun Dec 18, 2005 5:47 pm
Sign-up code: 0
Location: Auckland, NZ

Re: New engine: Calvin

Post by Graham Banks »

The jar file would be useful. :)
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

Re: New engine: Calvin

Post by kelseyde »

Hello Graham,

Got it! I've uploaded the .jar to /bin/calvin.jar here: https://github.com/kelseyde/calvin-ches ... e/main/bin

Thanks very much!
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Calvin

Post by Gabor Szots »

Welcome Dan.

I suggest to give it a version number which is included in the jar file name itself and the engine uci id. To distinguish between further releases.

Also, you may put the released versions under 'Releases', to make them easier to find. For example, we may decide to follow new releases using the github 'Notifications' possibility.
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

Re: New engine: Calvin

Post by kelseyde »

Hello Gabor,

Thanks for the tips. I've added the version number to the .jar and also created a Github release describing the latest changes.

What do you mean by UCI id?
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Calvin

Post by Gabor Szots »

kelseyde wrote: Sat Nov 11, 2023 11:25 pm What do you mean by UCI id?
I don't know how it is called exactly but let me show you an example:
uci
id name Piranha 0.5
id author Martin Villwock
option name Hash type spin min 1 max 9999 default 15
option name Ponder type check default true
option name OwnBook type check default true
uciok
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

Re: New engine: Calvin

Post by kelseyde »

Hello,

Apologies for taking so long to get back. I have created a new Calvin release 3.0.0 which contains some UCI-compatibility improvements as well as an increase in playing strength. Hash size and number of threads are now configurable via UCI.

Executable can be found in the bin folder of the latest release: https://github.com/kelseyde/calvin-ches ... /tag/3.0.0

Thanks!

Dan
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

Re: New engine: Calvin

Post by kelseyde »

Hello Gabor, Graham,

I've released a new Calvin version 3.2.0. Since the last time Calvin was tested I've added quite some new features:

- Improved UCI-compatibility: hash size and number of threads are now configurable via UCI. Calvin will now output "id" information as well as available option commands.

- Opening book: simple opening book loaded from .txt file on startup. Can be disabled using the 'OwnBook' UCI command.

- Search optimization: changed order of null-move pruning/reverse-futility pruning checks. Checking whether reverse futility pruning is feasible before null-move leads to a big jump in search speed and playing strength.

- Evaluation optimization. Removed incremental eval updates on each make/unmake move. Due to pruning, updating the eval incrementally on each make/unmake move was actually a hit to performance.

Calvin 3.2.0 can be downloaded here: https://github.com/kelseyde/calvin-ches ... /tag/3.2.0

Regards,
Dan
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

Re: New engine: Calvin

Post by kelseyde »

Hello Gabor, Graham,

Happy new year and I hope things are well in the world of CCRL.

I wonder if you have time, could you run some matches with the newest version of Calvin, released last month? I saw a significant jump in playing strength in the last few versions during local testing, so I'd be very interested to see where it ends up on the leaderboards!

The last version tested on CCRL was 2.9.2. The latest version, 3.2.0, can be downloaded here:
https://github.com/kelseyde/calvin-ches ... /tag/3.2.0

For the next release I have decided to take on NNUE. But that will take me some time to learn the basics of machine learning first, so this could be the last Calvin version for a while :)

Kind regards,

Dan
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Calvin

Post by Gabor Szots »

Hello Dan,

I have not forgotten about version 3.2.0, only there are so many engines to test that sometimes you have to be patient till it's your turn.
BTW, how much improvement do you expect?

PS. By last version you surely meant 2.6.2.
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

Re: New engine: Calvin

Post by kelseyde »

Hi Gabor,

Got it, more than happy to wait and see how Calvin gets on :)

I estimate it will be about about 75-100 elo increase, based on Lichess ratings and my own local tests.

And yes my mistake, I meant 2.6.2!

Regards,
Dan
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Calvin

Post by Gabor Szots »

Well, I have to ask. How did you install 3.2.0 under Arena? Because 2.6.2 was OK while this one does not move. I installed it in the same way as before (I copied it then renamed the necessary part, actually).

EDIT: This is what I get from the command line:
Error: LinkageError occurred while loading main class com.kelseyde.calvin.Application
java.lang.UnsupportedClassVersionError: com/kelseyde/calvin/Application has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0
I have jdk-17 installed. Shall I install another java version as well?

EDIT 2: I have installed Java 8u391, the latest one. No success with that either.

EDIT 3: Jdk 21 seems to be not available for Windows.

EDIT 4: Found Jdk 21 for Windows, problem solved, gauntlet running.
kelseyde
Posts: 8
Joined: Fri Nov 10, 2023 10:57 pm
Sign-up code: 10159

Re: New engine: Calvin

Post by kelseyde »

Hello Gabor,

I missed your last comment saying you got it working, as I just now created a 3.2.0 release compiled with Java 17 :D

Maybe in the future I will release two versions of each release in case Java 17 is more convenient for some people. The 17 version can be found here:
https://github.com/kelseyde/calvin-ches ... .2.0-jdk17

Thanks! Excited to see the results
User avatar
Graham Banks
Posts: 26916
Joined: Sun Dec 18, 2005 5:47 pm
Sign-up code: 0
Location: Auckland, NZ

Re: New engine: Calvin

Post by Graham Banks »

Calvin shows no info output in ChessGUI.

It plays, but it would e nice to see it's thinking and eval.
Post Reply