Announcement: Return of Chess Over Gemini

2022-08-23

---

I'm excited to announce that chess has returned to Rob's Gemini Capsule!

The Chess Over Gemini service has been rewritten from scratch to be more robust, to scale more easily, and to have more features. The original implementation was written in Bash in just a few days and used very crude chess logic, barely enough to make pieces movable and calculate checks and checkmates. The plaintext storage format was difficult to modify and didn't store some important data. The new implementation uses the Python "chess" module and a SQLite database, allowing me to utilize much more powerful tools.

As a result, the relaunched service has several major features the original service did not.

A row is created in the database for each player, allowing players to store persistent data such as their username. Players can now change their name one time and see that new name on all of their matches and invitations. Importantly, players can also delete this data at will and dissociate themselves from the service entirely if they no longer wish to play.

In the previous implementation, all matches were listed publicly, and anyone was able to view them. Now players can choose to have private matches, which are only accessible by the players in the match, and in which links are protected by the inclusion of a random salt.

Using a proper chess module allows the service to handle special cases it couldn't handle before, such as draws by threefold repetition or by insufficient material for a checkmate. Because my capsule is hosted in a low-power machine, calculations can still be a little slow, but they are much more robust.

The original implementation was not able to show what moves player had already made. Now all matches, including ongoing matches, feature a link to download a PGN file of the match. This not only allows players to see what moves they've played, but also to load their games into other chess engines and analyze them.

In terms of user interaction, the biggest problem with the original chess service was lack of a notification mechanism. This has now been fixed. Every player has a personal Atom feed of their activity, and every match has an Atom feed of its activity. There is also a unified invitation Atom feed that anyone can follow to track when invitations are posted.

The chess service can be found at the link below. I hope you enjoy using it!

Chess Over Gemini

---

Up One Level
Home

[Last updated: 2024-10-06]