top of page
Search

Confronting Foes: Enemy Variation and Systems

  • Writer: Nathan CG
    Nathan CG
  • Apr 26, 2019
  • 5 min read


When dealing with confronting multiple enemies, the Player needs to know how severe a threat may be and some support on how to handle the situation with their moveset.


Previously, enemies preparing to attack would trigger an action chain, slowing them down with a red glow to offer the Player a chance to react. Mix that up with a Area-of-Effect (AOE) charge signal and it tells the Players if the attack is of a large scale.


To prepare for future updates to the dungeon, here's some pretty fun alterations to making enemies stand out more, feel more challenging to fight, and become rewarding to beat.


Enemy Functionality


To add variety to the dungeon system, the Map system spawns dungeon layouts and content from a mixture of options including enemy types to vary difficulty throughout the session.

For this to work, 3 types of example enemies were made to compliment or counter certain player actions.





Standard Chasers

Moves in a straight path to the Player as an easy target.

Lightly charged attacks don't pose much threat solo, but they move slightly faster than the Player to overwhelm them if defeated in more difficult combinations.


Long Rangers

Doesn't move, but can keep an eye on the watch the Player from a large distance.

Don't attack frequently but have slow projectiles, to avoid players from camping in a set position.


Large Heavies

Move very slowly and don't stagger on hits to forcefully close the distance.

Due to being unable to flinch, their attacks are more punishing over a larger area displayed via a slow casting AOE.


They take pretty common roles in action titles with cannon fodder, Grunts, Snipers, Tanks, meaning the Player already has prior knowledge on how to confront them and learn from these 3 clear role types should variants appear later in the dungeon. They all use an Enemy Parent actor for ease of use, but vary on how they react to events being called (e.g. to chase or not).


That said, just because they have those functions and tags, it doesn't mean the Player immediately would read them as those roles due to the similar silhouettes.

I'm limited in animation assets and character models, so it was a small challenge I had to figure out how to bypass.


Enemy Clarity: Asset Blending and Re-purposing


The gameplay actions were set but I still needed to add some readability in a few areas:

  1. Shape Language and Colour Palette

  2. Unique feedback

Shape Language had some quick adjustments by swapping out purchased meshes for each role, but due to the low-poly style it all still resulted in the same primary shape.

To tackle this, I decided to adjust the scale and location of bones and save it as a foundation animation to use for an animation blend.



Ah, they're hideous. Great!
Ah, they're hideous. Great!

The animation blueprint hierarchy takes current animations such as movement and attacking and swaps out the new shape/size with the underlaying animation created.



Mix up Bones where needed based on Body Types!
Mix up Bones where needed based on Body Types!

With this, I created a few types to test it:

  • Normal (Original)

  • Large

  • Slender

  • Golem



The shape language from Large promoted the slow but sturdy tank-like foe with a wider overall upper torso. Don't mess with this guy.

Slender displayed a slightly elongated spine-set and smaller head to call attention to the held ranged weapon more.

Finally, the Golem would be a draft for a future enemy test where the enemy would take more of an off-stage environment boss as seen in games such as Super Meat Boy (Team Meat, 2010), but that would be a test for another day.


Little Horn Boss - Super Meat Boy (Team Meat, 2010)
Little Horn Boss - Super Meat Boy (Team Meat, 2010)

These new shapes mixed with the subtleties from the clothing from the skeletal mesh vastly improved character diversity without any need for additional purchased or manual mesh creation.


By then adjusting the palette using the alternative colours offered (more diluted colours to avoid the saturated Player), each enemy type would then have a subtle difference in colour too.


From here, unique feedback to make them not feel too much like carbon-copies of one another was needed. This would mean selecting different walk animations based on the weapons they held, distinctive visual tells when charging attacks, and audio when spawned.


The most interesting one here would be making the Large heavy base feel...well...heavy.


Distinct Animation: Heavy Enemy Example


For the Heavy enemy type, a custom walk animation was adjusted from the Zombie Walk (Mixamo) animation to get some foot stomps, added with some VFX plumes of smoke on each stomp via an Animation Notify trigger (animation timeline event).


To get the movement to match the animation and not just slide to the Player due to UE4's move to Actor functions, acceleration and movement speeds were adjusted instead based on if another set of Animation Notifies were triggered for Foot Raised and Foot Lowered respectively, and staggering were disabled for this enemy type.

Take a step when raising the leg, stop when placed. No interruptions from this behemoth.


Finally, to display the weight in their attack, a Two-Hand Sword Leap Attack (Mixamo) was adjusted to match a custom weapon for a floor slam after the attack charge AOE is displayed, and the hit results in a subtle screen shake to complete the effect.





The result is a heavy moving foe with a slow but powerful ground attack that warns the player that this is something serious. It's not perfect, but was a swift adjustment to get this effect, further polish would be sounds on foot stomps and haptic to support it based on distance.

The feel of importance from this enemy also lead to an upgrade to the enemy states system.


Where red previously mentioned danger incoming, yellow was added to denote an enemy was vulnerable. This was an added function to reward the Player for their Player Strength (knowledge rather than raw Avatar stats) for reading enemy attacks correctly, attacks during this window would have full or even additional effects where Stagger may have previously locked it.


This update also added additional cartoon icons to aid reading these visual states.




The basis of this system, like each enemies reaction states, are independent to the enemy type via an Event Dispatcher (call and response event between actors), meaning it can vary where needed, from enemies being able to be staggered to Bosses triggering their weak spot into a second phase!


So if you see a yellow foe, go for the blow!


Spawning mid-game


With all these enemy types now able to appear in the dungeon, an update to ensure the pacing of combat could be maintained in areas that required more enemies to appear on a single map without overwhelming the Player upon entering.


Simple enemy spawn rings were made to add Foes to the game if certain hidden trigger conditions are met such as all enemies are defeated or a "Boss" Tagged enemy is low on health.


Alone it doesn't do too much, but during a Boss encounter and the lesser foes are defeated, it adds a real sense of danger when newer targets appear to change the arena dynamic and force the Player to overcome the new challenge.



By having enemies appear as a battle goes on, it also gives more dynamic value to a single dungeon room without the need for thousands of new layouts to be loaded, avoiding any loss in session pacing.


Future Adjustments


Well, that's all for the enemy update!

The systems added means combat is more flexible for enemy types and should stand out more in the environment for future dungeon designs without too much need for meshes until it's really needed.

I hope to update it further in the future to get combat running evening smoother, but that's for another time! Let's continue to do our best!


 
 
 

Comments


bottom of page