Level Devil is a 2D rage platformer in the tradition of Cat Mario and IWBTG. Ten levels building to a final 'pain.' level. Built in React + TypeScript with all rendering on HTML5 Canvas — no game engine.
The technical detail worth mentioning: the physics loop is frame-independent. Every tick is fixed at 16.67ms (60Hz), and rendering interpolates between physics ticks for smooth motion on high-refresh displays. This means the game plays identically on a 60Hz laptop and a 240Hz gaming monitor, which is critical for a precision platformer where one frame of difference is the difference between clearing a jump and dying.
Instant restart is the most important UX detail in a rage game. The restart pipeline resets canvas state in <50ms, and the level loader caches each level's static geometry so respawns don't re-allocate. The level editor used internally is just JSON — easy to iterate on.
Web Audio API drives the soundtrack and impact effects with low-latency sample triggering. The 'pain.' level intentionally desyncs the audio from the visuals by 200ms when you die — a small psychological trick that makes deaths feel worse.
- 01Frame-independent physics — identical play on 60Hz and 240Hz
- 02<50ms restart pipeline with cached level geometry
- 03JSON-defined levels with an internal editor
- 04Web Audio API for low-latency sample triggering
- 05Intentional audio-visual desync on the final 'pain.' level
More work
Seven other projects across crypto, AI, and games.