A polished Flappy-style game in Python, plus an AI that teaches itself to fly.

The complete, polished version of our Flappy Bird tutorial: procedural art (no image files), parallax scenery with a day/night cycle, medals, hard mode with moving pipes, and a neuroevolution AI (neural network + genetic algorithm written from scratch) that you can watch learn in real time.
Upgrades the free tutorial: How to Make a Flappy Bird Game in Python
Everything the tutorial leaves as an exercise, done properly.
A neural network and genetic algorithm in pure Python. 60 birds learn to fly in front of you.
Train at 1x-20x or MAX speed, watch a best-score chart, save the champion brain.
Anti-aliased bird, pipes, city skyline, clouds and medals, all drawn in code.
Five parallax layers, sunset, a starry night with lit windows, and dawn.
Bronze, silver, gold and platinum medals, best score per mode, and lifetime stats.
Gaps shrink and speed rises, pipes start moving, and every level is proven beatable.
Deterministic 120 Hz simulation: it plays the same at any FPS.
14 pytest tests cover physics, collisions, scoring and the genetic algorithm.
Real, unedited screenshots of the game. Every pixel is drawn by the code you get.
The tutorial is great for learning the basics. This is the version you'd actually ship.
| Free tutorial | Flappy Wings Pro | |
|---|---|---|
| Art | Needs downloaded image files | Procedural, no files |
| Physics | Frame-rate dependent | Fixed 120 Hz timestep |
| Scenery | Static background | 5 parallax layers + day/night |
| Difficulty | Constant | Ramping + moving pipes + Hard mode |
| Medals, best scores, stats | — | ✓ |
| AI that learns to play | — | ✓ neuroevolution |
| Pretrained AI brain | — | ✓ (≈70 pipes on average) |
| Sound effects | — | ✓ synthesized |
| Tests | — | 14 pytest tests |
Clean, commented, modular Python. Here's the start of flappy_pro/brain.py:
def next_generation(self) -> List[Brain]:
ranked = sorted(self.brains, key=lambda b: b.fitness, reverse=True)
children = [b.copy() for b in ranked[:C.ELITE]] # elitism
while len(children) < self.size:
a, b = self._pick(ranked), self._pick(ranked)
children.append(a.crossover(b, self.rng).mutate(self.rng))
# keep a little fresh blood so the population never stagnates
for i in range(max(1, self.size // 20)):
children[-1 - i] = Brain(rng=self.rng)
self.brains = children
self.generation += 1
return self.brains
The Game Dev Pro Pack includes Flappy Wings Pro plus our two other premium games, for $19 instead of $39.
What's in the pack?
Python 3.8 or newer and pygame (pip install pygame-ce, or classic pygame). It works on Windows, macOS and Linux. There are no image or sound files to download: everything is generated in code.
You're sent straight to your download page, and we email you the link too. The link keeps working, so you can re-download updated versions later. Lost it? Recover your downloads with your email.
If you've followed our free tutorial, yes. The code is split into small, commented modules, and the README walks through the architecture. It's the ideal next step after the tutorial.
Yes. You can modify it, learn from it, and ship your own games built on it, even commercially. The only thing you can't do is redistribute or resell the source code itself.
Email us within 14 days and we'll refund you. No questions asked.
$12 one-time. Instant download, free updates.