Original game · software on hardware
An original game for a pinball machine, now in beta on the hardware.
The Multimorphic P3 is a pinball machine with a screen for a playfield and mechanical modules that bolt on top. I wrote a new game for it: a party elimination game for two to sixteen players, with the rules, the hardware integration, a two-display interface and its own voice, effects and music. The first playtest on the machine was August 19, 2026.
What went into it
Eight modes, two screens, and the audio.
The rules are eight C# modes talking to the machine's hardware: which switch just closed, which ball is where, which coil to fire. The screens are Unity scenes on two displays at once, a 1080 by 1920 portrait panel under the ball and a 1920 by 1080 backbox above it. The audio is 25 voice clips, 9 effects and 4 music tracks, cut and levelled by me and wired into a four-tier priority queue so the important line always wins.
Three favorite parts
And how I did them.
A player system the platform didn't have
The P3 is built around four players. Stall Brawl needed a room full of them: a queue of up to sixteen, each with their own strikes, rotating turn by turn until one is left. Every hole and lock on the playfield is a safe stall. Miss and you take a hit. Certain shots turn red and count against you, and more of them go red every lap.
I wrote my own player queue on top of the SDK, and the game recognizes a stall by walking the machine's own ball path definitions to find every exit that ends in a hole or a lock. The red shot picker adds more red shots each lap and always leaves two safe ones, so the game gets harder without becoming unwinnable. Strikes are adjustable and there's no cradle clock, because those are the rules I wanted to play.
A playfield that changes shape every lap
The Portal module has ramps that lift, a trapdoor, a cube that locks balls, a magnet-driven moat, and a second flipper halfway up the field. The game reshapes it each lap: Portals, then Upper Deck, then Lockdown. Different shots open and close, so the safe stalls move under the players.
A module mode listens for the lap change, republishes the set of stall targets for the new shape, and drives the mechs to match: the left ramp climbs to the upper deck and wakes the mid-field flipper for a few seconds, the cube rises so landings on the grate lock, the kickback holds and fires. When two players are left, a Final Two override closes everything and opens the turret. Balls held by a mech get delivered back by that mech. This is the one part that hasn't been on the machine yet. The Portal build is written and compiles, and the August playtest ran on the Final Resistance module.
Producing the audio
Twenty-five voice lines cover the calls the game has to make: secure, hit taken, eliminated, and who's up next. Nine sound effects. Four music tracks for setup, play, the final two, and the win.
The voice runs through a four-tier priority queue, so an elimination call can interrupt chatter and not the other way round. Every clip is loop-cut and levelled against the machine's stock effects, which I turned down to sit underneath. Clip lengths get measured at install because the platform gives no completion callback, so the game knows when a line ends before it queues the next one. The voice was generated, not recorded, and the music came out of Suno; the cutting, levelling and wiring are mine.
The final product
What it looks like.
Built with C#, Unity 5.6 and the Multimorphic P3 SDK 0.9, plus Suno and TTS for the audio, a Python log analyser for the machine's logs, and an offline test harness so the rules could be checked with the machine off.