fairy-stockfish / Fairy-Stockfish

chess variant engine supporting Xiangqi, Shogi, Janggi, Makruk, S-Chess, Crazyhouse, Bughouse, and many more
https://fairy-stockfish.github.io/
GNU General Public License v3.0
603 stars 189 forks source link

Variant tablebase support #330

Open ianfab opened 3 years ago

ianfab commented 3 years ago

Syzygy

MV-SF implementation for reference: https://github.com/ddugovic/Stockfish/blob/master/src/syzygy/tbprobe.cpp


Are there other variant tablebases that could be supported?

ddugovic commented 2 years ago

Thinking much longer-term, I received this idea:

davidjalba: So my goal is to generate tablebases for variants that I find interesting to deep dive. For example, racing kings. If we'd have a 5 or 6 men tablebases I think it might be weakly solvable.

Generating and supporting variant TBs seems like a lot of work, and some variants typically don't reach an endgame. I was thinking about expanding https://syzygy-tables.info visualization to include variants (to draw interest from more potential developers) but the Lichess analysis board already visualizes TB information quite well.

I was thinking about xiangqi but other software already addresses those, using formats other than syzygybases. I haven't yet heard of other variant tablebases.

ianfab commented 2 years ago

Thanks for the info. Yes, of the lichess variants not having TBs yet RK seems the most appealing, since the others won't benefit much from TBs, while RK very likely would be solveable.

In contrast to almost all other features in Fairy-SF I do not really intend to have a generic solution in that area as that likely is neither practicable nor of much value for most variants as you mentioned. So at best integrating already generated TBs like the syzygy variant TBs as well as potentially another specialized TB (likely only Xiangqi) seems reasonable. One upside regarding TBs is that while the implementation effort might be big, the maintenance effort likely is comperatively low, since that code is very isolated and rather stable over time (unless they decide for a second rewrite in official SF). And of course having the querying code from MV-SF already can make things easier for syzygy.