Qbert

A clone project for the course Programming 4. We needed to make our own game engine almost from scratch. I learned a lot about game engine architecture and programming patterns. It was also my first time writing a multi threaded program.

All game objects are composed of components, because we prefer composition over inheritance. I also use the factory pattern for the easy creation of enemies. The level consists of game objects with tile components and uses a hexagonal coordinate system (in hindsight I shouldn't have used this because it is rather uninuitive). For the explanation of the controls and the switching of gamemodes I use the ImGui library. You can play with keyboard and controller for which I used the Xinput library. For the sound I use Simple SDL2 Audio which runs on a separate audio thread. And the input uses the command pattern.

Made in c++ and SDL2. We used the books "Game Programming Patterns" by Robert Nystrom and "C++ Coding Standards" by Herb Sutter and Andrei Alexandrescu.