Leak To The Past
From playing games to building one.
A top-down 2D action game: move, choose when to shoot, and manage health and ammunition to survive.

Personal project · Game prototype
Playable desktop prototype, keyboard and mouse
- Python
- Pygame
- JavaScript
- Canvas 2D
The starting point.
The aim: build gameplay systems directly with Pygame. A real-time loop, collisions, directional animation, camera, lighting and enemy behaviours.
The original game is written in Python with Pygame. A separate JavaScript and Canvas 2D port now makes it playable in the browser.
What I built.
My own contribution to the project.
Personal prototype. Original Python / Pygame version and separate browser port.
Gameplay systems
The aim: build gameplay systems directly with Pygame. A real-time loop, collisions, directional animation, camera, lighting and enemy behaviours.
Browser port
The original game is written in Python with Pygame. A separate JavaScript and Canvas 2D port now makes it playable in the browser.
Two versions, one playground.
The original prototype and the browser port are separate implementations. Distinguishing them makes it clear what can be played today.
The original prototype
Python / Pygame
The starting point of the game: movement, shooting and the systems that make the action possible.
The browser port
JavaScript / Canvas 2D
A separate version playable on desktop with keyboard and mouse, making the exploration accessible from the portfolio.
Gameplay systems explored
- Collisions and enemies
- Health and ammunition
- Directional animations
- Camera and lighting
These are the gameplay systems explored, rather than a claim of full parity between the two versions.
What I learned.
The prototype connects the enjoyment of playing with the systems that make the action possible. Its port makes the exploration available in a browser, with keyboard and mouse on desktop.