A tight, modern 2D platformer in Python with 6 levels, wall jumps and a built-in level editor.

The complete version of our platformer tutorial: coyote time, jump buffering, variable jumps and wall jumps; enemies, springs, moving platforms and crumbling blocks; 6 levels in 4 visual themes; and a level editor with a checker that proves every level can be finished.
Upgrades the free tutorial: How to Create a Platformer Game in Python
Everything the tutorial leaves as an exercise, done properly.
Coyote time, jump buffering, variable jump height and faster falling.
Climb chimneys with wall jumps, with a brief air-control lock for precision.
One-way platforms, spikes, crumbling blocks, springs and moving platforms that carry you.
Patrolling slimes and flying bats. Stomp them for a bounce.
Day, sunset, night and cave, with parallax backgrounds, gems, coins and checkpoints.
Paint with 14 brushes, playtest instantly and save your own levels.
A search over the real physics proves the exit and every gem are reachable.
20 pytest tests cover the physics and prove every built-in level is beatable.
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 | Platformer Pro | |
|---|---|---|
| Jumping | Basic jump | Coyote time, buffering, variable height |
| Walls | — | Wall slide + wall jump |
| Hazards & objects | Traps | Spikes, crumbles, springs, moving platforms |
| Enemies | — | Walkers + flyers (stomp them) |
| Art | Needs downloaded images | Procedural pixel art, 4 themes |
| Levels | 1 world | 6 levels + your own |
| Level editor | — | ✓ with playtest + checker |
| Tests | — | 20 pytest tests |
Clean, commented, modular Python. Here's the start of platformer_pro/world.py:
def _move_player(self, dt: float, inp: Input) -> None:
p = self.player
# ride moving platforms
if p.riding is not None and p.on_ground:
p.x += p.riding.dx
p.y += p.riding.dy
self._resolve_x(p, p.riding.dx)
d = inp.dir
if d:
p.facing = d
p.wall_lock = max(p.wall_lock - dt, 0.0)
control = 0.35 if p.wall_lock > 0 else 1.0
target = d * C.RUN_SPEED
The Game Dev Pro Pack includes Platformer Pro plus our other premium games, for $21.75 instead of $63 when bought one by one.
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.
$10.50 one-time. Instant download, free updates.
An advanced Tetris-style game in Python: modern rules, AI player, juice and tests
A polished Flappy-style game in Python, plus an AI that teaches itself to fly
A complete chess game in Python with its own AI engine you can play against
A polished Snake game in Python with 6 modes, power-ups, mazes, versus play and a smart AI