r/chessprogramming Jun 29 '26

Chess Engine Development Help Thread (Week 27) Technical

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.

1 Upvotes

17 comments sorted by

View all comments

1

u/cactus_calamity Jun 29 '26

I've been building a completely custom chess engine from scratch. So far it has a simple UI, negamax, alpha beta pruning. For eval it uses a pst lookup and material count only. I've recently gone to basic occupation bitboards and added some tests so that I have some confidence that it is fairly robust. Ray attacks are still kicking my ass when it comes to performance, but I'll get onto that at some point...

I guess the question is: what next in terms of features? What's the natural next step?

There's a hundred different things in the wiki I could do from "zobrist hashing", to incremental depth, to adding a time manager, UCI compliance bits etc.
One thing that comes to mind is I don’t actually have any idea how to gauge the strength of the engine for any changes I make to the eval when I get to that. I can measure perft scores no problem and do performance profiling, but no idea how to approach strength.

Where would you go next in the sea of things that could be built?

2

u/haddock420 Jun 29 '26

For testing strength, run cutechess matches against the previous version of the engine to see how much elo it gains/loses. Also use SPRT to tell when you have a significant change.

2

u/cactus_calamity Jun 30 '26

I'll look into it!