The NPC Shot Me With the Rocket I Asked For
Two games built live in one sitting across eleven screens, an LED strip, and a projector — then items invented mid-match by shouting them out. The night the improv game engine became real.
My brother came over. I wanted to show him something, so I asked JARVIS for a modern Solar Jetman across every device in the garage lab — and told it to be quick, because the point was the speed.
The room is the console
The lab wall is eleven screens driven as one world in millimetres: two 32-inch Dells, a 60-inch Sharp, a laptop, the two panels of my Duo, my partner's three screens across the room, and now a projector on a Dell tower we provisioned from a USB stick the same night. Between them runs a 175-LED strip. A Bose bar speaks in JARVIS's voice.
Solar Jetman landed on that in well under an hour. The Duo became the hangar (land soft to refuel). The main wall became the caverns — gravity, mines, turrets, gems. My partner's screens became a thin ridge tunnel. The projector became open space with the Mothership hovering in a starfield. The strip became the fuel gauge, draining across the room as you thrust. You tow the three Golden Warpship parts out through wormholes, because the room has blind gaps between screens and the original game had wormholes, so the room's constraint became the game's mechanic.
Then my brother asked for Bomberman.
The second game came faster, because the first one paid for it
JARVIS had already factored the substrate into a kit: an engine is just reset / step / snapshot, a renderer is one draw function that works on every screen because it draws in world coordinates. Bomberman was a 25×7 grid across the three main screens — shaped like a cross, because the Dells only see a band of the world's height and the level has to live inside what the screens can show. My brother played on the Razer keyboard plugged into HomeBase; I had the pad; two JARVIS bombers filled the other corners. The strip became the round clock, strobing red when sudden death closes the walls in.
Then we started inventing items by shouting
This was the part I actually wanted. JARVIS added a plugin folder: one small file is one item. Drop a file in, and within two seconds it's loaded, two copies are hidden in random bricks, and JARVIS announces it over the Bose. No restart. A broken file gets logged and disabled; the match never dies.
So I said "add a bomb kick" and about ninety seconds later there was an orange K in the bricks, and walking into a bomb sent it sliding. Then "remote detonate" — bombs wait for a trigger. Then, with a grin, "add rockets."
Rockets went live mid-match. One of the JARVIS bombers picked up the rocket within seconds of it existing, lined me up, and killed me with it.
I laughed for a full minute. That's the whole idea proven in one moment: an item that didn't exist a minute earlier, invented by a human out loud, used against that human by a machine that plays by the same rules. Freeze ray came next.
What broke, honestly
Plenty, and each one taught the kit something it now remembers:
- The visible screen envelope is the level. Both games first shipped with geometry floating in the blind space between and below screens. I flew the jetpod off the edge of a screen and got lost in the abyss. Now the gaps are walls and the wormholes are the only way across.
- A message-type field got overwritten by a timer with the same name, so every screen sat on "building the arena." One renamed key.
- A window that isn't quite fullscreen renders the world squashed. "The aspect ratio's off on the right monitor" was one kiosk sitting at 945×1028.
- Items were being destroyed by the very blast that revealed them, same tick. Nothing had ever survived being uncovered. The dry run had said "pickups: 0" and we'd read past it.
- The AI bombers killed themselves at the three-second mark — a hitbox rule about stepping off your own bomb. Fixed with a headless dry run that logs who killed whom before anything touches the wall.
Where this goes
Game parties. People shout ideas — a game, a mechanic, an item — and it exists on the wall in minutes, then gets played until the next shout. Every game we build is a pattern in a growing library, so the next one is faster than the last. Tonight the loop closed for the first time, and it closed with an NPC shooting me in the face with my own idea.
I'll take it.