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.
Star the repo if you liked the game!
![]() | ![]() |
|---|
ssh-keygenssh 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!
Linux/MacOS
For MacOS, only Apple Silicon is supported as of right now
cd../cursed-tetris from the command line.Windows
.exe/application.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.
61 commits
Rust
100.0%
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.
Star the repo if you liked the game!
![]() | ![]() |
|---|
ssh-keygenssh 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!
Linux/MacOS
For MacOS, only Apple Silicon is supported as of right now
cd../cursed-tetris from the command line.Windows
.exe/application.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.
61 commits
Rust
100.0%