Before you start
A coding agent, LÖVE and Lua installed using their official instructions, and a practice folder.
Why this lesson exists
This lab adapts the “Build a Polished Pong Game With LÖVE and Lua” project write-up into a practice build. The time is an estimated first session, not a promise to finish a production system. Use the public repository as a reference when available; the exercise can be built with original sample content.
Do the exercise
Define the practice version
Start with paddles, a ball, movement, collision, scoring and a serve state. Leave power-ups and particles until a match works.
Build step 1
Draw two paddles and a ball.
Build step 2
Update positions using delta time.
Build step 3
Handle wall and paddle collisions.
Build step 4
Add scoring and a serve state.
Build step 5
Add one predictable AI opponent.
Build step 6
Add menus and sound only after a full match works.
Build step 7
Add power-ups one at a time with expiration rules.
Run the experiment
Test a wall bounce, paddle bounce, missed ball, score increase and reset. Try a slow frame rate to look for tunneling and speed changes.
A prompt to adapt
Replace the bracketed parts with your own practice details.
Work in a disposable practice project. Explain any setup requirements before changing files. Build one small step at a time and show how I can check it. Teach me to build Pong in LÖVE and Lua without giving me the whole solution at once. Divide the work into seven checkpoints. At each checkpoint explain the math, give a small code target, and provide a manual test before continuing. Review this Pong collision logic for tunneling, repeated collisions, frame-rate dependence, incorrect bounce angles, and runaway ball speed. Recommend deterministic tests. My first-version boundary: Start with paddles, a ball, movement, collision, scoring and a serve state. Leave power-ups and particles until a match works.
Run this experiment
Test a wall bounce, paddle bounce, missed ball, score increase and reset. Try a slow frame rate to look for tunneling and speed changes.
Check your result
Use evidence from your output. A confident explanation from the AI is not enough.
- Each point increments exactly once.
- Restart resets score and ball state.
- Movement uses elapsed time rather than assuming a fixed frame rate.
If it isn’t working
If the ball passes through a paddle, inspect collision timing and step size. More visual effects will not repair the physics.
Optional. Progress stays in this browser.
Where this came from
Public project repository ↗. The practice lesson is an adaptation, not a verbatim transcript. About the sources.
Prepared September 2026. Tools and interfaces change; use current official setup instructions. Session lengths are estimates.