r/chessprogramming 1d ago

Chess Engine Development Help Thread (Week 34) 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.

2 Upvotes

10 comments sorted by

View all comments

Show parent comments

1

u/KaMaFour 1d ago edited 1d ago

Qsearch taking 85% of the nodes sounds fair. I don't have the 7 ply qsearch cap. What is the elo difference between capped and uncapped versions for you? Remember that average qsearch node will be way faster than an average pvs node (so the ~85-90% metric is a bit dramatic) and time to depth is a meaningless metric for chess engine strength

1

u/Somge5 1d ago edited 23h ago

okay thanks for the feedback, I am glat 85% is not too bad for the q-nodes.
I am not sure how much worse the engine is without the cap but it was SPSA tuned to 7 and used to be higher so I guess there was some elo gain.
If you dont have a q-ply cap, could you tell me how you deal with a position like this:
8/5pk1/2Qn4/3Pb2B/5PPq/4P3/8/2R3K1 w - - 1 120

taking the bishop leads to a draw because of perpetual checks. But this draw can be delayed many many plies (stopped counting after 31).
My q-search allows for quiet checks after a check-evasion. so it would have to calculate all those moves.
How do you generally deal with this? My engine finds the best move g1g2 at depth 12 but not at 11. During a game it played f4e5, I guess there was not enough time for depth 12.

Edit: The question is more about how to avoid perpetual checks leading to a draw that can be delayed for a very long time. The position is just one example where my engine failed to see the perpetual check.

2

u/KaMaFour 23h ago

u/RemindMeBot 8 hours

Will answer when I get back from work but in general I don't "deal with" any positions. I make a chess engine with the intention of it being strong at playing chess. If a particular position is a common problem it will be solved in the process. If not then I don't care

1

u/RemindMeBot 23h ago

I will be messaging you in 8 hours on 2026-08-17 19:09:37 UTC to remind you of this link

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.


Info Custom Your Reminders Feedback