Platformer Game
CompletedA browser-based 2D platformer built from scratch in vanilla JavaScript
JavaScriptCanvas APIHTML5
Motivation
I built a small game engine from first principles to understand the systems behind movement, collision, rendering, and level design.
Architecture
A requestAnimationFrame game loop coordinates a custom physics simulation, AABB collision detection, sprite rendering, input handling, and JSON-driven levels.
Features
- Custom movement and gravity
- AABB collision detection
- Sprite animation
- Collectibles and scoring
- Coyote time and jump buffering
Challenges
- Resolving collision edge cases reliably
- Tuning movement so it feels responsive
- Keeping rendering and simulation concerns separate
Lessons learned
- Game feel matters as much as mathematical correctness
- A fixed timestep produces more predictable physics
- Small projects still benefit from clear module boundaries
Future plans
- Touch controls
- Sound and music
- A time-trial leaderboard