orangishcat/cursed-tetris

cursed terminal tetris (rust learning experience)

7

stars

61

commits

Rust

primary language

Sep 10, 2026

updated

README

Cursed Tetris

A terminal tetris game made using Ratatui and Crossterm in Rust, with some powerups for extra variety. It is recommended to use a Nerd Font so that all text renders correctly.

This is my first Rust project! I built this mainly to learn Rust, so the implementation is pretty basic.

Blog post

Star the repo if you liked the game!

Title ScreenGameplay

Play online!

  1. Generate an SSH key if you don't have one already, using ssh-keygen
  2. ssh play@cursedtetris.orangishcat.dev; your SSH key is your identity.

Server may or may not be online, or full, or whatever. No guarantees; I'm not very good with server infrastructure. You can always play offline.

Note: Maximize your terminal when running the program!

Download instructions (for playing offline)

Linux/MacOS

For MacOS, only Apple Silicon is supported as of right now

  1. Download the Linux or MacOS build of the latest release
  2. Extract the tarball.
  3. Open the terminal and change directory into the extracted directory using cd.
  4. Run ./cursed-tetris from the command line.
  • (On MacOS, you may need to unquarantine and/or self-sign the binary first.)

Windows

  1. Download the Windows exe of the latest release.
  2. Extract the zip and navigate into the extracted folder.
  3. Double click the .exe/application.

Self-hosting the online leaderboard

Run the game with a shared SQLite database and a stable player ID to enable the online leaderboard:

cursed-tetris --online /var/lib/cursed-tetris/scores.sqlite3 --id PLAYER_ID

Both options are required together. For SSH hosting, the forced-command launcher should derive PLAYER_ID from the authenticated public key. The ID is private to the database; players choose a display name when they first submit a qualifying score.

Contributors

orangishcat

61 commits

orangishcat/cursed-tetris

cursed terminal tetris (rust learning experience)

7

stars

61

commits

Rust

primary language

Sep 10, 2026

updated

README

Cursed Tetris

A terminal tetris game made using Ratatui and Crossterm in Rust, with some powerups for extra variety. It is recommended to use a Nerd Font so that all text renders correctly.

This is my first Rust project! I built this mainly to learn Rust, so the implementation is pretty basic.

Blog post

Star the repo if you liked the game!

Title ScreenGameplay

Play online!

  1. Generate an SSH key if you don't have one already, using ssh-keygen
  2. ssh play@cursedtetris.orangishcat.dev; your SSH key is your identity.

Server may or may not be online, or full, or whatever. No guarantees; I'm not very good with server infrastructure. You can always play offline.

Note: Maximize your terminal when running the program!

Download instructions (for playing offline)

Linux/MacOS

For MacOS, only Apple Silicon is supported as of right now

  1. Download the Linux or MacOS build of the latest release
  2. Extract the tarball.
  3. Open the terminal and change directory into the extracted directory using cd.
  4. Run ./cursed-tetris from the command line.
  • (On MacOS, you may need to unquarantine and/or self-sign the binary first.)

Windows

  1. Download the Windows exe of the latest release.
  2. Extract the zip and navigate into the extracted folder.
  3. Double click the .exe/application.

Self-hosting the online leaderboard

Run the game with a shared SQLite database and a stable player ID to enable the online leaderboard:

cursed-tetris --online /var/lib/cursed-tetris/scores.sqlite3 --id PLAYER_ID

Both options are required together. For SSH hosting, the forced-command launcher should derive PLAYER_ID from the authenticated public key. The ID is private to the database; players choose a display name when they first submit a qualifying score.

Contributors

orangishcat

61 commits

Languages

Rust

100.0%