algerbrex wrote: ↑Sat Sep 25, 2021 4:27 pm
As a side note, although I'm still playing around with PVS, the bug fixes I've made to the TT and in some other places, thanks to you and Mergi have given Blunder quite a boost in playing strength.
Good to hear.
edit: I misread that at first. I though "dev version worse than 5.0.0, and that's good?" Then I saw that your dev version doesn't include null move pruning, and Blunder 5.0.0 does. So you're doing the bug-fixing on a stripped Blunder 5, reaching Blunder 5's strength (+/- 11 Elo), without some of the features Blunder 5.0.0 already has?
That's great. If you then put back null move pruning, you could easily add another 100 Elo, which would put you on par with Blunder 6.0.0, _without_ having some of Blunder 6's features.
Looking through your code uncovered the missing minus sign in my own code. That fix alone added +20 Elo in self-play, but against other engines, it added up to +27 Elo. That's a nice boost for just adding one character.
Some time ago Rustic participated in the tournament ZaTour, run by the creator of Zahak. That was Rustic Alpha 3.1.112, which was one of the first versions that had a tapered evaluation. (Alpha 3.0.0 doesn't; 3.1.100 is the dev version, and it had 12 commits.) I estimate the current Rustic-dev, version 3.15.100, to be about 70-100 Elo stronger than the ZaTour version, without adding a single feature. It's all code cleanup, refactoring, a tweak in the TT, a tweak in the time management, and the missing minus sign.
This weekend I'll run a match between Rustic 3.1.112 and the dev version to see what the difference is. Rustic-dev is now performing at 2150 - 2210 Elo, depending on the engine it's playing against. If Rustic 4 could hit 2165 on CCRL Blitz, it would improve by 300 points, just by adding a tapered evaluation (~200-250 points) and code cleanup / refactoring / fixing (50-70 points). If paired against the "right" engines (i.e., not paired against engines that specifically exploit gaps in Rustic's current PST-only evaluation), it could even hit 2200 on CCRL Blitz.
Rustic 4 is not yet going to have any prunings, LMR, SEE, or whatever. It's still just the basics + tapered PST's. Originally, I had hoped to hit 2000 Elo with that, but if all goes well, I'm already far beyond that.
Currently I'm testing the last "fix" I wrote in June. (Doesn't seem to make a difference.) If that's done I'll retest Mergi's earlier mate adjustments using some positions, and a 2000 game match, and if it gives lower node counts if it at least loses no Elo, I'll merge that. Next step will be to write a tuner to create my own PST's (again) based on a bigger dataset, and see if I can squeeze a few more Elo out of the dev-version before releasing Rustic 4.
===
PS: In some places, Blunder looks remarkably like Rustic. I doubted for some time between Go and Rust, and chose the latter after I found out Go used a garbage collector and had no generics, which I wanted to use for the TT (so I could use it for search, perft, and pawn-hash with different data structures).
I don't mind people using code from Rustic, but maybe I should add a clause to the license: "Don't port the engine to Go."
In some spots you already seem halfway there
Not that I care, btw, or I wouldn't have a website explaining how to do it... (which, granted, does need to have a massive update...)