The gap
Generated platformer levels are only fair if every one of them is provably climbable with the exact jump physics the player has.
Game templates
The complete source of Scaleflint, a portrait wall-jump climber with rising water and generated shafts; the smoke test runs a planner bot that climbs the shafts with the real physics.
Coming soon
Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.
The gap
Generated platformer levels are only fair if every one of them is provably climbable with the exact jump physics the player has.
What it is
This template shares one physics step between the player, a planner that verifies the shafts and the bot, inside a polished, touch-ready game.
How you use it
Unzip, serve the folder and open index.html, then edit game.js; npm test plays it again in headless Chrome.
Source code of a real, playable game to reskin and learn from, with a smoke test whose bot plays it.
Use it when
Built for
gen() builds a shaft from a stage number and a seed; verifyStage() checks it from the start and every checkpoint, so new seeds are easy to vet.
stepBody() is the only movement code: change the jump, slide or hop constants once and the planner and bot follow.
Plain JavaScript and Canvas 2D with no runtime dependencies; open index.html through any static server and edit game.js.
A headless Chrome test loads the game, checks the console, presses keys and taps, and lets the built-in bot play a run to its result screen.
1 of 3
| Platform or runtime | Supported versions | Tested up to |
|---|---|---|
| Node.js | 22.12 or newer | Not stated |
The template is finished and tested. It is not on sale yet; this page will say where to get it when it is.
Coming soon
Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.