Thanks! Please let me know by filling out this form. Make sure to fill out all questions and be detailed. If I can’t reproduce or understand your bug, I won’t be able to fix it!
Great! Send me an email. Then sign up for the Frame of Mind newsletter to stay up to date on ChessCraft updates and releases. If you've explored most features of ChessCraft, please fill out this feedback form. It's a huge help!
Yep! I've released the art for ChessCraft under a Creative Commons license. If you see art in ChessCraft that is not in that repository, let me know and I'll add it.
I prefer not to talk about my future dreams for a project. What happens is I get enjoyment out of talking about what I "will" do, but without actually doing it. Then if I ever finish the work, I get less enjoyment because I already talked about it. In this way I'd be stealing enjoyment from my future self!
I do have a system to track all my bugs and features on GitLab. If you’d like, you can send an email and I’ll invite you to see all my GitLab issues.
If there's enough demand I will put it on the App Store for iPhones. Send me an email if you'd be interested in an iPhone release!
If there's enough demand I will put it on Steam (PC, MacOS, Linux). The AI is also much harder on desktop computers which is fun. Send me an email if you'd be interested in a Steam release!
It’s hard to say. I spent a lot of time just thinking about AI, reading AI code, and thinking about design before I started actually creating the game in January 2018.
If we don’t count that: the design, art, marketing, and programming up to version 1.0 has taken maybe 1000 hours.
No. I made this game because I wanted to play it!
It varies a lot depending on the board size, pieces rules, and phone speed. I'm still considering how to measure and standardize the computer difficulties. Like many things with ChessCraft, this is a much harder problem than with a classic chess AI.
With a couple seconds of thinking on an average 2019 smartphone, the AI will correctly answer 24 of the 76 chess IQ puzzles on
However, I have a rating of 1900 on lichess puzzles and if I had an ELO it might be somewhere around 1400. If I play fast, my AI sometimes beats me. If I play a smaller board like a 6x6 I often lose.
There are still a lot of improvements I could make to the AI. Unfortunately, if I focussed completely on the AI, I wouldn't have a game, I would have an AI!
There's no easy way to say without getting technical.
First the standard chess AI stuff: alpha beta search with safe culling, a transposition table with zobrist hashing, board reverse functions for tree searching, quiescence search, and killer moves with the transposition table.
However, I'm most excited about the non-standard AI. About half of the usual enhancements for classic chess AI don't work here. That's because the ChessCraft AI cannot know in advance how pieces are allowed to move, or the shape of the board.
Firstly, ChessCraft doesn’t have the option of massively precomputing piece square tables. Instead, I used graph theory and other heuristics to generate them quickly. I count things like "if this piece had three moves starting on this square, how many squares can it move to?". I use values like that to build a piece square table. I often do sanity checks. I will run my heuristic on a classic chess board and compare my results to piece square tables found in powerful chess AIs like stockfish.
Secondly, how does ChessCraft know the value of pieces? Traditionally a bishop is worth about 3 and a rook is worth about 5. But a rook would be worthless on a board with no black tiles. In ChessCraft, a piece’s value depends on the board and other pieces. Again, I used graph theory and heuristics to come up with values.
I’m also really proud of the software architecture of this project. The C# AI code also compiles as a standalone commandline application without Unity3D. I have lots of fun automated tests: unit tests, chess IQ tests I found, and performance tests. The board logic in particular would never have been possible without a thorough test suite (board logic lists all legal moves for any piece). Finally, I created my own chess notation called CCN which is like an expanded FEN. All FENs are valid CCNs. CCN allows me to quickly type out board configurations, tiles, and promotions rules. This is how I created the hundreds of boards for my tests and the adventure map.
Although sometimes, a board is complicated enough that I will use the ChessCraft editor and copy the generated CCN instead.