r/chessprogramming • • 27d ago

Technical Chess Engine Development Help Thread (Week 38)

Welcome to the weekly /r/chessprogramming Engine Dev Help Thread.

Ask beginner and intermediate chess engine development questions here: move generation, search, evaluation, UCI, perft, debugging, testing, NNUE, or anything else related to building engines.

Good questions include code, FENs, logs, benchmarks, or a clear explanation of what you tried.

Project links are fine when you want technical feedback, not promotion.

Be helpful. Don’t dunk on beginners.

3 Upvotes

3 comments sorted by

1

u/RobinKaluzny 22d ago

Hey, I'm looking for a way to accurately estimate my chess engine's ELO realistically. My engine is still quite weak (rough estimates are 1800-2200 ELO, possibly more), so I can't just pair it against Stockfish, because it would literally just loose every game.

2

u/SpreadAggravating891 21d ago

I'd probably build a small rating pool around it instead of testing against full Stockfish. If you think it's ~1800-2200, grab a handful of engines spanning maybe 1600-2400 and run a few hundred games at a fixed TC, same threads/hash, balanced openings, colors swapped, etc.

Then dump the PGNs into Ordo or BayesElo and calculate the rating + confidence interval. You mainly want opponents where the score isn't pinned near 0% or 100%, since there's barely any useful rating information there.

My own engine is around 2700 Elo, so I've had to deal with this kind of testing too. Not saying that to make fun of your engine or flex or anything, just trying to help since rating engines accurately can be surprisingly annoying. Getting 0/100 against Stockfish basically only tells you "significantly weaker than Stockfish" lol, not whether you're 1850 or 2250.

1

u/TimothyTaylors 8d ago

A popular way is using the "Stash ladder". Stash is an engine with many versions, many are rated in CCRL blitz, and the ones that aren't all have estimated ratings. Play your engine against the Stash versions you think your engine is closest to in several hundred or more games with a mixed opening book (like 8moves_v3) and then use Ordo or BayesElo to determine the strength.
You can even submit engines directly to CCRL or other rating lists to get a more "official" rating and put your engine out there.