Homura is almost ready to share!

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
algerbrex
Posts: 608
Joined: Sun May 30, 2021 5:03 am
Location: United States
Full name: Christian Dean

Re: Homura is almost ready to share!

Post by algerbrex »

RedBedHed wrote: Sat Mar 18, 2023 11:36 pm
algerbrex wrote: Tue Mar 14, 2023 5:35 am Nice, the transposition table is often a tricky beast to get working correctly and even harder to get working optimally. Now might be a good time to go back and double-check your other areas of the search to make sure you're not missing out on Elo.
You were 100% right! I just found out that PeSTO used a different board layout than Homura. I flipped the PSQ tables and the engine gained a significant amount of ELO!
Nice, congrats! Nasty bugs like that really can hold your engine back, good you discovered now. From what you shared I suspected your engine should be stronger than you listed.
User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Re: Homura is almost ready to share!

Post by RedBedHed »

algerbrex wrote: Sun Mar 19, 2023 2:59 am Nice, congrats! Nasty bugs like that really can hold your engine back, good you discovered now. From what you shared I suspected your engine should be stronger than you listed.
Thanks! I'm so excited! I'm going to keep messing around and tweaking the unsafe pruning :)

Here is Homura vs. Leorik-1.0 with 1 second per move:

Code: Select all

Score of Homura vs Leorik-1.0: 37 - 4 - 9  [0.830] 50
...      Homura playing White: 19 - 2 - 4  [0.840] 25
...      Homura playing Black: 18 - 2 - 5  [0.820] 25
...      White vs Black: 21 - 20 - 9  [0.510] 50
Elo difference: 275.5 +/- 114.5, LOS: 100.0 %, DrawRatio: 18.0 %
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }
User avatar
lithander
Posts: 915
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: Homura is almost ready to share!

Post by lithander »

Leorik 1.0 is a bit special because it does not do any unsafe prunings or reductions. In other words it solves every mate-in-X puzzle exactly at depth X. Of course it doesn't get to search very deep because of that.

Feature-wise Leorik 2.0 should be a fair match: It only uses PSTs for evaluation and implements roughly the same features as Homura according to your list. (Minus razoring and IID) It's not written in as fast a language as C++ but thanks to the simplistic evaluation it's nonetheless quite fast. (as Homura is, I expect)
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Re: Homura is almost ready to share!

Post by RedBedHed »

lithander wrote: Sun Mar 19, 2023 2:36 pm Leorik 1.0 is a bit special because it does not do any unsafe prunings or reductions. In other words it solves every mate-in-X puzzle exactly at depth X. Of course it doesn't get to search very deep because of that.

Feature-wise Leorik 2.0 should be a fair match: It only uses PSTs for evaluation and implements roughly the same features as Homura according to your list. (Minus razoring and IID) It's not written in as fast a language as C++ but thanks to the simplistic evaluation it's nonetheless quite fast. (as Homura is, I expect)
Ah that makes sense. I pitted Homura against Leorik-2.0 for 100 quick games and got this result:

Code: Select all

Score of Homura vs Leorik-2.0: 24 - 40 - 36  [0.420] 100
...      Homura playing White: 16 - 12 - 22  [0.540] 50
...      Homura playing Black: 8 - 28 - 14  [0.300] 50
...      White vs Black: 44 - 20 - 36  [0.620] 100
Elo difference: -56.1 +/- 55.2, LOS: 2.3 %, DrawRatio: 36.0 %
I think we might be around 2500 elo! This is so exciting!
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }
User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Re: Homura is almost ready to share!

Post by RedBedHed »

Just to clarify, I did tweak quite a bit between the match with Leorik-1.0 and this match.

I added static null-move pruning and played with the margin. I also adjusted the razoring. I found that using a null window around alpha in the razoring quiescence search gives the same result as the full window, just faster. It's kind of a no-brainer now that I'm thinking about it lol.

I also played with the futility pruning margin.

Yesterday Homura won a game against one of the top Chess players at my school (Arizona State University). Very, very exciting. :)
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }