Break//Out

Canvas 2D · 32 bricks · 3 lives · one yellow ball

READY · 60 FPS
Insert Coin

Drag anywhere on the screen to slide the paddle · tap to serve

Operator’s manual

Four rows.
Eight columns.
No mercy.

  1. Serve

    The ball rides the paddle centre. Tap the screen, hit Space, or press Launch — it leaves at a 54° vector (dx ±2, dy −2.8) normalised to a constant 3.6 px/frame, so it never flies straight up the middle.

  2. Read the paddle

    Contact point decides the exit angle: dead centre returns it vertically, the tips fire it out at ±60°. Paddle motion adds english on top of that.

  3. Break clean

    Brick hits resolve on the axis of least penetration — top/bottom flips dy, left/right flips dx — and only one brick per frame is consumed, so the ball can never wedge itself between two cells.

  4. Clear the wall

    32 bricks × 10 points = 320. Survive with lives in hand and each remaining ball pays a 25-point bonus on the victory screen.

Build sheet
PropertyValue
Canvas400 × 600
Grid8 × 4
Brick cell50 × 20
Field offsety = 100
Ball radius3
Ball speed3.6 px/f
Paddle60 × 10 @ y580
Paddle clamp0 – 340
Lives3
Max score320
Tick16.67 ms fixed

Rendering is a fixed-timestep accumulator under requestAnimationFrame; the 32-brick layer is baked into an offscreen buffer and only re-baked when a brick dies, so the per-frame cost stays flat on mid-range phones.