C++
Sprites
Sound effects and music
Keyboard and mouse controls
Particle effects
Screen-shake effects
Scoring system
The difficulty increases each wave: the ball speeds up and the bricks get more durability
The ball gets sent at a differing angle depending on where it impacts the paddle
Lives system: when you miss the ball, it respawns with a random downwards velocity and you lose a life (starting with 3 total)