eronoobos / BABAR-The-Shardifant

Balanced Annihilation & Balanced Annilhation Reloaded configuration for Shard
2 stars 1 forks source link

attacker movement improvement notes #75

Open eronoobos opened 8 years ago

eronoobos commented 8 years ago

i should probably have each attacker in a group check their distance from where they ought to be in relation to the group in a rotation of one every frame or every few frames, instead of all at once every five seconds. the group's midpoint could be calculated at the beginning of each rotation.

instead of ordering every member of the group move to where they ought to be, the ones ahead should be ordered to stop, and the ones behind should be left alone or ordered to move forward

to create less unncessary movement, positions along the attack line need to be based on who is closest to them, not an arbitrary order.

there should be a limit on the number of attackers in one group, so that lines of attackers don't become absurdly wide.

pandaro commented 8 years ago

i think this can help i will suggest: instead of move order, is possible to give to the unit an fight order, especially in attack phase(not in raid) this will prevent units to move forward if an enemy is founded. and for the excessive front line: manage little number of units can be nice, very nice: you can decide to attack different target with different units, create elusive and evasive maneuver, attack 1 target from different directions and sure, you can reduce the front line by put one group behind the other

eronoobos commented 7 years ago

you can decide to attack different target with different units, create elusive and evasive maneuver, attack 1 target from different directions

i'm thinking about implementing this with pathfinding, by splitting a squad into two and encouraging paths of the second squad to avoid the path of the first

Anyway, about attacker movement: right now it uses UnitIdle to determine if it's arrived at a waypoint, which slows down the group's movement (they have to stop and re-orient), and leaves them vulnerable between waypoints. Nice thing about using UnitIdle instead of distance calculations is that it's very light on computations.

I'm thinking about re-implementing a more cohesive movement by creating a generic Squad class and an associated SquadHandler module that could be used to manage groups of units for any purpose. This could be useful for: