Stuart Spence Blog

Computer scientist and educator. Creator of ChessCraft. Senior computer scientist at Environment Canada.

Mon 08 June 2020

Release 1.8: Random Board Generator

Posted by Stuart Spence in ChessCraft   

Before I ramble too much about the random board generator, I must thank:

  • Luigi Annicchiarico
  • Johan Estévez
  • Selianin Alexander

- for volunteering to fully and thoroughly edit my Italian, Spanish, and Russian translations! This was a lot of work. More than most people may realize. Internally, ChessCraft has over 500 different pieces of text. Some are several sentences long.

Google Translate combined with my translation scripts has been incredible, as this made ChessCraft comprehensible and therefore playable in 11 languages for free. However this obviously wasn't ideal. So I'm thrilled to give a special thanks to the ChessCraft community for making the game a better experience for people outside the anglosphere!

Apparently, my Russian translation was exceptionally bad. Although, it has always been hard to know for sure what is truly bad. For example, I've also had people say my French translation is "absolutely terrible" and "utter crap". Yet, I live in Quebec, and I'm bilingual with imperfect French. So I know the French translation is at least decent, not crap.

Fun fact - I translated back to English and spot checked to make sure I wasn't being trolled ;)

Picasso

A couple months ago it occurred to me that ChessCraft is missing one major feature: a random board generator. I felt this was a great idea because it expands how unique ChessCraft is compared to other turn based strategy games. Certainly, most game AIs cannot handle deeply random worlds. Whereas the ChessCraft AI already works great on any of your crazy creations (and they have been crazy). So this feature wasn't actually too much work! Maybe 50 hours in all?

Here are four wonderful examples of randomly generated boards:

chesscraft screenshot

chesscraft screenshot

chesscraft screenshot

chesscraft screenshot

In addition to the board itself, there's also a fun random name generator. To do this I made a big list of old-worldy sounding vocabulary, and was generally inspired by the magical prefixes and suffixes in Diablo 2. These are inserted randomly into templates like "NOUN's NOUN" and "NOUN of the ADJECTIVE NOUN".

You can also narrow down what kind of random board you want. In this example I have selected any shape, but I want a medium size, etc:

chesscraft screenshot

Naming sections of code is important for organization and reducing mental load, but it can also get unwieldy (a real world example: SimpleBeanFactoryAwareAspectInstanceFactory). So sometimes I give my systems some personality with names. Instead of RandomBoardGenerator I called it Picasso. I think this is a perfect fit! Other examples:

  • Diophantus: fast estimates for the values of pieces and boards.
  • Thermistocles: thinks about new boards before play starts to prepare the AI.
  • Hypatia: the high level AI search.

Piece Power Web App

Well this is neat. The player YoshiLikes created this web app with Khan Academy to estimate how powerful ChessCraft pieces are. Because it's a learning website, you can also see the code. This project helps people design their boards and guess how balanced they may be. Join the ChessCraft Discord to chat about this!

Zombie Boards

In specific circumstances, some of you have noticed your boards disappear after sharing them! Well they weren't deleted from your device, the game just stopped being able to read them. Get ready, they're back! You may see the return of your old boards. They may also have a warning attached to them if ChessCraft suspects they may not have saved correctly. They were repaired if possible.

1.8 also includes other bug fixes. Thanks for the bug reports!

New Themes

Because it was too easy not to:

chesscraft theme images

I'm thinking of making some themes and piece sprites only available in the editor if you defeat parts of the adventure map or earn enough tokens. Is that a good idea?

And More!

  • You can now make boards with the rule "skip turn if stalemate" so the game doesn't end on stalemates.
  • Increased upload size limit on descriptions. It looks like I was overzealous on that security feature!
  • A dozen or so new piece sprites. Have a look!

Next..?

Let me know what features you'd like next. I have plenty of ideas - tho I prioritize requests if lots of people ask.

Thanks so much for reading!

white griffin sprite