MinimalChess 0.5 released

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
lithander
Posts: 925
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

MinimalChess 0.5 released

Post by lithander »

MinimalChess 0.5 is finally ready.

This version adds a 13th tuned table for a mobility-based evaluation term that modifies the static PST based evaluation of version 0.4. It encourages friendly pieces to guard each other and opponent pieces to threaten each other. The table contains bonuses and maluses that get assigned based on the content of each square a piece "sees".

I also added a simple transposition table (no buckets) and very simple null-move pruning (R2 when not in check) and I hope that together these features will improve the playing strength to about 2200 ELO.

The size of the codebase measured in lines of executable code (LOC) increased moderately from 610 LOC to 707 LOC. So this versions not only features the best playing strength it also has the best strength/LOC ratio.

For this release I also changed the target framework to .NET 5. I hope everything still works! You can find precompiled executables for Windows, Mac and Linux here: https://github.com/lithander/MinimalChe ... s/tag/v0.5
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
Gabor Szots
Posts: 1532
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: MinimalChess 0.5 released

Post by Gabor Szots »

Thank you Thomas.
Gabor Szots
CCRL testing group
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MinimalChess 0.5 released

Post by amanjpro »

It is worth mentioning that this version is in the lead in ZaTour Promotion League ;)
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: MinimalChess 0.5 released

Post by mvanthoor »

Congratulations :)
amanjpro wrote: Thu Jul 01, 2021 12:30 pm It is worth mentioning that this version is in the lead in ZaTour Promotion League ;)
It is probably going to win the division, with a +50 Elo over the current development version of Rustic, which only adds a tapered evaluation on top of Alpha 3. (Which added Killers + PVS on top of Alpha 2.) Estimated playing strength for current Rustic is approximately 2150.

I'll run a head-to-head match against MMC 0.5 in the weekend. Rustic-dev scores +50 Elo against MMC 0.4.5 (which Thomas kindly provided for testing), so I now expect a -50 Elo performance against MMC 0.5.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MinimalChess 0.5 released

Post by amanjpro »

Actually both Rustic and MMC are doing very well... and probably will come before KingSlayer... huge improvements :)
User avatar
lithander
Posts: 925
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: MinimalChess 0.5 released

Post by lithander »

amanjpro wrote: Thu Jul 01, 2021 12:30 pm It is worth mentioning that this version is in the lead in ZaTour Promotion League ;)
Also worth mentioning that the TT was implement in MMC only after your explicit request! ;)
amanjpro wrote: Thu Jul 01, 2021 5:27 pm Actually both Rustic and MMC are doing very well.
mvanthoor wrote: Thu Jul 01, 2021 5:24 pm the current development version of Rustic, which only adds a tapered evaluation on top of Alpha 3.
When I posted about my tuning process a while ago my secret hope was of course that others would try these tables in their own engines and find them a valuable contribution. So I feel honored that you chose to use MMCs PSTs in your current development version of Rustic and I'm very happy to see how much strength Rustic gained from it.

I now celebrate a win of Rustic almost as much as a win of MinimalChess! ;)
Last edited by lithander on Thu Jul 01, 2021 6:12 pm, edited 1 time in total.
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: MinimalChess 0.5 released

Post by mvanthoor »

lithander wrote: Thu Jul 01, 2021 5:49 pm When I posted about my tuning process a while ago my secret hope was of course that others would try these tables in their own engines and find them a valuable contribution. So I feel honored that you chose to use MMCs PSTs in your current development version of Rustic and I'm very happy to see how much strength Rustic gained from it.

I now celebrate a win of Rustic almost as much as a win of MinimalChess! ;)
Yes, the current Rustic development version (3.1.112) uses MMC 0.4.5's tapered PST's, for a strength increase of about 270 Elo, to ~2150. At this time, it's the only addition on top of Alpha 3. This version will probably turn into "Rustic 4" after the tuner is done. (Maybe with a bit of change in time management: Rustic leaves too much time on the clock.)

Why shouldn't I use your tables to see what it's possible before I start doing my own thing? You used my (hand-written) PST's to help add another 500 Elo to MinimalChess 0.3 before you wrote/tuned your own :)

Now you only need to convert to a bit-board engine, and a fat board representation with make/unmake, make your PST's incremental, add some more pruning, a few hundred evaluation terms, add a little more pruning, and then port the engine to C++ or Rust, and you'll be as strong as Stockfish. Should be doable before 2027 :)

(Told you chess programming can be addictive.)
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MinimalChess 0.5 released

Post by amanjpro »

lithander wrote: Thu Jul 01, 2021 5:49 pm
Also worth mentioning that the TT was implement in MMC only after your explicit request! ;)
I respect beautiful play, and MMC diffenetly has it. It is always hurtful to see it lose due to endgame ignorance (due to lack of TT).
MMC's play reminded me of Zahak in early days, but much stronger while still within the reach of my understanding. So yeah, I see it as my foster child now :D
User avatar
Gabor Szots
Posts: 1532
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: MinimalChess 0.5 released

Post by Gabor Szots »

Gauntlet for the blitz list in progress.

BTW, do you plan to 'do something' with SebLague Chess? The other day I included it in a tournament and only after 9 games (all forfeited on time) did I remember to delete the AppData\Local\Temp\.net\SebLagueChessEngine folder. OK, I'm going to remember next time...
Gabor Szots
CCRL testing group
User avatar
lithander
Posts: 925
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: MinimalChess 0.5 released

Post by lithander »

Gabor Szots wrote: Fri Jul 02, 2021 10:09 am BTW, do you plan to 'do something' with SebLague Chess? The other day I included it in a tournament and only after 9 games (all forfeited on time) did I remember to delete the AppData\Local\Temp\.net\SebLagueChessEngine folder. OK, I'm going to remember next time...
For MinimalChess I have changed the target framework from ".Net Core 3.1" to ".Net 5" and I expect that this will fix the issue once and for all.

I could make the same change of the target framework for SebLagueChessEngine and provide you with a new build. I have also noticed that my build uses default settings that are not the same as what he uses in his Unity version (his Unity code changes some of the default settings of the engine) and the most significant difference is that in my build the transposition table was not enabled. I could fix that with a new build but then it would probably gain strength and would need to be tracked by CCRL as a different version.

Just changing the target framework would keep the current strength mostly. It's your choice!
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess