Terminal Ping Pong ๐
July 9, 2025 ยท View on GitHub
A simple, fun ping pong game playable entirely in your terminal. Built with Rust and powered by ratatui for a beautifully responsive TUI (Text User Interface).
Currently, you can play against a basic AI opponent, a friend locally, or just watch AI vs AI in screensaver mode. It's fast, minimal, and runs right inside your terminal window.
Now with a customizable settings screen: choose your favorite color theme and set default difficulty for each mode!
๐ฅ Demo
๐ผ๏ธ Settings & Theme Preview (click to expand)
โจ Features
- ๐ฅ๏ธ Single-player mode vs. computer (AI)
- ๐ฅ Local multiplayer (play with a friend on the same keyboard)
- ๐ค Screensaver mode (AI vs AI, endless pong)
- ๏ฟฝ Multiple color themes โ pick your favorite in the settings
- ๐ ๏ธ In-app settings: adjust default difficulty for each mode
- ๏ฟฝ๐ฎ Real-time terminal-based gameplay
- ๏ฟฝ Smooth and colorful UI using
ratatui - ๐ Written in Rust
for performance and reliabilitybecause I wanted to
๐งโ๐ป Getting Started
Requirements
- Rust (latest stable recommended)
- A terminal that supports ANSI escape codes
Installation
git clone https://github.com/yourusername/terminal-pingpong.git
Clone the repository and build:
git clone https://github.com/IshmamR/terminal.pong.git
cd terminal.pong
cargo run --release
Then play directly in your terminal!
๐ฏ Controls
- Up Arrow / Mouse scroll up: Move paddle up
- Down Arrow / Mouse scroll down: Move paddle down
- Space: Power move (for pro players ๐)
- Q: Quit
๐ Tech Stack
- Language: Rust
- UI: ratatui
- Rendering: Crossterm-based backend
๐ง Roadmap / Planned Features
- ๐ฎ Local multiplayer support (same terminal)
- ๐ง Computer difficulty levels (adjustable in settings)
- ๐ Screensaver mode โ AI vs AI with endless pong
- ๐จ Theme selection and live preview in settings
- ๐พ Save settings to SQLite database (persistent preferences)
- ๐ Network multiplayer (play with a friend remotely)
- ๐ High scores / stats
๐ License
MIT.
Made with โค๏ธ and Rust.