Left{{ hud.left }}
{{ hud.mode === 'solo' ? 'Computer' : 'Right' }}{{ hud.right }}
First to{{ hud.target }}
Rally{{ hud.rally }}
{{ player === 0 ? 'Left · W / S' : 'Right · ↑ / ↓' }}

Left: W / S · {{ hud.mode === 'solo' ? 'or ↑ / ↓' : 'Right: ↑ / ↓' }} · P: pause

{{ textState }}

In two-paddle arcade games such as Pong, each player defends one end of the court with a paddle that moves up and down. The ball travels between them until somebody misses a return and the opponent earns a point. The exchange before that miss is a rally, so keeping the ball in play and winning the point are different goals.

Good positioning depends on where the ball will arrive. Following its current height can leave a paddle in the wrong place after a bounce off the top or bottom wall. Reading the direction of travel and moving early leaves more time to adjust before contact.

Contact position can also shape the next shot. In paddle games with position-controlled rebounds, a return near the middle travels at a shallower angle, while a hit near an end of the paddle sends the ball more steeply upward or downward. Aiming close to an edge can make the opponent cover more ground, but leaves less margin for a positioning error. A more central return is often the safer choice when the aim is to sustain an exchange.

A long rally reflects successful returns by both players, not a string of points for one player. Faster ball travel gives each paddle less time to reach the next contact, so rally lengths are most useful for practice comparisons when the pace and opponent remain the same.

How to Use This Tool:

The starting match is against the computer at Standard pace, first to 5 points, with the serve seed paddle-1. Those settings are ready to play without editing.

  1. Choose Computer to control the left paddle against the computer on the right, or Local two player for two people sharing one device. Set First to to 3, 5, 7, or 11 points and Pace to Calm, Standard, or Quick.
  2. Keep the supplied Serve seed or enter your own, then select Start match. During Get ready, the ball waits in the middle while the paddles can already move.
    The seed must contain 1 to 96 characters and cannot be all spaces. Leading and trailing spaces are removed. An empty or all-space seed leaves Start match disabled.
  3. Hold W to move the left paddle up and S to move it down. Against the computer, the Up and Down arrow keys also control the left paddle. In local two-player play, those arrow keys control the right paddle instead. Keyboard movement works while the playfield has focus.
  4. Use the on-screen arrow buttons for touch control, or press and hold above or below a paddle in the court. In local play, start the press in the left or right half to choose that paddle. These are directional controls, not drag-to-position controls; release to stop.
  5. Select Pause or press P to take a break, then use Resume to continue. Switching tabs or windows also pauses play. Restart begins again with the same settings and seed; End match stops early and opens the summary.

After a match, choose Replay same seed to try the same setup again, New seed to keep the settings with a different seed, or Change setup to edit the opponent, pace, target, and seed.

Interpreting Results:

The left and right scores count points. Rally counts successful paddle contacts by either player in the current exchange; serves and wall bounces do not add to it. Longest rally is the highest contact count reached during the match, not the number of returns made by one player alone.

Best rally · this setup is the highest recorded rally for the same opponent mode, pace, and point target in this browser. Different seeds share that record. Both completed matches and matches stopped with End match can improve it; restarting midway does not record the abandoned attempt.

A winner is declared only when a player reaches the target. Match ended with Unfinished means play was stopped early, even when someone was ahead. Active time includes serve delays but excludes pauses, so it is not simply the time since the page was opened.

Technical Details:

Horizontal ball speed stays fixed at the chosen pace. Top and bottom walls reverse vertical travel, while paddle contacts set a new vertical speed from the contact position. Paddle movement adds no separate spin or speed bonus, and a rising rally count does not accelerate horizontal travel.

Contact, scoring and completion

The court measures 640 by 360 game units. Each paddle is 72 units tall and the ball has a radius of 6 units. These are court coordinates, not physical screen pixels, so resizing the display does not change the playing dimensions.

Paddle-ball collision, scoring, and match-ending rules
Event Rule
Paddle contact A return is accepted when the ball crosses the receiving paddle's contact boundary with its centre at most 42 units above or below the paddle centre. Horizontal direction reverses and the rally increases by one.
Top or bottom bounce The ball's centre is reflected back inside the vertical limits of 6 and 354 units. Vertical direction reverses without awarding a point or adding a rally contact.
Miss The opposite player gains one point only when the whole ball has passed beyond a left or right court edge. In court coordinates, its centre must be less than −6 on the left or greater than 646 on the right.
Winning point The first player to reach the selected target wins immediately. There is no requirement to lead by two points.

The 42-unit contact limit combines the paddle's 36-unit half-height with the ball's 6-unit radius. Contact is checked as the ball centre crosses horizontal coordinate 36 at the left paddle or 604 at the right, rather than only at its final position after a movement update. Exactly 42 units of vertical offset counts as a return.

Pace and paddle movement

The pace changes ball speed, not paddle size or movement speed. The speeds below are horizontal game units per second.

Horizontal ball speed for each pace
Pace Horizontal speed
Calm 220
Standard 280
Quick 340

Human-controlled paddles move at 300 game units per second. The computer moves at 180 and follows the ball's current height rather than predicting its future arrival. It moves only when the vertical gap between its centre and the ball exceeds 8 units. All paddle centres stay between 36 and 324 units, keeping the full paddle inside the court.

Rebound speed

A paddle return keeps the horizontal speed from the pace table and sets the vertical speed using the distance from the paddle centre. Let V be that horizontal speed, d the signed vertical contact offset, and vy the outgoing vertical speed. The magnitude of the vertical speed is:

|vy| = V· max ( 0.15, min ( |d|36 ,1 ))

Here d is measured in game units and is positive below the paddle centre. Contact above the centre sends the ball upward; contact below it sends the ball downward. An exact-centre contact also goes downward. The vertical speed is never less than 15% of the horizontal speed after a paddle return, and never greater than the horizontal speed. This caps the rebound angle at 45 degrees.

For example, at Standard pace, a contact 18 units below the centre produces a horizontal speed of 280 and a downward speed of 140 game units per second. An exact-centre return has a downward speed of 42, not zero. The minimum vertical speed prevents a perfectly horizontal return after paddle contact.

Serves and active time

Each serve begins at the court centre with a 0.8-second waiting interval. Paddles can move during that interval. The seed determines the first horizontal direction and the sequence of vertical serve speeds, which range up to half the horizontal speed in either direction. Later serves alternate left and right regardless of who scored. A new serve resets the rally count but does not recenter the paddles.

Play advances in 20-millisecond steps. For N running steps, the active time t in seconds is:

t=0.02×N

The result rounds active time to one decimal place. Pausing freezes the ball, paddles, and active time together. Slow rendering can leave game time behind elapsed real time, so this duration is not a precision stopwatch measurement.

FAQ:

Does the same seed guarantee the same result?

No. The seed repeats the serve choices, but the match also depends on paddle movements and their timing. Reproducing a full match requires the same settings, seed, and moves at the same game-time steps. Replay same seed starts another playable match; it does not play back your previous inputs. Outcomes depend on play and have no monetary value.

Will my match be saved if I reload?

There is no saved-match restore. Best-rally values are kept in browser storage, not an account-synced leaderboard or a saved recording of your moves. Clearing that storage removes the records. When storage is unavailable, the game reports that the best lasts only for the current page.

What should I do when the playfield is unavailable?

Select Retry renderer to try creating the playfield again. A match that loses its playfield while running is paused, so choose Resume after a successful retry. If the court still cannot be displayed, try another browser.

References: