Pong rebuild deck
EASY
Nothing is hard; the one way to get it wrong is negating horizontal velocity on a bat hit instead of mapping contact offset to an outgoing angle, and that is a single line.
You will get essentially the whole thing.
Everybody writes this in an afternoon and about half of them write it wrong, because negating the horizontal velocity is the obvious move and it produces a ball travelling on rails. Spend your review time on the serve angle instead: launch at a fixed angle every time and rally three becomes rally three hundred. Worth insisting on a fixed timestep even at this scale, since agents love frame deltas and love multiplying by them inconsistently.
- Difficulty
- EASY · 1 of 5
- First playable
- An evening
- The original
- 1 team-years
- Released
- 1972 · Arcade
- Genre
- Bat and Ball
Build a two-player bat-and-ball game in a single self-contained HTML file. Canvas 2D, Web Audio, no build step, no dependencies. Requirements: - 800x600 canvas, black field, white rectangles, dashed centre line, seven-segment score digits. - The load-bearing rule: on a bat hit, do NOT negate horizontal velocity. Take the normalised contact offset, (ballY - batCentreY) / (batHeight / 2) clamped to -1..1, map it to a bounce angle of up to 60 degrees off horizontal, then rebuild the velocity vector from that angle at the current speed. Negate instead and the ball settles onto rails. - Ball speed starts at 300 px/s, gains 4% per bat hit, caps at 900. Serve towards whoever conceded after a one second pause, at a random angle inside that same cone; a fixed serve angle turns rally three into rally three hundred. - Fixed 1/120 s timestep with an accumulator, so behaviour is refresh-rate independent. - Left bat on W/S, right bat on arrow keys. Optional CPU capped at 400 px/s with an 80 ms reaction delay, so it can be beaten. - Square blips: 240 Hz off a wall, 480 Hz off a bat, 130 Hz on a point, 60 ms each with a short ramp so they do not click. - Every tunable in one CONFIG object at the top. First to 11, win screen, key to restart. Definition of done: a hit on the top edge of my bat sends the ball away at a visibly steeper angle than a centre hit, and a long rally speeds up audibly.
- Nothing. The original was discrete logic on a board and your version is 200 lines
- The Atari trademark and the yellow cabinet art everyone actually pictures
- A coin door, and the Sunnyvale bar machine that jammed because the cash box had filled up
Contact point sets the bounce angle
Reflecting the velocity about the normal is correct physics and dead design — the ball settles onto rails and the player stops making decisions. Mapping contact position to outgoing angle turns a collision into an input, and it belongs in anything with a deflection: bats, shields, bumpers, ricochets.
ScopeAn evening— build just this, not the game
Build a deflection sandbox. Single self-contained HTML file, Canvas 2D, no build step, no dependencies. - A ball bouncing inside a box at constant speed, plus three deflectors: a flat bar you drag with the mouse, a fixed bar, and a shallow curved arc. - The mechanic: on contact, do NOT reflect the velocity about the surface normal. Take the contact point as a normalised offset along the surface, clamped to -1..1, map it through a response curve to an outgoing angle of up to 60 degrees off that normal, then rebuild the velocity vector at the current speed from that angle. Off-centre contact steers the ball; dead centre sends it straight back. - A toggle switches between this and plain reflection, and a side panel plots incoming angle against outgoing angle for whichever is active. - Draw the last 200 ball positions as a fading trail so the difference reads in one glance. - Sliders for maximum angle and response curve exponent. Definition of done: in reflection mode the trail collapses into a repeating loop within thirty bounces, and with the contact mapping on it never does.
Not a clone — Pong re-themed and cut down to something you can finish. The angle is the important reel: it is what turns a project into a weekend. 24,360 ways to land.
Fealty From Above
Pong, but a management sim of the same world, set in a medieval kingdom at war. Rendered in modern low-poly diorama.
Build a browser game called "Fealty From Above". The pitch in one line: a bat and ball in the spirit of Pong, but a management sim of the same world, set in a medieval kingdom at war. WHAT THIS IS Take the SHAPE of Pong — its core loop, and whatever makes that loop good — and rebuild it as your own game in a different world at a smaller scope. Use your own names, art and audio, which you want anyway: a reskin of somebody else's game is less interesting than a new one that works the same way. THE ANGLE — this is the important constraint, honour it above everything else A management sim of the same world. The player never controls a character — they set policy and watch agents with visible needs succeed or fail at it. This is what makes the project finishable. If a decision would push the scope back towards the original's, take the smaller option every time. THE THEME A medieval kingdom at war. Castles, levies and oaths. Siege logistics and feudal politics matter as much as the sword arm. The theme is not a coat of paint. Let it change what the mechanics mean — a reload, a health pack and a locked door should all be things that make sense in this world and nowhere else. LOOK Modern low-poly diorama. Facetted meshes, baked AO, miniature tilt-shift feel, and a colour script of 5–6 base hues max. REQUIREMENTS - Runs in a browser with no build step. Canvas 2D unless the angle genuinely requires 3D, in which case three.js. - Fixed-timestep update loop with interpolated rendering, so it behaves the same at 60Hz and 144Hz. - Every tuning constant in one CONFIG object at the top, exposed as live sliders in a debug panel. You will find the feel by dragging those, not by prompting. - All content — levels, entities, balance numbers — in JSON or plain data files, never inline in the logic. - Audio generated with the Web Audio API rather than asset files. - Respect prefers-reduced-motion: keep the fades, drop the shake and the parallax. BUILD ORDER 1. The core loop with placeholder rectangles, at the reduced scope the angle demands. No theme, no art, no audio. Make it fun as rectangles first. 2. The angle's consequences. Cutting to bots, or to turn-based, or to one level changes the design rather than just shrinking it — find out how and rewrite step 1. 3. The theme, as content and data. 4. The look, applied last as a rendering layer over a game that already works. Start by writing a one-page plan: the core loop, what the angle removes and what that frees you to do properly, and what you are deliberately leaving out. Wait for me to approve it before writing code.
- leereilly/games — archived, still the largest index of open source game source
- MDN game development docs
Half the time one of these already does what you wanted, and the other half it saves you a week of solving a problem someone documented in 1997.
One count per game. No account — it is tied to a salted hash of your IP, which is not stored in a form anyone can reverse. Every build adds 1 team-years to the counter on the homepage.
Then try these
Questions
How hard is Pong to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Pong is EASY (1 of 5). You will get essentially the whole thing. Nothing is hard; the one way to get it wrong is negating horizontal velocity on a bat hit instead of mapping contact offset to an outgoing angle, and that is a single line. Reckon on an evening to something you can actually play — not to something that matches the 1 team-years Atari spent.
What makes Pong hard to rebuild?
Nothing is hard; the one way to get it wrong is negating horizontal velocity on a bat hit instead of mapping contact offset to an outgoing angle, and that is a single line. That is why it sits at EASY rather than a tier either side of it. If you want the idea without the project, the transferable part is contact point sets the bounce angle — an evening of work.
How long does it take to build a Pong clone?
Wrong question, and it is worth saying why. Nobody rebuilds Pong — the original took Atari on the order of 1 team-years, released in 1972 on Arcade. What you can do is reach something playable and genuinely yours in about an evening, and then keep going for as long as it stays interesting. Any figure that claims otherwise is measuring a prototype and calling it a game.
What do I lose by building my own Pong?
Nothing. The original was discrete logic on a board and your version is 200 lines. The Atari trademark and the yellow cabinet art everyone actually pictures. A coin door, and the Sunnyvale bar machine that jammed because the cash box had filled up. Those are the parts a prompt will not hand you.
Which AI coding agent should I use to build it?
Any of Claude Code, Codex or Cursor will handle this prompt. Paste it as your first message, let the agent scaffold the project, then iterate on feel — the second, third and tenth prompts are where a game actually gets good. Work in an empty folder or a fresh git branch so you can throw it away cheaply.
One email when new games go on the list. No other reason to email you, ever.