About Lion Runner
A free endless runner set in the African savanna, playable in any modern browser. No download, no account, no ads.
What it is
You control a lion sprinting through three lanes of savanna track. Obstacles arrive, coins line the route, power-ups spawn every few hundred metres, and the speed climbs from 7 to 25 metres a second as you get deeper. The run ends when you hit something without a shield. That is the whole game, and it is meant to be played in short bursts.
It was built game-first: the simulation, collision and generation came before the website around it. Everything advertised on this site is implemented and running in the browser - there are no placeholder screens and no mock features.
How it works
Canvas, not CSS
The game draws to a 2D canvas with a simple pinhole projection, so the track has genuine depth and every sprite is positioned in world space rather than animated with stylesheets.
A fixed-timestep simulation
Physics runs at a fixed 120 Hz inside a single requestAnimationFrame loop with a time accumulator. The run behaves identically at 30, 60 and 144 frames a second, and pausing genuinely stops time.
Validated generation
The world is generated in 26-metre chunks ahead of the lion. Every obstacle row is checked against the jump arc and slide height before it is accepted, so an unavoidable wall can never spawn.
Pooled entities
Obstacles, coins, power-ups, scenery and particles are all recycled from fixed-size pools. A twenty-minute run allocates no more objects than the first ten seconds.
Synthesised audio
Every sound - coins, jumps, landings, shield breaks, the music bed - is generated with the Web Audio API at runtime. There are no audio files to download, and the audio context is only created after you interact with the page.
No tracking
There is no analytics script, no advertising, no cookies and no backend. Your scores and settings live in your own browser and nowhere else.
Built with
Astro for the pages, TypeScript in strict mode for the game, Tailwind CSS for the site chrome, and the HTML5 Canvas 2D and Web Audio APIs for everything inside the play area. The game layer is kept entirely separate from the site's UI code, and no UI framework state is touched during a frame.
Known limits
- The leaderboard is local to your browser. A global board would need a server and score validation, so rather than fake one, there isn't one -see the leaderboard.
- Art is drawn procedurally rather than hand-illustrated, so the style is deliberately simple.
- There is no cloud save. Clearing site data clears your records.