Page 1 of 1

Can packs not get in each others' way?

PostPosted: Sunday, 5th August 2018, 17:42
by njvack
The thread on 2H ogres and deep troll packs (and other packs) got me thinking: Right now, packs full of speed 10 monsters wind up being slow because the monsters effectively get in each others' way, if I'm putting that right. So! Is there a way pack monsters could cheat movement rules to maintain their speed? I'm thinking something like:

* Monsters move towards the player, preferring first to minimize chebychev distance and second to move to an open spot
* If the shortest path towards the player is blocked by another monster in the pack, that monster gets a free move action. This is recursive — the next monster's move can bump another pack monster info moving.
* Stop if either no monster moves (monsters are blocked by a something other than a monster in the pack) or the current monster moves successfully.
* Then other monsters take their actions as per normal rules.

This would mean:
* Pack monsters will still "spread out"
* When packs enter hallways, they'll briefly move very fast

For example:
  Code:
.OOO.    Turn 1: All the ogres are waiting to get into the hall.
##.##
##.##
##@##


.O.O.    Turn 2, ogre 1: Ogre 1 moves. Shortest distance is open, ogre moves into the hall.
##O##
##.##
##@##

.O.O.    Turn 2, ogre 2: Ogre 2 moves. Shortest distance move is blocked for ogre 2, ogre 1 has an open spot and moves towards the player
##.##
##O##
##@##

...O.    Turn 2, ogre 2: Shortest distance move towards the player is open, ogre 2 moves towards the player
##O##
##O##
##@##


...O.    Turn 2, ogre 3: Ogre 3 moves. Shortest distance move towards the player is blocked by ogre 2. Ogre 2 gets a move.
##O##    Ogre 2's shortest distance is blocked by ogre 1. Ogre 1 gets a move. Ogre 1's shortest move is blocked
##O##     by the player. Ogre 1 cannot move. Ogre 2 cannot move. Ogre 3 cannot move. Ogre 3's move is over.
##@##

At this point, all the ogres have moved and the player has the next action.

Thoughts?

Re: Can packs not get in each others' way?

PostPosted: Sunday, 5th August 2018, 17:52
by Siegurt
"Very fast" would seem to imply that when a pack hits a hallway, in the worst-case, all members of the pack would immediately flood the hallway up to the player, so If I see a lone orc at LOS-8 he could immediately be adjacent to me, with the rest of his buddies filling up the hallway.

I mean it's a vaguely interesting idea, but a "flood fill" pack mentality sounds kind of unintuitive and awful, if a "free turn" includes attacks, then a pack stepping into a hallway with one creature adjacent could theoretically get N attacks on you in one turn, where N is the number of creatures in the pack.

I think a better method would be to *reorder* pack actions. Don't give anyone any *free* actions, but if they're blocked by guys who haven't taken their turn yet, they just go to the back of the turn order, and take their turn later. That results in the 'forwardmost' guys getting to go first, so nobody gets blocked except if there's literally nowhere for them to go.

Re: Can packs not get in each others' way?

PostPosted: Sunday, 5th August 2018, 17:56
by njvack
Free turn wouldn't include attacks, but yeah — for large packs it could be surprising and not very fun. Your "back of the line" idea is a better idea.

Re: Can packs not get in each others' way?

PostPosted: Sunday, 5th August 2018, 18:01
by Siegurt
njvack wrote:Free turn wouldn't include attacks, but yeah — for large packs it could be surprising and not very fun. Your "back of the line" idea is a better idea.

Honestly the current monster turn order is weird to start with. I personally think monster turns should work like this:
Initial order is by monster energy remaining (with ties ordered by current turn order, which as far as I can tell is by "order in which the monster was originally created")
When a monster acts, instead of just doing all their actions until they run out of energy they should move to the back of the turn order after one action.
If a monster is blocked by a pack member who has enough energy left to act, as above, they should also move to the back of the turn order without taking any actions or using any energy.

Re: Can packs not get in each others' way?

PostPosted: Sunday, 5th August 2018, 18:21
by njvack
This would both make monsters more dangerous (by letting more monsters take useful actions) and lessen the amount of advantage players can gain by deeply understanding the monster action system

Re: Can packs not get in each others' way?

PostPosted: Sunday, 5th August 2018, 19:03
by duvessa
In your conception of how pack movement currently works, the front of a speed 10 pack is still moving towards you at speed 10, no matter where that front is. If this were how monsters actually worked, we wouldn't need your change in the first place.

The main reason packs are slow is that monsters swap with each other. Specifically, the band leader can choose to swap with any of the band members (but not vice versa), and monsters with higher HD can choose to swap with monsters with lower HD (but not vice versa). I think the restrictions on this are intended to prevent repeated swapping that would slow down an entire pack, but there's a hole in it: let the leader swap to the front, then turn so that location isn't the front anymore. Now the leader will push back the other pack members trying to get to the front again; the net effect is that the pack loses some ground. All you need is some walls to make the turn around, and you can get as much distance from the pack as you want. A draining weapon will also temporarily lower a monster's HD, letting the rest of the pack swap with it. Of course, this works best if you already have a few squares of distance from the pack, but even with autoexplore you don't usually find yourself instantly adjacent to the leader!

Also, whenever a band member is "wandering", it tries to stay near the band leader. This part is 100% intentional though.

You could still speed up packs by cheating monster turns, but it'd be easier to just not let monsters swap so often.

edit: I should clarify, I think that even after this change (or the cheating turns change), it'd still be nearly as easy to fight speed 10 pack monsters one a time. Stairs would still exist, after all. But it would make it harder to just lose the whole pack by moving.

Re: Can packs not get in each others' way?

PostPosted: Sunday, 5th August 2018, 19:25
by Berder
I agree with Siegurt about the flood-fill problem. It would be better to just have the monsters in the pack move in increasing order of distance from the player. That way the monster in front moves, then the one behind him, etc. etc. This guarantees the front moves forward at the monster speed.

Re: Can packs not get in each others' way?

PostPosted: Monday, 6th August 2018, 05:18
by crawlnoob
What if at the end of the players turn, the pack leader was designated simply as the closest monster to the player (pathable distance). No switching unless it was necessary. Then the pack is treated as a single entity on the turn order related to the rest of the dungeon, and each members turn is ordered again in relation to pathable distance. If for some reason a member is blocked by a member, the blocked member can step thru or switch olaces as a free action.

Re: Can packs not get in each others' way?

PostPosted: Monday, 6th August 2018, 06:27
by duvessa
Messing with turn order like that can cause issues in energy-based systems like DCSS's, but the idea of making the leader dynamic is cool.

Re: Can packs not get in each others' way?

PostPosted: Monday, 6th August 2018, 07:26
by VeryAngryFelid
Well, it looks like the wounded/drained monster getting pushed back and the leader rushing forward is a good feature when you are trying to kill the pack. I often see how an almost dead monster gets swapped by full HP monster and heals while I am fighting a new monster. Or how Saint Roka gets adjacent to you so you cannot kill it with arrows and Portal Projectile while tanking hits from plain orc.
But of course the feature is "bad" when you are trying to escape. I used quotes here because I see nothing wrong with reducing luring: you killed some monsters, then escaped, you still risk getting some fast/ranged monsters. We don't want to have pack-splitting as the only viable tactics for packs, do we?