A custom 2D engine written in C++ with a euphemism as its name (for the record, this doesn’t imply anything on behalf of the quality of the engine though). This project was a final assignment for the “Programming 4” course, with the goal of finishing the start of a given base engine (former “Minigin”) and re-creating the famous QBert game using your own engine version.
The engine supports a few neat features which makes for the success of a fun and nostalgic QBert, and has been revisited a few times for refactoring/cleaning of the code.
- 3 Playable Levels
- Score and Health System
- Menu's and UI
- Keyboard + Controller Support
- 2D Collision System
- 2D Spritesheet Animations
- Hexagonal Grid-System
- Enemy Game AI for Hexagonal Grid
- Multithreading
- SDL Audio
- .JSON Game Info Parsing
“Patterns?”, you might ask yourself. Yes, I’m referring to Game Programming Patterns, a highly recommended book I used as a help/reference for any situations that fitted my needs.
- Commands
- Observers
- Singleton
- Game Loop
- Update Method
- Components
- Event Queue's
- Service Locators
- Dirty Flags
As QBert, your goal is to make sure all the cubes on the map are lit up to advance further. While doing so, you'll be challenged by a few enemies like Ugg and Wrongway (purple enemies) who can kill you on impact. Sam and Slick (green enemies) act like QBert and toggle cubes they land on. On the side of the map you'll find spinning disk that can save you from a risky situation and transport you back to the top.
Requires 1 jump on each cube to light up. Once all cubes are lit up the level is finished.
Requires 2 jumps on each cube to light up. Once all cubes are lit up the level is finished.
Each jump toggles the cube on/off. Once all cubes are lit up the level is finished.
Credits to the two lectures Alex Vanden Abeele and Tom Tesch for the base engine implementation.