Pong

Play Pong two-player or against the computer — and see why flat mirror bounces make the game unwinnable, measured rather than asserted.

Left paddle: W and S, or drag on the left half. Right paddle in two-player mode: and , or drag on the right half. Switch the bounce rule to feel the difference the tables below measure. Everything runs in your browser; nothing is uploaded.

Flat reflection conserves something

If the ball bounces off a paddle the way light bounces off a mirror, the horizontal velocity flips and the vertical one is left alone. So the ball's vertical speed becomes a conserved quantity — and neither player can touch it.

Bounce ruleWidest change in vertical speed across a rallyAngle the returner can choose
Flat 0.000000 px/s none at all
Paddle position 121.8 px/s a range 453 px/s wide

Not approximately conserved — zero to six decimal places, across whole rallies. Which means no player can ever hit the ball somewhere the other was not already heading. Under the position rule the returner picks the outgoing vertical speed out of a range 453 pixels per second wide. That is the difference between having a shot and merely having a bat.

Two experiments that showed nothing, and the one that worked

The obvious test is to set both paddles tracking the ball and see which rule ends rallies. It shows nothing: under both rules every rally runs forever (flat 40/40, position 40/40). Giving one paddle an attacking policy and a fast defender changes nothing either. A defender quick enough to reach anything is never beaten, so the two rules look identical.

There is a third reason, and it is the least obvious. Under the position rule, a paddle that centres itself on the ball makes contact at its middle — and a middle contact returns the ball flat. So two trackers drive the vertical speed towards zero and end up rallying along a straight line. The rule that exists to create angles destroys them, for as long as neither side tries anything.

The claim only bites when the defender is slow enough to be beaten. Hold the attacker fast, vary the defender's paddle speed, and the two rules separate completely:

Defender paddle speedSurvives under flatSurvives under paddle position
60 px/s 73% 0%
100 px/s 93% 0%
140 px/s 100% 0%
200 px/s 100% 100%
280 px/s 100% 100%
380 px/s 100% 100%

At 100 pixels a second a defender survives 93% of flat rallies and none of the others. And the right-hand column is a cliff rather than a slope — nothing at 140, everything at 200.

That cliff sits just under 222 px/s, which is the speed needed to cross the whole court in the 1.80 seconds the ball takes to get from one paddle to the other. A returner who can choose the angle can demand exactly that. A returner who cannot, cannot demand anything.

Worth keeping the failed version in view. "Flat reflection is a stalemate" is a claim about what a player can do, not about whether rallies end — and a test where nobody can lose cannot tell the two apart. It took two goes to find the constraint that makes the difference visible, which is the constraint the claim was always about.

How to use

  1. Left paddle: W and S, or drag on the left half of the court.
  2. Right paddle in two-player mode: arrow keys, or drag on the right half.
  3. Pick whether the bounce angle depends on where the ball hits the paddle.
  4. Switch to flat bounces to feel the game stop being a game.
  5. Lower the computer speed to see the difference the tables measure.

Frequently asked questions

Why does the bounce rule matter so much?

Because it decides whether you have a shot or just a bat. If the ball reflects like light off a mirror, the horizontal velocity flips and the vertical one is untouched — measured across whole rallies it does not change by so much as a rounding error. Nobody can put the ball anywhere the other player was not already heading.

What does paddle-position bouncing change?

It lets the returner choose the angle. Where the ball lands on the paddle sets the outgoing direction, so the vertical speed can be picked from a range about 450 pixels per second wide. That is the whole of the attacking game.

Does flat bouncing really make it a stalemate?

Against a defender quick enough to reach the ball, yes — but that is not where it shows. Two paddles that track the ball rally forever under either rule. The difference appears once the defender is speed-limited: at 100 pixels a second a defender survives 93% of flat rallies and none at all when the attacker can choose the angle.

How fast does a paddle need to be?

Under flat bouncing, about 140 pixels a second is enough to survive indefinitely. Under paddle-position bouncing the same paddle loses every single rally, and the threshold jumps to around 200 — which is close to the speed needed to cross the whole court in the time the ball takes to travel from one paddle to the other.

Is Pong the same as Breakout?

They share a paddle and a bouncing ball and nothing else that matters. Breakout is one-sided with a wall of bricks to clear; Pong is two-sided with an opponent, and the entire game lives in the angle you give the ball back.

Why do both paddles end up rallying in a straight line?

Because a paddle that centres itself on the ball makes contact at its middle, and a middle contact returns the ball flat. Two pure trackers therefore drive the vertical speed towards zero under the position rule too — the angles only appear when somebody deliberately hits off-centre.

Does this send anything anywhere?

No. The game runs entirely in your browser and nothing is uploaded.

🔒 This tool runs entirely in your browser. Nothing you enter is uploaded, logged, or stored.