Release 1.16: Garbs! Custom piece images.

Published on 2024-07-31 by Stuart Spence

Since 2018 I've heard thousands of feature request ideas. By far the most popular feature request is to share your own custom images for pieces. Well it's finally here! I've just released version 1.16 on Google Play and Steam. It should be available within a few days, starting with beta testers.

chesscraft screenshot

No more chess image gatekeeping from your benevolent dictator! Don't make me regret this.

I have actually been 90% done this feature since about December 2023. Thanks for your patience everyone! ChessCraft is not my full time job, and life gets in the way.

Garbs

There are now three types of designs that you can create, edit, share, and play:

  1. boards
  2. pieces
  3. garbs

A "garb" is a pair of two images: white and black. All pieces have exactly one garb.

You can select an image from your device in-game, and crop it.

Content Policy

Now that there's custom images, ChessCraft has a content policy. I hope you like it.

Some of my favorite messages from the ChessCraft community are parents and teachers thanking me for the game. So keeping ChessCraft safe for kids is a top priority. I figure, if I give people the opportunity to easily tag mature content, this makes it easier for kids to never see that content. If that turns out not to be the case... I'll revisit the content policy.

Protonmail

I upgraded from "@gmail" to "@chesscraft.ca". This appears more professional and helps me respond faster to important emails. Guess which emails forward directly to my personal inbox, and which ones may go unread for weeks or months?

  • chesscraft screenshot
  • chesscraft screenshot
  • chesscraft screenshot
  • chesscraft screenshot
  • chesscraft screenshot
  • chesscraft screenshot
  • chesscraft screenshot

For years I've heard good things about protonmail, so I thought I'd give them a try. So far so good!

Google gmail offers a similar service, and with more features (which I don't need). However they also use your personal data to target advertising to you, and I wasn't comfortable paying for a service that does that.

Moderation

Paladin is the name I gave to my AI tools which help with content moderator. Features include:

  • nudenet: automated nudity detection in images (very effective)
  • pytorch: automated examination of image content with AI (less effective)
  • GPT4: automated LLM examination of text content (very effective)
  • easyocr and GPT4: automated LLM examination of text content within images (fairly effective)

These features were fun to implement. I've got them working now but over the coming months, I expect to smooth out a lot of rough edges in my moderation pipeline. We'll see what works well, what doesn't, what's needed, and what isn't needed.

Presigned S3 URLs

Software infrastructure in 2024 is incredible.

I didn't want my tiny web server to handle all the heavy download, upload, and storage of image files. So I'm using a process called presigned S3 URLs. This way, my web server has all the control but never sees the heavy image traffic. Instead, I pay for a service to do that.

I tested this locally with a great project called min.io so I wouldn't have to pay anyone for the real service while I was figuring it all out. In production I'm using Digital Ocean Spaces (like AWS S3) since I was already using Digital Ocean for ChessCraft hosting.

Subtle differences between minio, AWS S3, DO Spaces, and the header data for Python, C#, and Unity C# caused me endless frustrations. But it's done now!

Self-Rating

Saving an image asks the player to give it a content rating.

chesscraft screenshot

If you're not sure, you check some boxes and a rating is made for you.

chesscraft screenshot

Folks may now encounter an neutral age screen when trying to view mature content. Players can set or change their birth month in profile settings.

Terms of Use

The terms of use have been updated:

  • More clearly assert public domain with CC0.
  • Took inspiration from reddit ToS, like "I don't owe you anything if you volunteer suggestions that I end up doing".
  • Registered as a DMCA agent in the US copyright office. Now if users upload copyrighted content, in theory this means that uncompromising copyright hawks with unlimited budgets will contact me nicely before stirring up serious trouble. Plus maybe some protection.

Hiring!

Reminder: ChessCraft is hiring!

Many other bug fixes and small improvements

  • For too long, Turkish players have had severe and mysterious crashes when parsing Turkish text. I got a suggestion from a friend and this may now be fixed. Thanks Kyler!
  • Endgame obelisks may be easier to find now.
  • Technical debt: my design ID system was created before online sharing, resulting in two ID systems. I've now simplified and merged them. Once all clients are running 1.16 I can remove a lot of awkward code.
  • Suggest different content ratings on any design page on the website. Replaces the old "report this design" system.

Until next time...

If you like, you can sign up for the ChessCraft newsletter by email. Thanks so much for reading!

white griffin sprite