Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

fairy-stockfish was just an example. It was derived from Stockfish. I have tested it with several UCI engines, including all Stockfish versions from 12 to 16, Polyfish, Komodo Dragon and others. When exactly the crash occurs varies. This also depends on how the chess engine was compiled. With fairy-stockfish it runs reasonably stable at a depth of 12 half-moves. It "only" crashes every 100th game. But 12 half-moves is far too little to do anything sensible with it.

A buffer overflow was my first assumption. So I installed it in between so that after each move the engine is restarted, FEN is sent and global.output="" is set. Unfortunately, that didn't help. There were also problems because I change the engine in the middle of the game, but I solved that. Now it is called, I send FEN for every move, but it runs through.

My current guess is this: Greater depth means that the engine pauses at some point, so it doesn't send anything. I suspect that because the EXE is not responding, synchronization is lost.

If you give me another contact, Discord or mail, I can also send you screenshots or the current version. It's a pretty big project by now and it would be a shame if it were to fail.

My discord is "samuelvenable". Try downloading the project again and see if the new version of the extension fixes it. I added a new function which allows you to limit the buffer length to a specific number of characters, (including the null byte at the end). For example:

SetBufferLimitForStandardOutput(2048);

...will limit the buffer to 2,048 of the most recent characters.

It's great that you're still working on it. I have tested your version. It crashes for me at a depth of 40.

ExecutedProcessWriteToStandardInput(global.pid, "go depth 40\n");

I'll get in touch with you via Discord when I get a chance.