โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโ โโโโโโ โโโ โโโโโโโโโโโโโโโโโโโ โ
โ โโโ โโโโโโ โโโ โโโโโโโโโโโโโโโโโโโ โ
โ โโโ โโโโโโโโ โโโ โโโ โโโโโโโโโโโโโโ โ
โ โโโ โโโโโโโโ โโโ โโโ โโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโ โโโโโโโ โโโโโโโโโโโโโโโ โโโ โ
โ โโโโโโโโโโโโ โโโโโโโโโ โโโโโโโโโโโโโโโ โโโ โ
โ โโโโโโโโ โโโโโโโ โโโโโโ โโโ โโโ โโโโโโโโ โ
โ โโโโโโโโ โโโโโ โโโโโโโโโโ โโโ โโโโโโโโ โ
โ โโโโโโโโ โโโ โโโ โโโโโโ โโโ โโโ โโโ โ
โ โโโโโโโโ โโโ โโโ โโโโโ โโโ โโโ โโโ โ
โ โ
โ โโโ โโโ โโโโโโ โโโ โโโโโโโโโโโ โ
โ โโโ โโโโโโโโโโโโโโ โโโโโโโโโโโ โ
โ โโโ โโ โโโโโโโโโโโโโโ โโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโ โ
โ โโโโโโโโโโโโโ โโโ โโโโโโโ โโโโโโโโ โ
โ โโโโโโโโ โโโ โโโ โโโโโ โโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฏ Features โข โฌ๏ธ Download โข ๐ฎ How to Play โข ๐ Quick Start โข ๐ธ Screenshots โข ๐ค Contributing
- ๐ Overview
- ๐ฏ Features
- ๐ฎ Core Gameplay
- โก Unique Mechanics
- ๐จ Visual Design
- โฟ Accessibility
- โฌ๏ธ Download
- ๐ฟ Windows Installers
- ๐ System Requirements
- ๐ฎ How to Play
- โจ๏ธ Controls
- ๐ Power-Ups Guide
- ๐ Scoring System
- ๐ Quick Start
- ๐ง Building from Source
- ๐ฆ Creating Installers
- ๐ ๏ธ Development
- ๐ Project Structure
- ๐งช Testing
- ๐ Performance
- โ๏ธ Configuration
- ๐ธ Screenshots
- ๐บ๏ธ Roadmap
- ๐ค Contributing
- ๐ License
- ๐ Acknowledgments
Tetris Synthwave brings the classic block-stacking puzzle game into the modern era with a stunning synthwave aesthetic, smooth gameplay mechanics, and innovative power-up systems. Built with Rust for blazing-fast performance and eframe/egui for a lightweight, responsive UI.
| Feature | Benefit |
|---|---|
| ๐ฆ Pure Rust | Lightning-fast performance with memory safety |
| ๐จ Synthwave Theme | Beautiful neon aesthetics with dual themes |
| โก 60 FPS | Smooth, responsive gameplay |
| ๐พ < 5MB Installer | Lightweight and efficient |
| ๐ง Zero Dependencies | No runtime requirements |
| ๐ฎ Modern Mechanics | SRS, 7-bag, hold, ghost pieces |
| โ Feature | Description |
|---|---|
| 10x20 Board | Classic Tetris dimensions |
| 7 Tetrominoes | I, O, T, S, Z, J, L pieces |
| Super Rotation System | Modern rotation with wall kicks |
| 7-Bag Randomizer | Fair piece distribution |
| Ghost Pieces | See where pieces will land |
| Hold Function | Save a piece for later |
| Soft & Hard Drop | Precise piece control |
| Level Progression | Increasing difficulty |
- ๐ฅ Build multipliers up to 5x by clearing lines consecutively
- โฑ๏ธ 2.5-second window between clears to maintain combo
- ๐ Visual combo counter with neon effects
Special glowing blocks that trigger effects when cleared:
| Power-Up | Effect | Duration |
|---|---|---|
| ๐ Nova | Clears adjacent blocks (radius 1) | Instant |
| โฐ Slow Time | Reduces gravity by 50% | 5 seconds |
- Normal: Standard constant gravity
- Pulse: Oscillating gravity (8-second sine wave)
- ๐ Dark Theme: Deep navy gradients with neon magenta/cyan accents
- โ๏ธ Light Theme: Soft pastels with muted neon highlights
- ๐ Grid Lines: Clear visual boundaries on the playfield
- ๐ค Typography: Clean, modern Inter font
- โจ Effects: Subtle animations without strobing
- โฟ No Rapid Flashing: Safe for photosensitive users
- ๐จ High Contrast: WCAG AA compliant color ratios
- โ๏ธ Customizable: Adjustable settings and controls
- ๐ Visual-Only: No audio dependencies
| Architecture | Download | Size | SHA256 |
|---|---|---|---|
| x64 (Most PCs) | ๐ฅ tetris-synthwave-0.2.0-x86_64.msi | 5.1 MB | pending |
| ARM64 (Surface Pro X) | ๐ฅ tetris-synthwave-0.2.0-aarch64.msi | 5.1 MB | pending |
๐ก Not sure which version? Most Windows PCs use x64. ARM64 is for newer ARM-based devices like Surface Pro X.
| Component | Minimum | Recommended |
|---|---|---|
| OS | Windows 10 1809+ | Windows 11 |
| CPU | 1 GHz dual-core | 2 GHz quad-core |
| RAM | 2 GB | 4 GB |
| Storage | 50 MB | 100 MB |
| Graphics | DirectX 11 | DirectX 12 |
| Key | Action | Description |
|---|---|---|
| โ/โ | Move | Shift piece horizontally |
| โ | Soft Drop | Accelerate fall |
| Space | Hard Drop | Instant placement |
| Z | Rotate CCW | Counter-clockwise rotation |
| X | Rotate CW | Clockwise rotation |
| C | Hold | Save piece for later |
| G | Ghost Toggle | Show/hide ghost piece |
| M | Music Toggle | Toggle music on/off |
| T | Theme | Toggle light/dark theme |
| P | Pause | Pause/resume game |
| R | Restart | Start new game |
| Esc | Quit | Exit to desktop |
Tetris Synthwave features a dynamic music system with randomized synthwave tracks:
- ๐ถ Randomized Playlist: Each session plays tracks in a different order with no repeats until all songs have played
- ๐ Silent Gaps: 4+ second breaks between tracks for a non-intrusive experience
- ๐๏ธ Volume Envelope: Tracks fade in and out smoothly with configurable volume curves
- ๐๏ธ Music Controls: Toggle music with the 'M' key or adjust settings in-game
- ๐ Track Display: Current playing track is shown in the sidebar
๐ Combo Chains (click to expand)
Build impressive combos by clearing lines in quick succession:
| Consecutive Clears | Multiplier | Points Bonus |
|---|---|---|
| 2 clears | 2x | +200% |
| 3 clears | 3x | +300% |
| 4 clears | 4x | +400% |
| 5+ clears | 5x | +500% (MAX) |
โฐ Tip: You have 2.5 seconds between clears to maintain your combo!
โจ Power Cells (click to expand)
Special glowing blocks appear randomly (~5% chance) and grant powers when cleared:
๐ Nova Effect
- Clears all blocks in a 1-block radius
- Great for creating openings
- Instant effect
โฐ Slow Time
- Reduces gravity by 50%
- Lasts for 5 seconds
- Perfect for complex maneuvers
| Action | Points | Level Multiplier |
|---|---|---|
| Single Line | 100 | ร Level |
| Double | 300 | ร Level |
| Triple | 500 | ร Level |
| Tetris (4 lines) | 800 | ร Level |
| Soft Drop | 1 | per row |
| Hard Drop | 2 | per row |
- ๐ฆ Rust (stable toolchain)
- ๐ฆ Git
- ๐ง WiX Toolset 3.14+ (optional, for building installers)
# Clone the repository
git clone https://github.com/matt793/tetris-synthwave.git
cd tetris-synthwave
# Run the game (debug mode)
cargo run
# Run optimized for best performance
cargo run --releaseBuilding Windows MSI Installers (click to expand)
# Install cargo-wix
cargo install cargo-wix
# Build for x64
cargo build --release --target x86_64-pc-windows-msvc
cargo wix --target x86_64-pc-windows-msvc --no-build
# Build for ARM64
rustup target add aarch64-pc-windows-msvc
cargo build --release --target aarch64-pc-windows-msvc
cargo wix --target aarch64-pc-windows-msvc --no-buildMSI files will be created in target/wix/
tetris-synthwave/
โโโ ๐ src/
โ โโโ ๐ main.rs # Entry point & window setup
โ โโโ ๐ app.rs # Application state management
โ โโโ ๐ game/ # Core game logic
โ โ โโโ ๐ mod.rs # Game state machine
โ โ โโโ ๐ board.rs # Board representation
โ โ โโโ ๐ piece.rs # Tetromino definitions
โ โ โโโ ๐ random.rs # 7-bag randomizer
โ โ โโโ ๐ scoring.rs # Points & levels
โ โโโ ๐ ui/ # User interface
โ โโโ ๐ mod.rs # UI coordination
โ โโโ ๐ theme.rs # Synthwave themes
โ โโโ ๐ panel.rs # Sidebar components
โ โโโ ๐ draw.rs # Board rendering
โโโ ๐ assets/ # Game resources
โ โโโ ๐จ Icon/ # Application icons
โโโ ๐ wix/ # Installer configs
โโโ ๐ Cargo.toml # Dependencies
# Run all tests
cargo test
# Run tests with output
cargo test -- --nocapture
# Run specific test
cargo test test_name| Metric | Target | Actual |
|---|---|---|
| Frame Rate | 60 FPS | โ 60 FPS |
| Memory Usage | < 50 MB | โ ~30 MB |
| Startup Time | < 1s | โ ~0.5s |
| Input Latency | < 16ms | โ ~8ms |
# Format code
cargo fmt
# Run clippy linter
cargo clippy -- -D warnings
# Check for security vulnerabilities
cargo auditSettings are automatically saved to your system's config directory:
| Platform | Location |
|---|---|
| Windows | %APPDATA%\tetris-synthwave\settings.json |
| Linux | ~/.config/tetris-synthwave/settings.json |
| macOS | ~/Library/Application Support/tetris-synthwave/settings.json |
{
"theme": "dark", // "dark" or "light"
"ghost_enabled": true, // Show ghost pieces
"gravity_mode": "normal", // "normal" or "pulse"
"high_score": 0, // Automatically tracked
"volume": 0.7, // Reserved for future audio
"keybindings": { // Customizable controls
"move_left": "Left",
"move_right": "Right",
"soft_drop": "Down",
"hard_drop": "Space",
"rotate_cw": "X",
"rotate_ccw": "Z",
"hold": "C",
"pause": "P"
}
}
Experience the neon-soaked synthwave aesthetics with deep navy backgrounds and vibrant magenta/cyan accents
Enjoy soft pastels with muted neon highlights for comfortable daytime gaming
- ๐ต Music Playback - Randomized synthwave tracks with 4+ second gaps and volume envelope
- ๐ฎ Online leaderboards
- ๐ Achievement system
- Challenge modes
- ๐ Multiplayer support
- ๐ฑ Mobile version
- ๐จ Custom themes
- ๐ Replay system
- ๐ค Player profiles
- ๐ Statistics tracking
- ๐ช Tournament mode
- ๐งฉ Custom piece sets
We welcome contributions! Please see our Contributing Guide for details.
- ๐ด Fork the repository
- ๐ฟ Create a feature branch (
git checkout -b feature/amazing-feature) - ๐พ Commit changes (
git commit -m 'Add amazing feature') - ๐ค Push to branch (
git push origin feature/amazing-feature) - ๐ Open a Pull Request
- ๐ฏ Follow Rust conventions
- โ Add tests for new features
- ๐ Update documentation
- ๐ Ensure
cargo clippypasses - ๐จ Run
cargo fmtbefore committing
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Tetris Synthwave Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
- ๐ฆ Rust Community - For the amazing language and ecosystem
- ๐จ egui Team - For the fantastic immediate-mode GUI library
- ๐ฎ Alexey Pajitnov - Creator of the original Tetris
- ๐ Synthwave Artists - For the aesthetic inspiration
- ๐ค Vibe Coded - This project was developed with AI assistance, bringing modern development practices to classic gaming