HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

AoS Lane Movement - AI improvement??

12-15-2008, 01:06 PM#1
Fulla
Basically I've been working on a sort of mini AI if you'd even call it that, which improves the creep waves lane movement slightly.
Its a two-part question:

Creep Movement

- Firstly I made waves move as groups (Easy as pie).
- Next I began storing them into groups as there are some corners & points on map, where I need to re-order them, but don't want them suddenly breaking up.

I'd now like to take it a little step further but I'm a bit stuck.
Basically I want it so Creep waves merge together when they come within close proximity. I.e. if say creep wave 2 reaches creep wave 1 and there still alive, they'll merge together becoming creep wave 2.

I'm not sure which is the best method in achieving this?
How would you do it, what do you think is the easiest way?

A method I was considering is:
  • Attaching a 'true' boolean to each creep wave as they are spawned (excluding the first ever wave).
  • When a group takes or deals damage from the opposing team (ignoring player controlled units), they will do a one off check for nearby creeps & set boolean to 'false'.
  • If there are any nearby groups, they'll destroy those groups and take those units to their own 'merging them into their own group'.
  • This should in theory only trigger when a wave catches up with a previous wave. If not it will cancel out.

Sounds good/bad?

Creep Harassing

In 6v6, another thing that really gets on my nerves is how the creeps chase you across the map. So basically you can lure or trick an entire lane away. I've been trying to think of a way to prevent this.

Similar to the above method, I was thinking simply:
  • Attach a Counter to each Group
  • The counter periodically counts up to X, in seconds (X could be roughly 8-10).
  • If a group hasn't taken or dealt damage within that time, the group gets 'Re-ordered/Resumed'.
  • When a unit does take or deal damage, their group counter is reset each time

Sounds good/bad?

===

thx for any input, suggestions or general advice
12-15-2008, 02:21 PM#2
HyperActive
And what (about creep harassing) if the hero that the creeps are after has just a little bit health left and moves slower than the creeps (has some buff for example). Then, suddenly the lucky shmuck gets away, because the creeps have been reordered.
This is just one thing that came to mind.

First idea (creep movement) is descent. It would suck if for some reason ranged units of the second wave would move in front of the first wave's melee units.
12-15-2008, 03:57 PM#3
chobibo
Creep Movement
Good.

Creep Harassing
Good.
I like the idea, it makes them look organized. They look stupid when they chase a unit until they die.
It also takes away the tactical advantage to the luring player.
12-15-2008, 03:59 PM#4
Fulla
Quote:
And what (about creep harassing) if the hero that the creeps are after has just a little bit health left and moves slower than the creeps (has some buff for example). Then, suddenly the lucky shmuck gets away, because the creeps have been reordered.
This is just one thing that came to mind.

Ah yea good point, but having a 8-10 second counter before they resume after NOT being in combat, should help prevent this.
Generally I'd prefer creeps to focus on their lanes & smashing down towers than chasing after Heroes anyways.

===

Oh btw I'm mainly enquiring about the method used, like trigger wise, efficiency etc. ?
Would you have a better method etc.
12-15-2008, 04:07 PM#5
chobibo
Quote:
Ah yea good point, but having a 8-10 second counter before they resume after NOT being in combat, should help prevent this.
Generally I'd prefer creeps to focus on their lanes & smashing down towers than chasing after Heroes anyways.
Just my opinion, in AoS type maps, the main objective of the creep waves is to destroy defensive positions, therefore why would you want them to chase Heroes? One disadvantage from having them prioritize Towers is that you can't redirect them (when defending your tower) but Fulla avoided this by adding a reaction timer for the creeps, so you can still redirect the creep's push. Therefore I agree with Fulla on this.
12-15-2008, 07:54 PM#6
emjlr3
id do a periodic check for all groups, if they are neat another one, just added them, no need to check on every attack/damage

the problem I forsee with your lane control is that when you re-order creeps to "attackmove" to the correct position, they will:
  • [*1]take the shortest possible route, which probably will not be along the intended path
    [*2]see there is still a hero nearby, and attack it, still

1 option I can see is to regionfy all creep lanes, and attempt to keep them in those regions - but then a hero could stand outside and pummle them w/o remorse - so that has issues too

also, your timer will have issues, because I bet if a hero really wants to lure a wave, he will stay in range of the creeps so as to allow them to continually hit him very so often to accomplish their goal, thus defeating your timer idea
12-15-2008, 08:17 PM#7
Zerzax
In concern to this new problem, you could probably use a pathing algorithm like PAS that lets you set up nodal areas and forces units to take a certain path. I'm no expert in the field, so it's just a suggestion.