algerbrex wrote: ↑Thu Sep 23, 2021 4:40 am
Before it gets a CCRL rating, I really need to release a bugfix, as I've realized Blunder has some pretty glaring bugs. I'm not too busy this week with Uni work, so I'm working towards releasing a bugfix sometime towards the end of this week. So far I know I need to fix how the TT adjusts mate scores, the size of tt entries, loading TT sizes from the UCI protocol. Additionally, I need to bound the history heuristics, as Amanj pointed out to me that during longer time controls, they overflowed and caused many issues.
You released 6.0.0, so CCRL is possibly already testing. You could send Gabor on this forum a message to see if they can postpone the test. If they can't because the tournament already started, just wait until Blunder 6.0.0 appears in the list, and then release 6.1.0. (Or even 7.0.0 with bugfixes and PVS.)
I'm not going back and retro-fixing the TT in Alpha 3 and 2.
Had the same problems with history; I removed them to take a look at them later.
And the amount of features I've needed to reach certain milestones has bugged me. I wanted to try to break 2000 without any sort of pruning, which I think I did since I estimated that null move pruning gave me ~50 Elo, and Blunder 5 is rated at 2055 Elo. But I largely agree with you, which is why for the time being I've stopped testing new features so I can (1) refractor the search routine and (2) try seeing what Elo gain I'm getting after fixing some bugs.
50 Elo for null move seems low. 100 Elo is often reported. Rustic doesn't have any pruning yet. It's still a very basic engine (you can see the feature-set on GitHub). Even before fixing the TT, I would be very disappointed if Rustic 4 (now without Alpha, as it should pass 2000 Elo) would score less than 2130 or even 2150 Elo in the CCRL Blitz list. That version was scoring 2100 - 2210, depending on the engines it tested against. I'll have to redo those tests with the fixed TT. (Running already; will be complete sometime this night.)
I understand that not everybody wants to write a chess engine doing it my way, where I try to get the last Elo-point from a feature before moving to the next one. Even so, here I thought all the code I had up to this point was bug-free, and then I'm accidentally missing a minus sign that costs like 20 Elo. Scatter a few of those mistakes around the engine, and its 100 points weaker than it could have been.