Punball · systems design
One alicorn crosses three forms of play: free flight, a forward slide and an untimed sauce-routing puzzle. The same rescued residents travel through the whole adventure.
§ 1
Arrows or WASD steer freely. There is no gravity. Tap the sky to fly to a marked point. Space, E or Gust sends a wing gust. Rescue Ravi Oli, Sir Crumb and Meatball Mike from their cages, then enter the exit ring. Reaching the exit without them does not clear the course.
Flight speed is 6.4 units per second. A gust protects for 0.65 seconds, stuns forks within 4.8 horizontal units for three seconds, and opens cages within 4.5 units. It recharges in 1.15 seconds. Forks follow fixed positions and a four-second cycle with a 1.2-second warning. Their full shafts are solid.
§ 2
The camera moves behind the alicorn for a 65-second ride down three grooves. Press left or right once to change one groove. Space, E or Hop lifts the alicorn for 0.86 seconds. Holding an arrow does not skip through multiple grooves.
Twenty-four authored obstacle rows start after 8.5 seconds. Rows are 2.2 seconds apart. Every row leaves a safe groove. Gaps span 2.7 units; the ride advances at ten units per second. Contact uses the alicorn’s visible lane position, including while changing grooves. Cheese trails point to the safe route.
§ 3
Walk with arrows, WASD or a tap on the floor. Tap paths go around the garlic-bread walls. Stand near a named valve and use Turn to rotate its elbow pipe by 90 degrees. Connect Marinara, Alfredo and Pesto in order from the tomato source to the escape colander.
The puzzle has no timer. Each turn is reversible, and connected pipe segments change color. Roaming meatballs follow fixed paths. Valve interaction areas are safe while you study the pipes. After all three connect, approach the colander and choose Launch. The final action completes the adventure.
§ 4
Each course starts with three hearts. Damage gives 1.6 seconds of protection. Checkpoints refill hearts after the second flight rescue and forward progress, halfway through the slide, and after the second pipe connection. At zero hearts, retry the latest checkpoint as often as needed. Score, pickups, rescues and puzzle state return to the checkpoint snapshot.
Each cheese gives 50 points. Each resident gives 500. Finishing flight or slide gives 1,000. The final launch gives 2,000 plus 250 per heart. The maximum authored score is 13,000. Save Final Score submits a completed adventure once to the new v2 board. Practice courses do not submit. Checkpoints last for the current page session; refreshing starts a new adventure.
§ 5
A pure simulation runs at 60 fixed steps per second. Three.js renders one original Blender alicorn and three camera views. No new engine dependency or paid asset pack was added. Pause, lost focus and hidden tabs stop play and clear held input. Touch controls capture pointers and clear on cancellation. Sound uses synthesized cues and closes on unmount.
Course data lives in super-allicorn/content.ts. Rules, checkpoint snapshots and floor routing live in sim.ts. Geometry and renderer are separate. The regression suite completes the campaign through movement and action inputs, checks all 64 pipe states, tests retries and hop timing, verifies road triangle winding, and reads the actual exported GLB.