A fast-paced 2D side-scrolling game built with HTML5 Canvas and vanilla JavaScript.
I wanted to see how far I could push vanilla JavaScript and the HTML5 Canvas API without reaching for any frameworks. Geometry Dash felt like the perfect test — it demands tight input handling, smooth animation, and a rhythm that keeps you coming back after every failed attempt.
The game runs at 60fps with coyote time and jump buffering so it actually feels responsive rather than frustrating. Behind the rolling parallax hills (three depth layers), there's a dynamic hue-shifting background that keeps things visually interesting. I procedurally generate a 140 BPM soundtrack using the Web Audio API — no audio files, just oscillators and gain nodes doing their thing.
There are 10 obstacle patterns, collectible golden orbs with a combo multiplier, and a death animation complete with screen shake. Everything persists to localStorage — high scores, attempt counts, the lot. It works on mobile too with touch controls.
The whole thing is maybe 2000 lines of JavaScript. No build step, no bundler, just open the HTML file and play. Sometimes the simplest approach is the most satisfying.