NEON CONSOLEBREAK/OUT

SYS BOOT SPD 000 FPS 60
CABINET 0132 BLOCKS

READY?

Mouse, finger or ← → drive the shield.
Release the ball at any angle you like.

SPACE / TAP
SHIELD OFFLINESECTOR 01

GAME OVER

0

FINAL SCORE
    10 ↺
    SECTOR CLEAR01 / 05

    YOU WON!

    Every block reduced to light.

    SCORE0
    ACCURACY0%
    BEST COMBO0
    8 ↺ AUTO
    CRT-400×600STANDBYPHOSPHOR: CY
    01 — ENGINE NOTES / MOVE RULES / ZERO DEPENDENCIES

    Four surfaces.
    One rule: only
    one axis flips.

    The ball carries a constant magnitude. Every contact it makes is allowed to flip exactly one velocity component — never both, never the energy itself. That single restriction is what turns a plain rectangle into a decision engine.

    Detection runs on swept-axis bounding boxes, subdivided into sub-steps small enough that nothing crosses a 20 px slab in one tick. When several blocks overlap the ball at once, only the deepest-penetrating one resolves — so a clean pair of pops costs a single bounce, and the velocity magnitude survives untouched. Rendered entirely by hand on one <canvas>, fixed-step physics, requestAnimationFrame presentation.

    1. WALLS

      Left, right and ceiling swap a single sign. Zero energy lost, zero memory kept.

    2. SHIELD

      Contact point becomes angle: dead centre returns the ball vertically, edges bite up to ±50°, and the shield's own momentum leaks a little spin into the flight.

    3. BLOCKS

      The shallower overlap axis decides which face was struck. Armoured blocks take two visits to fall.

    4. FLOOR

      Removes a shield and rewinds the ball onto what's left. Three misses and the cabinet dims.

    02 — LOCAL HALL OF FRAME