2026-8-30
Today I realized that anything that can be run through a terminal, you can also run through ssh. So I spent the entirety of today setting up online play for the game. There’s a ton of very minor changes that must be made for something like this to work.
I added a tracked time stat in the game screen. It’s also shown in the lose screen.

Next, basic online functionality.
- I added an
--onlineand--idparameter.--onlinetakes a path to a SQLite database file, creating the database if it doesn’t exist. The database stores the player id (from--id), their entered username (if any), and their score for the top 50 player scores in the database. - To keep it simple and very low storage, nothing is kept per each player, only the leaderboard information about the top 50 is kept.
- Options save to disk when not playing in online mode. Since in online mode the binary will be running on the server though, options will not persist when online.
- When the board width, board height, or starting level options are changed, scores will not be submitted to the leaderboard.
- Probably more minor changes that I forgot about
Not having to worry about cheated scores is nice, as literally everything is controlled by the server when playing online; only keypresses and the terminal buffer are relayed between the server and the
sshclient.
Total time: 3.5 hours