Stuart Spence Blog

Computer scientist and educator. Creator of ChessCraft. Scientific programmer at Environment Canada.

Wed 11 November 2020

Release 1.11: Relics, Music, AI vs AI, Multithreading

Posted by Stuart Spence in ChessCraft   

I thought this was a small update, but then I reviewed all my changes and I surprised myself!

  • Collect "relics" in adventure mode.
  • Be a spectator with the new AI versus AI mode.
  • Occasional ambient music.
  • Bishop/Rook slide range editor increased from 0-3 to 0-5
  • Choose piece movement animation speed.
  • Click enemy pieces to see their available moves.
  • Some adventure boards have theme overrides. For example, tree levels use the grassy visual theme.
  • Reduced gate costs by half.
  • Faster AI (multithreading)
  • Polish

The new version will soon be available to the open beta testers, and about a week later available to all (whenever Google approves it).

Relics

As promised, the loot bag and gem system introduced in version 1.10 opens up a lot of great possibilities. In adventure mode, when mysterious conditions are met (and a random chance) you may see relics appear on the board. Here's a scroll relic:

chesscraft screenshot

If you're able to move a piece to a tile with a relic (and win) you will collect the relic.

  • Every scroll relic has a different story, journal, legend, or scrap of text from the lands of ChessCraft.
  • Every theme relic unlocks a new visual theme. Previously they were all available... now you must find them to use them!
  • Every piece has a piece relic that you can collect. I considered requiring this to use some piece images in the editor, but I don't want to force anyone to play the adventure if they just want to create and share.

You can view all your relics from the adventure map by tapping the bag in the corner. Tap each relic for more info on it:

chesscraft screenshot

I think this new system is a ton of fun. As a chess player, you want to win each game but you also want relics. Relics only appear for a limited time, so you may need to sacrifice a piece to collect a relic, or just choose to abandon it. And you only get the relic if you win!

Relics don't change the rules of the game. Even if they appear, they can be totally ignored. Or turned off entirely in the options.

There are many, many mysterious conditions that decide which relics appear in which adventure games. In time, I'll add more scrolls which give hints. The rarest relic of them all is the unicorn.

In the future, I might add a real life prize (mailed to you) for collecting certain relics. Stay tuned!

Music

ChessCraft now plays music sometimes, though most of the time there's no music. Of course, you can disable music in the options if you like.

I must deeply thank One Man Symphony and Meydan for their music. I genuinely like this music and it's simply a bonus that it's free to use (even commercially).

There are 19 music tracks presently, and I didn't want to just play them randomly. I wanted each board to have a different musical feel. First, I assigned permanent tags to each music track like "serious" or "spooky" or "fast". Then for a given board, I add points for each musical theme based on board properties. For example:

  • Boards with high AI complexity (like a goofy 16x16 board with lots of powerful pieces) are "playful".
  • Boards with low AI complexity (which are the hardest to beat) are "serious".
  • Boards with high human complexity (lots of weird custom pieces) have slower rhythm music because humans are likely to play slower.
  • Low human complexity is fast.
  • Dense boards are "piano" and sparse boards are "stark".
  • There many others like "dungeon", "forest", "spooky", "war", "sahara", etc themes that apply based on the pieces on the board, or visual themes. So for example, lots of "demon" and "skeleton" pieces will have a more "evil" musical theme.

The musical themes with the most points decide the music chosen. Each board gets about 4 tracks, and even new boards you create will have their own playlist!

Cat

I must also thank my cat Persia for composing the new "lose" and "draw" sound effects.

persia cat image

No kidding - my cat sometimes jumps onto my electric piano, pressing the record button all by herself. She then clumsily trips and stumbles onto random keys in an attempt to get my attention. Over the years I've noted twice where the tune she played was... reasonable. So now she's included in the ChessCraft credits. These are genuinely good sounds for "loss" and "draw".

Multithreading

This means the AI thinking for 2 or 3 seconds in older versions is the same as thinking for 1 second in versions 1.11+. I've tried to adjust the difficulties to be roughly the same, just faster.

A "computer core" is what a computer or smartphone uses to think about the next ChessCraft move. Modern smartphones may have more than one computer core, even 4 or 8. Previously, the ChessCraft AI only used one because it was simpler to write the computer code that way. Now it uses all of them!

You may think that using 8 cores instead of one is 8 times better. However, it's not quite that good because of... computer science reasons. But it's a great boost!

Russia

The USA is of course a very large market for Google Play. Despite this - last month ChessCraft had more active installs from Russia than any other country. Wow! Who would have thought Russians like chess? I'm surprised, but not surprised.

Polish

You folks have humbled me yet again with your help. A big thanks to Maciej Pluta for massively helping with the new Polish translation! Often I marvel at how wonderful technology can be, allowing me to get help and share ChessCraft with so many different communities.

Whenever I get a community contribution translation, I always translate back to English to spot check for profanities. So far, everyone has been genuine and excellent! Thanks!

2020

This has been a challenging year for a lot of people. I hope that you're all doing okay and getting through this extra special year! If you're reading this newsletter I think you're an awesome person. I'd be happy to get an email from you if you need someone to talk to.

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