Deterministic by construction
A fixed 120Hz simulation drives everything. The same inputs always produce the same run, which is what makes replays and the solver meaningful.
Q-Runner is a browser platformer with cube, ship and ball modes, gravity portals, a full level editor and a Q-learning playground. No backend, no physics engine — the simulation is hand-rolled and shared by the game, the editor and the build-time validator.
A fixed 120Hz simulation drives everything. The same inputs always produce the same run, which is what makes replays and the solver meaningful.
Every built-in level is grown against a reachability solver that may only change its input every 50ms. If a level ships, a person can finish it.
Chunks are generated ahead of the player and rejected unless the solver can still cross them, so you never hit an impossible wall.
A tabular Q-learning agent trains in your browser against the same engine you play, with its table saved between sessions.