New engine I am working on

Discussion of chess software programming and technical issues.

Moderator: Ras

FireDragon761138
Posts: 88
Joined: Sun Dec 28, 2025 7:25 am
Full name: Aaron Munn

New engine I am working on

Post by FireDragon761138 »

I did Theoria as a project based on Stockfish, so I thought I'd do a companion engine, so of course it gets named Praxis (literally means "deed", but is the root of the word "practice", hence the name). This will be a bot so it won't be involved in any kind of engine vs. engine tournaments for awards. I used Fable to help design the engine, trying to go for a clean room approach. It ended up using alot of ideas from Crafty and Stockfish for the basic search and evaluation, but we added a unique humanization layer that is different from any other engine based on research Fable did on actual human play. It uses contempt, optimism, favoring tricky or complex moves over perfect play.

We calibrated the engine based off Maia weighted tourneys but that wasn't a perfect fit, so we used additional Lichess puzzles, compensating for the known differences between human play on puzzles vs. games. The end result seems to be a strong, fun engine to play against, but it seems to be almost too clever to be believable, particularly at low levels (600-1000). I am wondering if the issue is that the human puzzle vs. game discrepancy wouldn't play out with how negamax engines play chess?

Input is welcome. I'm a bit stuck. Short of putting the bot out there and heavily iterating, I'm not sure what to do. I could ask Fable for more advice, but it burns alot of tokens, and sometimes humans are capable of thinknig completely outside the box and have more experience with working with engines hands on.
FireDragon761138
Posts: 88
Joined: Sun Dec 28, 2025 7:25 am
Full name: Aaron Munn

Re: New engine I am working on

Post by FireDragon761138 »

I pivoted to modding MadChess as a research project. I'm using FunSearch and CMA-ES to generate candidates for code and parameters to fit against a psychoacoustic inspired model of human chess perception - my research indicates it's likely that humans don't see the fitting criteria as equally weighted, with some things, like the percentage of major and minor pieces lost, mattering more than abstractions like "centipawn loss". I modified MadChess to have a audio-inspired noise shaper to direct the kinds of errors the engine makes at low Elo, too.

The Maia engine is already pretty high out of the box in terms of humanish metrics, but it's danger coupling is the worst chess engine we've looked at so far. Real low-elo human beings tend to wither under highly dynamic positions, whereas Maia plays very "baked" kind of moves that aren't as context dependent. It also doesn't play sufficiently weak compared to actual human club players. So I'm aiming to make something better that actually plays weakly better than Maia does.