Super Hamster Havoc is an isometric twin stick arena shooter that takes places in a post-apocalyptical world where rodents rule. You can play online or locally in a suite of fun competitive game modes.
I developed the character with most of the functionality implemented in C++ with functionality exposed to blueprints. The functionality handled in C++ includes input binding, gunplay (including an aim assist), handling damage, applying skins, handling damage, replication, and a series of getters/setters setup for when variables are changed in blueprints to fire different events, functions or update the HUD. There is one single character blueprint, and various character and weapon data is applied to the character blueprint from their respective data tables.
The HUD Widget in Super Hamster Havoc extends from a C++ base class that is updated whenever the values it visually represents are changed. This is ensured by implementing blueprints setters for all relevant members, using said setters in C++ when changing values, and evoking blueprint events that UI developers can use for their work.
HUD C++ Base Class
Derived HUD Blueprint Class
I implemented all the game modes in Super Hamster Havoc. All the game modes start with a base class in C++ that handles the following:
All the game modes that derive from it have functionality exposed for overriding, and creating various playable game modes
In Super Hamster Havoc most types of data in the game exist as UObjects in C++ such as the characters, guns, and equipment in the default game module with factories and asset actions implemented in the editor module for the purpose of creating context menus for asset creation and allowing individual entries to be modified while still referenced centrally in data tables.