What it is
Petey has a portal now, and a deadline. He steps out onto a city street in Universe 4,096 where Stan is waiting with a standup and Synthia, the Chief Suggestion Officer drone, follows him everywhere with unsolicited advice. Between him and the DEPLOY button: beetles, a fast Regression Roach, a Memory Leak slime, a Null Pointer spider that drops on a thread, and the Risk Agents from Compliance, who lob the risk register at anyone who gets close.
Grab the phone from a light box and Petey sends bouncing balls of spaghetti code with the old "mail sent" whoosh. Hold down to crouch and charge a power jump twice as high. Hearts heal him, or give an extra life when he's at full health, and the rollback remote makes him invincible for ten seconds. One manhole cover on the third crossing glows a little: crouch on it.
Clear World 1-1 and Stan takes over for World 1-2, on the same street after dark, with a post-it pad and a lot more Risk Agents.
Controls
| Key | Action |
|---|---|
| ← → | Run |
| Z or Space | Jump (hold for higher) |
| Shift | Sprint |
| X | Throw: spaghetti code with the phone, post-its with the pad |
| Hold ↓, then Z | Crouch, charge, power jump |
| Enter / Esc | Pause |
| M | Sound on or off |
Gamepads work, and on a phone there are on-screen buttons.
How it's put together
src/game.js— the heroes, bugs, Risk Agents, power-ups, portals and the secret warpsrc/level.js— sprite-tile ground, curbs, manholes, ledges and the street's layerssrc/world1-1.js,src/world1-2.js— the two worldssrc/characters.js— each hero's sprites, power-up and linesassets/sprites/— every character, prop and background, generated in OpenArt from the Petey the Interdimensional Architect character sheets. The runs and walks were rendered as short videos and cut into looping framesassets/audio/— music and effects, generated with ElevenLabs
There's no build step and nothing loads from outside the folder except two Google Fonts.
Running it yourself
ES modules need to be served over HTTP rather than opened from disk, so from the game folder:
python3 -m http.server 8000
Then open http://localhost:8000.