- Local 2-player — grab a friend and settle the score
- 60 FPS game loop — smooth paddle and ball movement
- Ball trail — fading trail effect that tracks the ball's path (toggleable)
- Collision sparks — paddle hits produce a burst of yellow sparks
- Render modes — switch between block and dot markers on the fly
- Adaptive layout — the play area scales to your terminal size
| Key | Action |
|---|---|
W / S |
Move left paddle up / down |
↑ / ↓ |
Move right paddle up / down |
T |
Toggle ball trail |
M |
Toggle marker style (block / dot) |
Q / Esc |
Quit |
# clone it
git clone https://github.com/tetra/RAT-PONG.git
cd RAT-PONG
# run it
cargo run --releaseRequires Rust (2024 edition).
src/
├── main.rs # entry point — sets up the terminal and launches the app
├── app.rs # game loop, rendering chrome, input dispatch
├── pong.rs # all game logic — paddles, ball, collisions, scoring, rendering
└── input.rs # key event handling and input action mapping
MIT