Course: CS50's Introduction to Game Development
Assignment: Breakout
Engine / Language: LÖVE2D (Lua)
This repository contains my implementation of the Breakout assignment from CS50's Introduction to Game Development.
📺 You can also watch my gameplay demo on YouTube.
- ✔️ Added a Powerup that spawns two extra Balls.
- ✔️ Implemented Paddle growth/shrink mechanics:
- Paddle shrinks when losing a life.
- Paddle grows when reaching certain score thresholds.
- ✔️ Introduced a Locked Brick:
- Can only be broken by collecting the Key Powerup.
- Key spawns randomly when locked bricks exist, similar to Ball Powerup.
- ✔️ Balanced gameplay by resetting balls upon entering the Victory State.
-
Install LÖVE2D.
-
Clone this repository:
git clone https://github.com/huzaifa-gamedev/cs50-breakout.git cd cs50-breakout
-
Run the game:
love .
- Enter — Start the game / Serve the ball
- ← / → (Arrow Keys) — Move Paddle
- Escape — Quit game
- Original skeleton code & assets: CS50's Introduction to Game Development (Harvard). Licensed under CC BY-NC-SA 4.0.
- This implementation: © 2025 Muhammad Huzaifa Karim. Licensed under the MIT License.
For more details, see ATTRIBUTION.md.
Muhammad Huzaifa Karim
GitHub Profile
For ideas, feedback, or collaboration, feel free to reach out via GitHub.
© 2025 Muhammad Huzaifa Karim. All rights reserved.