Monster AI Reform

Mostly taken from 1563586

Some monsters could be made more interesting by giving them more intelligent AI. Ideas so far:

  • Ranged monsters trying to stay at range, rather than resorting to melee when they get close enough

Possible different behaviors (not necessarily more intelligent):

  • Limited monster infighting (possibly just for animal intelligence monsters) 1864335
  • Pack monsters could be controlled by a single “AI object” to make them behave more like groups. In particular, they could shift from individual wounds based running away to running away once a number of them is dead. Of course, they would never regrow dead members, but that should substantially increase flavour. Optionally, they could flee towards exit and player gets 1/2 xp if they make it. — b0rsuk 2009-12-12 10:32

Other thoughts:

  • Most smarter AI should probably be restricted to uniques, to avoid serious unbalancing effects
    • This doesn't have to be the case. I think it is ok for middle- and late-game monsters to exhibit smarter behaviour like staying at range and firing missiles. By midgame, player should have tools to deal with them. If he chooses not to develop skills to deal with middle-game challenge, it's his choice… — b0rsuk 2009-12-12 10:18
  • Alternately, monster stats could be lowered to compensate
I've always been in favour of improving the AI of ALL monsters, not just uniques (improved doesn't necessarily mean “more intelligent” though) and cutting down the stats in return.
Obviously, any AI boosts would have to be compensated for somehow if it ends up being problematic - if not via stats, then by moving them further down in the dungeon or reducing the frequency, for example.
To me, having creatures with good, interesting AI (like I said, not necessarily more intelligent) is much more tactically interesting than brute strength, as well as giving them the occasional wand, scroll or other consumable if they don't already have cool spells.
The way creatures step aside, or the possible high-end monster AI tweaks, etc. are the exact kind of thing I'm hoping for, and hopefully all of this will be expanded on in time.
This isn't a suggestion in itself, just wishful thinking. — petato 2009-12-09 01:40
For an example where too smart AI can lead, try DROD:JTRH ( http://drod.net ). There's demo and you can also play around placing elements in editor. The particular element I want you to try is the Slayer. It is a very smart enemy, able to never turn its back to you, remotely open doors to gain access to you, and avoid many hazards. The result is that Slayer is, in a way, very inflexible. DROD is a puzzle game and a lot of it is based on manipulating monsters. A monster as stupid as dungeon roach features in countless player-made puzzles, because it's very easy to manipulate. This is also the case for many other simple monsters. Slayer, on the other hand, can survive nearly anything you throw at him, greatly limiting puzzle potential. Only few specific tricks work against him. — b0rsuk 2009-12-12 10:19
That closed issue deals with enslaved ones, and those shouldn't ever turn on you since they are puppets on magic strings. They're aware what you're doing to them, though, and when enslavement ends they'll be sure to thank you appropiately – but since they would be hostile to you anyway, there's no effect.

Varying behavior for friendly monsters

Right now, nearly all summoned/tamed monsters behave in the same way. This reduces the scope for variation between summoning spells. Dimensions monster behavior could vary on:

1. Does the monster consistently follow the player when it lacks a target (as opposed to sometimes wandering off on its own?)

2. Does the monster attempt to attack hostile monsters as soon as they come into LoS?

3. Does the monster attempt to attack the hostile monster targeted by the player?

4. Does the monster respond to commands to attack a particular target?

5. Does the monster respond to commands to stay in place, or to follow the player?

6. Does the monster follow the players up and down stairs?

Right now, the answers to 1-5 are Yes, No, Yes, Yes and Yes for all friendly monsters. (The answer to 6 used to be Yes for all friendlies too; having it vary by monster type was a good change that this proposal is trying to build on.)

I suggest adding the following behavior types:

1. Automaton: Yes, No, No, Yes, Yes, No. The monster does not target non-adjacent hostiles when the player attacks them, but only when explicitly commanded. Apply to zombies and skeletons (and golems if the player gets access to them at some point.)

2. Animal: No, No, No, No, No, No. The monster generally follows the player but sometimes wanders off. Only targets hostiles when they happen to be adjacent. (The least useful behavior.) Applies to small mammals and to insects. With this change, could possibly (re-)increase the number of summons from SSM, since it would be less effective offensively. Note I'm proposing that small animals and insects also don't use stairs.

3. Normal: The current behavior (Yes, No, Yes, Yes, Yes, Yes). Keep for orcs, canines, and non-spammal, non-insect animals. This would give Sticks to Snakes and Call Canine Familiar a distinct niche compared with SSM (and Summon Scorpions): not just stronger but useful in a different way.

4. Demonic: Yes, Yes, No, No, No, Yes. Monster follows the player, but picks its own target whenever hostiles are in sight. Applies to demons. (Xs might go here or under normal.)

5. Intelligent: Yes/No, Yes, Yes, Yes, Yes, Yes. As current behavior but whenever hostiles are present and it lacks a target (and hasn't been ordered to stay put), it picks a hostile target in LoS. Applies to As. Angels should always follow the player, Daevas sometimes wander away.

With the possible exception of picking a target in LoS (which can be dropped if it's a pain) none of this should require any substantial new code.

Logged in as: Anonymous (VIEWER)
dcss/brainstorm/monster/concept/ai.txt · Last modified: 2011-12-22 18:49 by XuaXua
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki