Disclaimer: I do not own any of the art assets used in this project, it was a fan game made for educational purposes. All rights go to the original creator of Super Meat Boy.
Meat boy lite was a project made in 2018 during my second year of the game development at Algonquin College.
It is a C++ game made with a framework that was built over the course of year 2. I also integrated the Box2D library into the engine to allow for 2D physics.
All the textures and visuals are made using shaders written in OpenGL.
Since i was trying to replicate a Super Meat Boy experience, i had to tweak the physics so they felt good.
2D Character controller
I believe i was successful in creating an interesting character controller. This game was created during my second year of game development, and i was still learning to use C++ in a self made engine environment.
This code snippet is where the magic happens. I have collision implemented in the framework. Once the the player hits a wall, it sets a collision normal. For example, if meat boy his the left wall, it will store the normal and inverse it so that the next jump propels the player in the opposite direction.
I use various objects in the game like saw blades or blood gibs. All of which are stored in respective object pools that get initialized at start and reused during run time. The saw blades in the GIF above have functionality that when they collide with anything they send an event passing themselves in as an argument. The scene will then interpret the event and return the saw blade to its respective object pool.
Once the sawblade or blood gib needs to be returned to the pool, i clear the forces and return it.
I have a couple examples of shaders i wrote, some relate to lighting, one for texturing rendering, have a render texture, a sky box and even reflections.
In this scene i slapped in a sphere to show off reflections. It has no effect on the gameplay.
The skybox uses a custom 6 sided shader which includes the images for XYZ and -XYZ
The lighting in this particular scene has been set to an extreme. It only utilizes one point light which as been set to the color of pink.
What you see below is a GIF of two different scenes being rendered to a flat plane. Using an FBO and binding that to a texture i can show off two active scenes.
For this project I used SVN as the version control software.
Here is a github link to the full project: