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.

Pasted image 20260831195457 Pasted image 20260831195531

Next, basic online functionality.

  • I added an --online and --id parameter. --online takes 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 ssh client.

Total time: 3.5 hours

turn your phone horizontally pls! this site is not very mobile friendly