Terasology / GooeyDefence

A Tower Defence gameplay module for Terasology
https://terasology.github.io/GooeyDefence/
1 stars 8 forks source link

Leverage Behaviors for Enemies in GooeyDefence #73

Open jdrueckert opened 2 years ago

jdrueckert commented 2 years ago

Motivation

Tower defense gameplays live off varying characteristics of the incoming waves, including their speed and resistance, but also their behavior and movement. Some enemies can fly in a direct line towards the goal, while others need to find their way through a potential maze on the ground. Some enemies might strive directly towards the center, others might attack the player's towers where possible.

GooeyDefence already implements different types of enemies with regards to speed and resistance, but not yet to behavior and movement. I believe that Behaviors can provide the means to diversify incoming waves making the gameplay more interesting while at the same time leveraging an existing framework instead of implementing custom logic.

Current State

GooeyDefence already extends FlexiblePathfinding for allowing the enemy waves to find a path through the maze (see EnemyWalkingPlugin. However, for movement it still relies on a custom implementation.

Behaviors includes movement related basic actions that make use of movement plugins that work well in combination with the pathfinding plugins already used/extended in GooeyDefence.

Tasks

Jacob-Rueckert commented 2 years ago

Sooo since i play a lot of Tower Defense Games in my free Time there are certain directions AI / Diversion of Enemys in TDs works.

As you Said there are 3 Different Kind of Enemys: Normals, Flyers, and Invisibles(Diggers)

Usually there are 3 Kind of Different Perkz getting adjusted: Speed , Health, (And Sometimes The Thrid is Either DMG or Shield or Invulerability to specific kinds of Towers)

So we could implement different Kind of Enemys based on these alone. Further Mechanics are mostly developed through specific Towers.

In Tower Tactics Liberation Invisible Enemys get handled by either AOE and therefore losing their invisiblity or specific Towers beeing able to hit them.

Therefore i dont think just writing behaviours for the Enemys would be enough. Its probably a mixture of writing Tower Behaviours aswell.

I could look into Gooey Defence