I wrote Breakout Pong back in 2006, a couple years after I first started more seriously teaching myself computer programming (I had waded through some HTML a couple years earlier during middle school, but nothing major). I remember having a lot of fun learning about new concepts like collision detection and vector math and double buffering. Good times.
Breakout Pong was based off an earlier game I made (a Pong clone – I mean, who hasn’t written a Pong clone? It’s like Hello World for game development) that incorporated another game (Breakout) which I played growing up.
You play against two AI-controlled paddles which are, to be honest, not the brightest AI-controlled paddles you’ll ever encounter. Each player must break their like-colored bricks, but a brick can only be broken when a ball of that same color touches it (e.g. Red brick, Red ball). Balls change color and are given to the opponent when the opponent scores. A score is only counted for balls of the opposite color (e.g. Red can only score on Blue with a Red colored ball). Balls change color and direction when hit by the opposite players paddle, and only change direction (not color) when it hits your own paddle (e.g. Red ball changes to Blue when Blue hits it back, but if Red hits a Blue brick, the ball will bounce back, but it will not change color when Red hits it). When you break a brick (whether it is your color or not) you score a point, and when you score on an opponent, you steal 5 points from the opponent. Once all bricks are broken, the speed of the game increases 10x for a challenging Pong finish. First to 100 wins! Phew!
Here’s a screenshot of the gameplay:
Admittedly, not the loveliest of graphics. It was created entirely with WinForms, using pictureboxes for the bricks, paddle, and balls. The bricks are added programmatically at run-time, which was new territory for me at the time. Unfortunately, the source code has been lost about 4 laptops ago (before the days of USB drives and Cloud backups…), but I do have an executable which will run on Windows 7 at least!