Ally commands


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Thursday, 14th November 2019, 16:25

Ally commands

Right now, ally commands are a bit inconsistent. I'm going to ignore mindless, below is for allies that at least broadly try to execute player orders:

- "Follow me" does not cause allies to disengage and follow the player.

- If the player attacks, there is no way to keep allies in present position. Hep is the worst offender by far. If you are positioned in a way that lets you 2v1 monsters in corridor or doorway, ancestor will often walk into hallway/door despite being on "follow" command. At that point you either let it die or tediously repeat "retreat" --> "follow" to get 2v1 again.

- Sometimes allies will fight off screen, other times they won't. It's not intuitive.

- Allies instructed to "guard area" don't always engage monsters in both their + your LoS consistently.

- If you shoot or cast spells at an enemy your allies will almost always move to block you from further doing so, and there appears to be no command to prevent this.

~~~

I don't know how easy alterations to the mechanic would be, but a few tweaks would be nice at minimum:

1. Allies on "follow" actually follow the player, and do not move away from the player unless instructed to do so. They will use ranged attacks or attack in melee when possible when there are eligible targets.

2. Allies given "attack" command on specific target pick nearest monster if target leaves LoS or dies.

3. Consistency with combat outside player LoS, or clear in-game descriptions if variability is intentional.

For this message the author TheMeInTeam has received thanks: 3
PseudoLoneWolf, sdynet, Slap and stab
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Thursday, 14th November 2019, 17:24

Re: Ally commands

Ally commands should be removed. Recall spells/abilities give sufficient control over ally positioning. I feel documentation on ally/monster targeting and movement could be improved to promote player literacy on these mechanics, but not having read the documentation myself I can only base this opinion on observation of players.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

For this message the author tealizard has received thanks:
duvessa

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Thursday, 14th November 2019, 17:35

Re: Ally commands

I disagree. Having hep ancestor CONSTANTLY moving to block the player is pretty annoying, enough to make me pick Hep less frequently than I otherwise would on sheer tedium alone. Removing ally commands/positioning stuff only makes them less appealing to use than they already are from a tedium perspective.

Yred shares this problem to a lesser extent. It's less noticeable with gods like TSO or Trog because they don't have summons out all the time blocking you and in TSO's case the summons cast smite too, while with Trog you're probably using melee.

As it stands right now with ally AI, removing commands would make the game worse rather than better. Giving 1-2 orders is less tedious than playing around the questionable algorithms in many cases.

For this message the author TheMeInTeam has received thanks: 3
Fingolfin, petercordia, sdynet

Dungeon Dilettante

Posts: 2

Joined: Friday, 28th June 2019, 18:12

Post Monday, 25th November 2019, 21:16

Re: Ally commands

The commands are indeed poor and confuse. They should at least be instantaneous. It's not rare to lose multiple turns repositioning allies (and not always succeeding) in the middle of the fight, or simply to let them die.
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Monday, 25th November 2019, 22:13

Re: Ally commands

Actually, instantaneous ally commands would be worse.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

For this message the author tealizard has received thanks: 2
byrel, duvessa
User avatar

Snake Sneak

Posts: 111

Joined: Saturday, 10th March 2018, 18:00

Post Tuesday, 26th November 2019, 01:19

Re: Ally commands

tealizard wrote:Actually, instantaneous ally commands would be worse.


As with most of your posts, can you give any sort of justification as to why this is the case rather than "because I said so"?

For this message the author PseudoLoneWolf has received thanks:
TheMeInTeam
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Tuesday, 26th November 2019, 01:34

Re: Ally commands

My justification is truth.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

Crypt Cleanser

Posts: 689

Joined: Saturday, 12th December 2015, 23:54

Post Tuesday, 26th November 2019, 01:46

Re: Ally commands

If ally commands are instantaneous then it's optimal to use one every time the most effective ally behavior changes, which can happen as often as every turn. Should be extremely obvious why this is bad.

For this message the author Hellmonk has received thanks: 5
byrel, duvessa, petercordia, PseudoLoneWolf, TheMeInTeam

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 26th November 2019, 07:17

Re: Ally commands

TheMeInTeam wrote:If you shoot or cast spells at an enemy your allies will almost always move to block you from further doing so, and there appears to be no command to prevent this.

This is indeed really annoying behaviour.

Allies are sometimes useful as shields, and thus this behaviour can make sense. In other cases, they are useful as auxiliary damage dealers or to distract monsters etc., in which case, this behaviour does not make sense.

In principle, this problem can just be solved by having a "global" option as to whether or not you want your allies to block line of fire. It does not even need to have anything to do with ally commands in every particular instance.

In general, I think it might be good to have some way to give "global" or "default" orders to allies. Many games have ally AI which allow you to set goals (say, "act freely", or "focus on healing", or "focus on attack"). The AI then tries to meet this goal in a rudimentary fashion.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Tuesday, 26th November 2019, 17:44

