Uploaded April 2018 | Updated September 2026, 33 minutes ago
I've updated my Breakout game (using the awesome Chili Framework - see his YouTube channel at youtube.com/channel/UCsyHonfwHi4fLb2lkq0DEAA) with the following new features:
- Different types of rocks: indestructible rocks, and rocks that take 2 hits to break.
- Added "spin" on to the ball if the player is moving when hitting the ball: makes the game slightly more interesting!
- Multiplayer! This was actually pretty simple to implement as I had created everything using an OOP approach - meaning that all I needed to do was create a second object of the "Board", "Rocks", "Balls", and the "PlayerPanel" classes and add those into the game loop.
As this was my first project from scratch in C++, I'm pretty happy on the results. One aspect that I got stuck on was trying to figure out how classes interacted with each other. The classes can't "include" each other, which turned out to be an issue when trying to implement "Powerups".
I'll need to get used to that way of thinking to make my games more complicated.
Hope you enjoy!
I've updated my Breakout game (using the awesome Chili Framework - see his YouTube channel at youtube.com/channel/UCsyHonfwHi4fLb2lkq0DEAA) with the following new features:
- Different types of rocks: indestructible rocks, and rocks that take 2 hits to break.
- Added "spin" on to the ball if the player is moving when hitting the ball: makes the game slightly more interesting!
- Multiplayer! This was actually pretty simple to implement as I had created everything using an OOP approach - meaning that all I needed to do was create a second object of the "Board", "Rocks", "Balls", and the "PlayerPanel" classes and add those into the game loop.
As this was my first project from scratch in C++, I'm pretty happy on the results. One aspect that I got stuck on was trying to figure out how classes interacted with each other. The classes can't "include" each other, which turned out to be an issue when trying to implement "Powerups".
I'll need to get used to that way of thinking to make my games more complicated.
Hope you enjoy!


![2D Game Engine in C++: [1] Adding Sprites
This is the first video documenting the making of a 2D Game Engine for use in my next series of games. These games will likely be a relatively wide array of 2D game types, so the engine needs to have a bunch of features to handle different situations without too much in the way of modification.
This first video shows the first step: drawing a single sprite to the screen, allowing for rotation and scaling of a single object around the centre of the screen.
This is actually my second try at a 2D game engine. The first game engine was great - but only as a first attempt. I learned a lot from the approach that I used, including making a game called AstroVoids -
but the key lesson was that of how not to do things, as the performance was very poor. This is because I was effectively using a per-pixel raycasting type approach on all screen pixels. I believe that the approach that Im using here is far less CPU intensive. Only time will tell!
I will release all code on GitHub once Ive finalised the engine - and have nice looking code to boot!
Using the Chili Framework: http://wiki.planetchili.net/index.php... - thanks Chili! 2D Game Engine in C++: [1] Adding Sprites](https://i.ytimg.com/vi/d3LCJHOqBZg/mqdefault.jpg)







