All projects

Platformer Game

Completed

A 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