Re: Ally commands

^ This can mostly be solved by making your previous command "sticky". If you ordered "follow", anything alive right now will follow you (stay adjacent) until you command otherwise or it dies. If you order "attack" on a target it can work the same as now. If you order "guard area" same deal.

The question is what to do after they leave screen when ordered to "retreat". IMO "retreat" just sends them to spot of retreat, then they go back to "follow" is best unless we want to add a new "hold" command or just make them stay on/near retreat spot indefinitely until new order is given or they leave LoS.

~~~

Hellmonk's reasoning is more than sufficient for why these commands should still cost time. You are receiving a tangible benefit (if the commands work properly) that is sometimes optimal and other times not. Making them instant unnecessarily buffs allies (which are already strong so buffing is not good) and has a tendency to make optimal play more tedious (which is obviously not good). A few small tweaks makes allies pretty playable, no need to go crazy IMO.
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Tuesday, 26th November 2019, 19:15

Re: Ally commands

The suggestion that allies decline to block approaching monsters to enable ranged attacks from the player strikes me as extremely half-baked. If your allies don't block, then they will have to pursue monsters that bypass them if they are melee only, as most allies are.

Nevertheless, ally AI that tries to preserve a path to the player would be an interesting addition to the codebase. The fact that allies can block monsters in the first place is problematic in my opinion and mechanics that prevent this from happening, for example despawning allies that block a monster's advance, might go down easier with such an AI already in place.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Tuesday, 26th November 2019, 21:18

Re: Ally commands

The suggestion that allies decline to block approaching monsters to enable ranged attacks from the player strikes me as extremely half-baked. If your allies don't block, then they will have to pursue monsters that bypass them if they are melee only, as most allies are.


Allies on follow command don't have to move at all. In 99% of fights I would prefer allies on "follow" to stay adjacent to me and obey what the word means in English. They can trivially hit monsters that move adjacent to me in melee that way. If the monster isn't fast I might even take one step back so the follower hits them for free if I'm pursued, but usually this isn't necessary.

In contrast, ally moving to block my shots:

- Causes objectively less total damage from player + ally combined in nearly every case
- Increases player micromanagement hassle
- Tends to get killed by monsters

This is nearly strictly inferior in the vast majority of cases. In cases where it isn't, the player can spend a turn instructing allies to attack.

Note that this holds even if the player is wielding a melee weapon. Follow is still more useful if it means follow, even then, because the ally will not move to 1v3 monsters in doorways and crap while the player is behind it in a choke.

Nevertheless, ally AI that tries to preserve a path to the player would be an interesting addition to the codebase. The fact that allies can block monsters in the first place is problematic in my opinion and mechanics that prevent this from happening, for example despawning allies that block a monster's advance, might go down easier with such an AI already in place.


Getting cute will make ally commands say things they don't mean, even more so than now. It's silly. All I'm asking, and all that is required for the game to be significantly more convenient, is that the command "follow" actually means "follow" and not "stay adjacent until the first stimulus causes the ally to attack anyway, ignoring the follow command and obstructing the player".

Suggesting that "follow = follow", "attack = attack", and "retreat = retreat" is not "half-baked". It's a more sensible implementation than the status quo by a significant margin.

For this message the author TheMeInTeam has received thanks:
PseudoLoneWolf
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Tuesday, 26th November 2019, 22:04

Re: Ally commands

Perhaps the lesson of the existing ally commands is that allies are never going to do exactly what you want and it's not realistic to change that. It's certainly true that with more fine-grained control of allies the player could do more damage in some situations than they would by default issuing no commands. So what? If allies (bad) don't mix well with ranged combat (also bad), seems like evidence that the universe is on our side.

Given that these commands don't do what you expect them to do or what you want them to do and that realistically they never will, I go back to my previous point that they ought to be removed entirely. My attitude on allies is that the cases where you need to tell them to do things like follow you, e.g. mass undead or permanent allies, should be removed or heavily curtailed, and for the rest the best thing to do would be to provide better documentation of ally tactics so that players will more quickly acclimate themselves to playing around the interactions between ally and monster AI.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

For this message the author tealizard has received thanks:
duvessa

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Tuesday, 26th November 2019, 22:34

Re: Ally commands

Perhaps the lesson of the existing ally commands is that allies are never going to do exactly what you want and it's not realistic to change that.


That's a lesson for another thread. It's a disingenuous takeaway in this thread.

The rest of the post doesn't address the points I made and is arguing against things that weren't said, so isn't worth addressing. Nobody is asking allies to "do exactly what players want". I am asking that allies do what the stated in-game options imply they will do in the English language, as opposed to doing other things.

Making allies even less convenient to use rather than more on the basis of refuting a strawman will not improve crawl. Even advocating the complete removal of allies (for all the problems with such a "solution") is more reasonable than that.
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Tuesday, 26th November 2019, 23:13

Re: Ally commands

