Welcome to our second Grand Gate Dev Blog!
I’m Bruno (AKA Pexe), co-founder of Golden Glove and lead programmer. In this Dev Blog we’ll explore the behaviors of our towers and enemies. To understand what is a behavior we’ll go through a summary about the mechanics and design about the roles of our actors in Grand Gate. As this is a programming Dev Blog, we’ll go a bit deeper in the technical solutions chosen to deliver a fun and challenging game.
What are roles and how are they applied in Grand Gate?
In Grand Gate roles are divided by primary and secondary. Primary roles are Melee and Ranged, in the case of towers these roles designate where they may be placed while summoning. Secondary roles are: DPS, Tank, Support and Specialist, these basically tell what is the actor’s main function. Will it do a lot of damage? Will it Block a lot of enemies? Is the enemy a damage sponge? Is it very fast? Does it heal or buff allies? Does it do something unusual? - Probably a specialist at work -.
But yeah, we spoke about which roles are available and how they are assigned to the actors, but what is their relation to the behaviors and what is a behavior? First, the way the player interacts with the roles starts at tower selection, where you’ll want to build up your squadron in a way that enables you to win, then during a quest you’ll summon and position towers according according to enemy pathing, while keeping in mind what types of enemies might show up.
A Behavior then on more technical terms is how an actor will take action and what action will that be. Will it move? Will it attack? Will it be blocked? Does it have a cooldown? Is it a ranged attack?
If we compare Grand Gate to an usual Tower Defense where you’ll normally position your towers around a defined path and the only interaction you’ll have with them is by doing damage, you’ll notice our game is vastly different and more complex starting from blocking, all melee towers have a block stat which represents how many enemies they’re able to block and many other crazy things that’ll happen through skills and environmental effects… We’ll leave that for another day :)
Back to behaviors, there are many differences between towers and enemies, they’re implemented in Unreal Engine through the Behavior Tree structure, in simpler terms this defines the AI of our actors.
Behavior Trees are structures that allow definition of a set of actions, forming behaviors that are executed based on the comprehension of what is going on with the actor. An example would be of enemies in a MMORPG, after a player gets to one of them it’ll change from its Idle state to an Aggro state where it starts chasing after the player, after chasing it might change into its’ Attack state or run back to its original position in case the player has ran away.
So, melee and ranged enemies. They both contain the same set of behaviors which is to attack and move to the objective. The attack behavior is executed when the enemy range hitbox collides with a tower hitbox.
A melee enemy will only ever attack towers on the ground level (meaning it cannot attack ranged towers) and will only stop attacking after its target is dead, the attack behavior is only activated if there is tower blocking the path with a block budget available, meaning melee enemies will only ever attack if they’re taunted.
Ranged towers have no restrictions on which towers they can fire at, however they have a firing cooldown which makes them shoot and move for a few seconds, which guarantees they’ll always reach a melee tower after some time. This behavior prevents ranged enemies from suffering no retaliation while attacking.
Lastly we have elite enemies, which also possess a burst skill just like the towers, but their behavior is to always cast this ability once their energy bar is full. You can expect some wild and unique things happening from these… :)
Legends & Pawns
Towers have only a basic behavior, which is to attack and wait. Attacking works just like the enemy version, however Melee towers get a bit more interesting with the Block stat.
This stat is a number which limits the amount of enemies a melee tower can stop on its track by taunting, so if a tower has a block stat of 4 it will block up to 4 enemies and those 4 will attack the tower. If a fifth enemy reaches the blocking tower it’ll go through with no collision in the direction of the objective. Ranged enemies are also blocked, but they attack with no restrictions.
Ranged towers also have a firing priority, they’ll first start attacking whichever enemy has first entered its firing range, however once a ranged enemy starts shooting at the tower, it’ll change its target to retaliate as soon as possible. Tower behaviors are simpler due to the existence of link and burst skills, which are both activated on demand, with an energy cost, by the player.
So, we have reached the end of our second Dev Blog, where we discussed roles and behaviors and how they’ll influence your gameplay experience of Grand Gate.
Stay tuned for more news in the future! Thank you and see you soon.