Project Status: Complete
Project Duration: 9 months
Software Used: UE5.1
Language Used: C++ blueprints
Primary Role(s): Solo Programmer, Team management
Animal Retribution is a couch co-op, wave based third-person shooter centered around a group of animals during a bloody uprising against their tyrannical farmer overlords. Play as a number of different animals, utilizing their weapons and abilities to defend your barn from the enemies attacks. Animal Retribution can be played by up to 4 players in local co-op, rewarding the use of teamwork to help the animals achieve their goal of a free world.Â
My Contributions
My team management contributions included organising sprint meetings, ensuring everybody had a job to do and were giving/receiving feedback on a frequent basis.
Being the solo programmer for the team meant that I had a hand in every aspect of the game, a breakdown of my work would be:
Creating a player controller that worked in single player as well as up to 4-player split-screen
6 different playable classes, all with unique abilities and combat capabilities
A wave spawning system, with a focus on making it designer friendly
3 different types of enemy AI utilizing behaviour trees, including pathing, their attacks and behaviours
Creating a boss enemy with it's own unique abilities, attacks and pathing
UI Implementation and functionality
Optimizing my own work, along with utilizing Unreal Engine 5's nanite system to optimize 3D assets
Snippet of Sir Loin's (boss) code
Including:
Player haptic feedback (screen & controller shake)
Boss jump ability
Snippet of character selection code
Including:
Player ready states
Player class seleciton
Player spawning system
Ready countdown
Snippet of a player class (Cow)
Including:
Attacking
Healing ability
Weapon swap ability
Cooldowns
Snippet of enemy spawning code
Including:
Reading data table for information
Spawning enemies based on the wave
Snippet of enemy behaviour tree
This is split into several different paths depending on the enemy class and if they are taunted or not
This dictates how the enemies attack and what abilities they use