Tantrumn is a racing game (on foot, not car) developed as a solo school project which is part of the CGSpectrum Game Programming Curriculum. The game was designed to accommodate single player, multi-player split view, and networked multi-player modes. The player(s) can compete against each other or AI bots.
The design and guidance was provided by the CGSpectrum curriculum along with code examples. My role was to implement the game with scope to make any changes I deemed fit. Changes I introduced spanned the gamut of Unreal Engine capabilities such as a custom Character Movement Component (detailed below), level layouts, Mesh / Audio / Material assets, AI behaviour, and UI elements. The implementation was done primarily in C++ with Blueprints used for prototyping functionality, scripting some aspects of Widgets used as part of the UI, and level specific gameplay elements.
The game includes player levels, Kinematics test levels, custom Game Modes which can match gameplay to the corresponding levels. All gameplay supports network play whether via dedicated server and clients, or local LAN play. Detail on additional implementations included in the game as follows:
- The custom Character Movement Component extends Epic’s implementation to include additional modes of travel. These modes are efficiently replicated via Bit Flags by extending the Network Prediction system used for lag compensation (reducing the rubberbanding effect prevalent in many older online games), specifically FSavedMove. The end result being minimal Server Corrections for client side movement predictions.
- Impacts have the ability to stun characters (players and AI). The magnitude of impact determines the duration of stun and strength of controller vibration. Additionally, the stun state controls animation behaviour by triggering corresponding Animation Montages.
- A Custom Interp to Movement component which supports smooth network play even in high latency enviroments. A major improvement on Unreal's replicated movement feature, especially for moving platforms which players may stand on
- Currently built and test on Unreal Engine 5.2
- Currently only the race mode is built out and supports single player and multi player with AI on the Vertical Race Map
- Each Map's blueprint selects a corresponding Game Mode
- Game Mode's determine the UI to represent to the player, the layouts are defined as Data Assets
- Character Model and majority of character animations come from the Unreal Engine Hour of Code pack
- Some snippets of code from CGSpectrum’s example content has been re-utilised in this implementation
- The Vertical Race map uses visual assets from the PolyArt3D Content Pack PLATFORMER - Stylized Cube World Vol.1
- Some Meshes and Materials from Unreal’s Starter Content Pack have been utilised.