Hive Defenders

Bee Tower Defence Game

  • Team Size: 15+
  • Role(s): Lead Programmer
  • Duration: 6 Weeks
  • Engine: Unreal Engine
  • Languages: Blueprint
  • Hive Defenders is a bee tower defence game in which the player controls a bee to create towers and gather resources in order to protect the queen bee.
    In this project, I was in charge of source control via GitHub. This involved managing branch structures, resolving conflicts, and ensuring daily builds for management were created for review. Additionally, I developed core mechanics for the game as well as assisting in general issues surrounding the entire project.

    1 / 3
    Gameplay
    2 / 3
    Characters
    3 / 3
    Fighting

    Buff System

    In Hive Defenders, I assigned myself the challenge of creating a buff system that could be used for any class
    This system is scalable and usable with any actor so long as they have the correct interface functions implemented.
    Some of the potential use cases for a buff system:

  • Speed Modifiers
  • Damage Over Time
  • Damage Type Resistance Modifiers
  • The 'BuffBase' class
    This class would handle the removal of the affected value behaviour and create/trigger any acompanying VFX.
    This is a poolable UObject that is self managed and stores a reference to the interfaced actor.

    The Buffable Interface
    This interface is the key to having any actor respond to a buff. The idea behind this interface is that any buffs the actor should respond to, will have a function override that returns the appropriate value. If the value returns a 0 value it will not activate/create the buff.


    AI Pathfinding

    For Hive Defenders, our bees were on a set path towards the hive which called for minimal pathfinding but it had to be adaptable becuase there was plans for different routes to be created at runtime given the possibility of an infinite mode.

    In my decision for the pathfinding, I went for a basic distance cost system which would find the quickest route combined with a heuristic addition factor for the tile type. This allows for AI to path through different types of tiles based on a weighting factor set in the enemy data assets.
    For example, a walking enemy would like to often avoid walking through an area which has spikes on the floor or turrets that are melee combat.

    To get the AI to move along the points, I didnt want to use the default Unreal AI movement tools such as NavMesh pathfinding or AI Controller inputs as these would be inneficient using both tick and the physics system to check for collisions. My solution to this was to use splines that are generated on path calculation and then lerp the spline based on the distance. This allowed for nice smooth rotations and movement whilst saving the need for physics exclusively to be used by other trace checks.