A beautifully crafted Flappy Bird-style arcade game built entirely in Python with Pygame. Features stunning hand-drawn pixel art, 4 unique game modes, dynamic weather, a day-night cycle, and procedurally generated sound effects.
- 🌲 Forest — Lush nature with a dynamic 4-stage weather cycle (10 seconds per phase): Morning (Clear), Evening (Sunset), Rain (Stormy overcast & lightning), and Wind (Gale-force sweeps with 1.35x speedup & turbulence). Includes an animated river.
- 🌃 Synthwave — Retro neon aesthetic with scanline sun, grid mountains, and pulsing cyan/magenta pipes
- 🏙️ City — Urban skyline with animated buildings, traffic, and industrial steel girder obstacles
- ❄️ Winter — Snowy landscape with falling snowflakes, frost-tinted trees, and howling wind
- Difficulty Progression — 4 tiers (Easy → Medium → Hard → Insane) with increasing speed and shrinking gaps
- Flying Obstacles — Animated birds and bats that fly across the screen at higher difficulties
- Power-Ups — Shield (absorbs one hit), Slow-Mo (halves game speed), Coin Magnet (attracts coins towards you), and Shrink Potion (shrinks bird size & collision hitbox by 50% for narrow gaps)
- Pilot Ranks — Dynamic pilot titles (Recruit, Insane Flyer, Sigma Pilot, Skibidi Lord, Mewing Master, Rizz God) displayed in the profile header pill
- Coin Economy — Collect coins mid-flight to unlock premium bird skins
- Daily Rewards — Claim +50 coins every 24 hours via the dashboard
- Virtual Keyboard — Fully mobile-friendly on-screen QWERTY layout for profile edits
- Classic, Ninja, Mech, Phoenix, Sigma, Skibidi Toilet, Mewing Master (squinting eyes & shush emoji trail), and Rizz God (glowing red laser eyes & red hearts trail) — each with unique particle trail shapes and custom pixel art drawings
- All sounds synthesized from pure math — no external audio files needed
- Dynamic music intensity that scales with difficulty tier
- Mode-specific ambient soundscapes (forest wind, synthwave beats, city traffic, winter gale)
- Achievements Menu — Unlock badges (First Flight, Coin Collector, Insane Pilot, Skin Enthusiast) and view progress in a gold modal. Requires all 8 skins to unlock the "Skin Enthusiast" badge!
- Persistent player profiles with lifetime coin tracking
- Local leaderboard with multiple player support
- High score tracking per player
- Python 3.8 or higher
- Pygame 2.0 or higher
# Clone the repository
git clone https://github.com/saisaran-m/flapper-arcade.git
cd flapper-arcade
# Install dependencies
pip install pygame
# Generate sound effects (first time only)
python generate_sounds.py
# Run the game!
python main.py| Key | Action |
|---|---|
SPACE / Click |
Flap / Select |
V |
Cycle volume (50% → 100% → Mute → 20%) |
ESC |
Back to menu |
flapper-arcade/
├── main.py # Main game (all rendering, physics, UI)
├── generate_sounds.py # Procedural sound synthesizer
├── assets/
│ └── sounds/ # Generated WAV files (created by generate_sounds.py)
├── .gitignore
└── README.md
Start the game to see the beautiful visuals across all 4 modes!
- Zero external assets — Everything is drawn with Pygame primitives and math
- Resizable window with letterbox scaling (maintains aspect ratio)
- Procedural sound synthesis — Jump chirps, coin chimes, ambient loops, all from sine waves
- 3-layer parallax backgrounds with mountains, trees, and cabins
- Dynamic weather — Rain particles with ground splash effects, lightning flashes
- Smooth day-night cycle — 40-second full cycle with sun/moon orbit, sky gradient blending
This project is open source under the MIT License.
Made with ❤️ and Python 🐍