Super Hamster Havoc

A Multiplayer Twin-Stick Shooter

About Super Hamster Havoc:

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.

 

My work on Super Hamster Havoc:

Contributions to the project

  • Programmed the gameplay, systems, tools, and networking for the project
  • Ported the game from Gamemaker Studio 2 to Unreal
  • Integrated third party APIs (Steam, Discord, Epic Online Services)
  • Porting the game to the Xbox One

Player Character

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.

 

HUD Widget

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

Game modes

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:

  • Registering the game session with Epic Online Services
  • Registering/De-registering players with the session
  • Handling basic settings that are passed from the lobby via option string
  • Assigning the player to teams (if a team-based game mode)
  • Handling player deaths, suicides, and killstreak tracking
  • Dispatching killstreaks and all other game play notifications
  • Triggering the match end screen on all players screens when the match ends
  • Updating all client HUDs with the game-mode name and rules
  • Updating all client scoreboards
  • Updating player stats with Epic Online Services
  • Text Chat
  • Spawning bots
  • Respawning players
  • Managing the re-spawning of items in the level
  • Utility functions for parsing data from the lobby option string

All the game modes that derive from it have functionality exposed for overriding, and creating various playable game modes

 

Custom Assets

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.

Project Role:

Programmer, Designer, Lead

Engine/Tools

Unreal Engine (C++), Formerly in Gamemaker Studio 2

Timeframe:

2018 – Current