Well, sounds like we're on the same page then. If there were no ally commands at all, then all ally commands would "do what the stated in-game options imply they will do in the English language, as opposed to doing other things."

Now taking another look at this thread, it seems to boil down to complaints about a particular kind of permanent ally, the hepliaklqana ancestor. Hellcrawl has a nice solution to the issue of a "persistent" ally following the player character between fights in the spectral weapon permacharm (level 5). Instead of making the spectral weapon follow you between fights, it despawns after a duration and respawns when triggered by a melee attack on a non-firewood target. (A similar mechanic exists for battlesphere.) It's not a perfect solution because the spectral weapon can still block monsters, but it's clean and fluid. These mechanics could easily apply to the ancestor ally, though I have to say I don't find the complaints about the follow command very convincing.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

Abyss Ambulator

Posts: 1233

Joined: Wednesday, 23rd April 2014, 21:57

Post Thursday, 28th November 2019, 12:12

Re: Ally commands

Regarding the OP

I use allies a fair bit (they are super strong) and don't find it annoying most of the time.

I have not experienced any problems with the follow command. A possibly source of frustration is that attacking a monster has a similar effect to issuing an 'Attack!' command. From a power perspective that's useful because it takes no time. Given the confusion this causes maybe that could be changed.

The 'Guard' command is mainly useful for parking allies to keep them out of danger. Maybe it could be removed, but in some cases I would then start parking some allies on different floors or some other nonsense.

Allies blocking line of fire is often desirable, to avoid getting hexed etc.. The 'command' for stopping that behaviour is essentially moving at the correct angle. Allies basically move like monsters, in other words in a predictable fashion. It is entirely possible to use ranged attacks and allies at the same time effectively.

Alles fighting out of LOS should probably be removed because it's very desirable and fiddly at the same time.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Tuesday, 3rd December 2019, 16:28

Re: Ally commands

4Hooves2Appendages wrote:Regarding the OP

I use allies a fair bit (they are super strong) and don't find it annoying most of the time.

I have not experienced any problems with the follow command. A possibly source of frustration is that attacking a monster has a similar effect to issuing an 'Attack!' command. From a power perspective that's useful because it takes no time. Given the confusion this causes maybe that could be changed.

The 'Guard' command is mainly useful for parking allies to keep them out of danger. Maybe it could be removed, but in some cases I would then start parking some allies on different floors or some other nonsense.

Allies blocking line of fire is often desirable, to avoid getting hexed etc.. The 'command' for stopping that behaviour is essentially moving at the correct angle. Allies basically move like monsters, in other words in a predictable fashion. It is entirely possible to use ranged attacks and allies at the same time effectively.

Alles fighting out of LOS should probably be removed because it's very desirable and fiddly at the same time.


Yes, the problem is that attacking something (or being attacked) both can issue an "attack" command to allies on "follow" needlessly. It's generally more harmful than useful, on average.

While allies blocking LoS is useful sometimes, it very often is objectively inferior for the reasons I listed above in an earlier post. I would argue knowing when to throw allies in the way of hexers is something the player should have to issue the command for (though as an alternative, you can often simply move to swap or block that way). Need for blocking is both more rare and more situational (even in the context of enemy hexers) than the opposite (not wanting a launcher/spell obstructed or blocking path for melee approach).

Now taking another look at this thread, it seems to boil down to complaints about a particular kind of permanent ally, the hepliaklqana ancestor.


It applies to all summoned allies as well. Hep is obviously more noticeable since it's out all the time and play with that god centers on properly positioning and using the ancestor, but it's far from the only time this is annoying.

Rather than claiming something is "not convincing", it would be more helpful to detail what aspects of the argument don't hold. Right now, the "follow" command

a) does not do what the word means
b) results in objectively inferior behavior a majority of the time
c) overlaps with the basic functionality of the "attack" command needlessly

Allies don't have to be a pain to use. Not much would need to change for them to be less hassle.
User avatar

Mines Malingerer

Posts: 42

Joined: Wednesday, 18th July 2018, 23:51

Post Saturday, 7th December 2019, 16:57

Re: Ally commands

Regarding Hep specifically, I think it would be a whole lot more fun if your attacks just passed through and didn't affect your ancestor at all, the same way they don't with DS's Demonic Guardians. Hep's already pretty strong though, so I'm not sure what kind of changes would be needed to compensate.
EthnicCake on CKO. It's an anagram.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Monday, 9th December 2019, 16:41

Re: Ally commands

Like I said, I don't think we need to get too cute per se'. Hep would be pretty solid if literally all that's changed is that "follow" and "stop attacking" mean what they say, rather than waste turns for allies to just ignore the commands anyway. Sure, buffing Hep by allowing physical shots through it would make it stronger/easier to use, but there are still builds where you don't want ancestor tanking specifically and I don't think Hep needs a strict buff rather than usability.

Return to Game Design Discussion

Who is online

Users browsing this forum: No registered users and 23 guests

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.