About this project

Breakout is a lightweight, architecture-first implementation of the classic arcade game built in Lua with LÖVE 2D. It emphasizes clean object-oriented design: six classes (Ball, Paddle, Brick, Level, Game, UI), each in its own file with single responsibility. The game uses a finite state machine for title, play, pause, and game over states, with explicit event-driven transitions. A delta-time driven game loop ensures frame-rate independence. The project includes setup scripts for Linux, macOS, and Windows, along with build helpers to generate portable .love files and OS-specific bundles. Documentation covers architecture, state machine, game loop, Lua fundamentals, OOP patterns, and design rationale. Gameplay follows classic rules: clear bricks to advance, earn points, manage lives, and control paddle with arrow keys. Built for extensibility and readability, it’s suitable for learning or extending as a base project.