Monster mana alternatives

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • d_m
    Angband Devteam member
    • Aug 2008
    • 1517

    Monster mana alternatives

    Hi everyone, long-time-no-see.

    I was talking about monster AI with Derakon on IRC and thought it'd be interesting to open up the conversation to a wider audience. This isn't necessarily limited to what should go in V (although that was the original context).

    Right now, V's monsters are powerful but dumb. There's nothing stopping a monster from (randmoly) choosing its most powerful attack N times in a row, although it's very unlikely. Of course, if we improve the AI, V's tougher monsters could easily become unbeatable.

    Many variants have introduced monster mana to solve this problem. From what I understand, monsters in these variants are incredibly tough until they run out of mana, and then are much easier. Monsters that can heal or teleport are particularly hard--you pretty much have to get them to use up their mana before trying to kill them.

    An alternative would be cooldown timers. This is similar to what a lot of MMOs have ended up doing. It'd mean that you'd never have to worry about two breath attacks (or mana storms or whatever) in a row, and would allow things like healing to be pretty rare. Unfortunately, I think it would also make monster battles very predictable. For instance, a teleporting monster would always teleport once when hurt. You'd have to track them down and kill them before the timer reset, or they'd do it again. I think this could get pretty tedious. (Healing has the same problem.) As I said, it also makes some unpredictably dangerous monsters less dangerous (if they only have one strong breath attack).

    Combining timers and mana might work. I think you'd still get the same kinds of predictable behavior, but it would be easier to "wear down" a monster by waiting until its mana was exhausted. Monsters could still teleport away to let their timers and mana reset though.

    One option I found really interesting was the option of having monsters use HP as mana, instead of a separate quantity. This would make building the AI a bit more interesting--spamming powerful spells might be the most efficient way to try to kill the PC, but would also bring the monster closer to death. And running out of mana would more obviously be fatal. The one big problem here is that healing doesn't totally make sense--if the monster could heal that would also reset the mana, which would be really powerful. But I do like the fact that with monster HP instead of mana, the player has a stronger incentive to damage the monster early on (to limit available HP for spells and attacks).

    None of these seem perfect, and its possible that a hybrid approach (mana + timers, HP + timers, something even more complicated) might work best. Since there is already huge asymmetry between the player and monsters, I don't think it's a problem to have very different systems here as well.

    What do you all think?
    linux->xterm->screen->pmacs
  • APWhite
    Adept
    • Jul 2007
    • 244

    #2
    I think a cool-down would be easy to implement as well. One could add different timers based on the degree of the spell. If the monster had some high level attacks, they could have a 3 turn cool-down. While low level spells (ie, blink-self) could have a 0 cool-down.
    St George Chiropractor
    Angband Borg Homepage

    Comment

    • Nick
      Vanilla maintainer
      • Apr 2007
      • 9633

      #3
      Originally posted by d_m
      Many variants have introduced monster mana to solve this problem. From what I understand, monsters in these variants are incredibly tough until they run out of mana, and then are much easier. Monsters that can heal or teleport are particularly hard--you pretty much have to get them to use up their mana before trying to kill them.
      I'm actually not convinced of this (and not just because my variant has monster mana). My feeling is that it's the smartness of the attack spells in 4GAI variants that make the monsters tough rather than the healing. But I'm not a very good player - people who are actually fighting the tough monsters more often might have a better idea.
      One for the Dark Lord on his dark throne
      In the Land of Mordor where the Shadows lie.

      Comment

      • d_m
        Angband Devteam member
        • Aug 2008
        • 1517

        #4
        Originally posted by Nick
        I'm actually not convinced of this (and not just because my variant has monster mana). My feeling is that it's the smartness of the attack spells in 4GAI variants that make the monsters tough rather than the healing. But I'm not a very good player - people who are actually fighting the tough monsters more often might have a better idea.
        It's true that I haven't beaten NPP or any variant with 4GAI and monster mana. This was based on what I'd heard from other people (including Derakon).
        linux->xterm->screen->pmacs

        Comment

        • d_m
          Angband Devteam member
          • Aug 2008
          • 1517

          #5
          Originally posted by APWhite
          I think a cool-down would be easy to implement as well. One could add different timers based on the degree of the spell. If the monster had some high level attacks, they could have a 3 turn cool-down. While low level spells (ie, blink-self) could have a 0 cool-down.
          Yeah, cool-down timers should be pretty easy to implement. I just worry about predictable attack sequences, for instance an AMHD might:

          1. breathe fire
          2. breathe cold
          3. breathe poison
          4. breathe lightning
          5. breathe acid
          <repeat>

          Or, we put all breaths on the same 3 turn timer:

          1. breathe fire
          2. attack
          3. attack
          4. attack
          repeat

          (Obviously, with good monster AI, the AMHD might try out blindness and confusion to see if they are worth doing.)
          linux->xterm->screen->pmacs

          Comment

          • fizzix
            Prophet
            • Aug 2009
            • 3025

            #6
            So, at first I was a big fan of smarter monster AI, but over time I've become less fond of the idea. I really like monsters choosing abilities at random. It makes the battles different each time. Sometimes kavlax breathes gravity twice, sometimes he doesn't breathe at all. That's cool.

            Also, smart monsters would require a fundamental redesign of late game mechanics. If monsters always led off with breaths, then you could never risk being in LoS of something that could kill you for a single turn. It completely eliminates a lot of risk taking choices, if you know that the monster's strongest attack will kill you. Similarly, you must always teleport away after any powerful summon (assuming that ASC's get eliminated as a possibility.) Being in LoS of two monsters that haven't breathed yet is instant death for most characters. Now this all can be changed too, but in general making the monsters smarter winds up reducing possible options for the player. While keeping monsters dumb and subject to RNG shenanigans yields lots of risk-reward opportunities. I think the second approach works much better for roguelikes.

            Nevertheless, Tome4 has smart monsters with all spells having cooldowns (and mana as well.) So at least it might be worthwhile to take a look at it to see how it plays and whether you actually like it in practice.

            Comment

            • Antoine
              Ironband/Quickband Maintainer
              • Nov 2007
              • 1010

              #7
              I think the best solution is 'sometimes smart' mobs.

              Whenever the monster chooses an option, make a random check. If it passes, do the optimal thing. If it fails, do a random thing.

              The chance of passing the check could vary from mob to mob, and also by 'difficulty mode'.

              This would lead to mobs that felt smarter but didnt just spam their healing spell or their best unresisted attack.

              A.
              Ironband - http://angband.oook.cz/ironband/

              Comment

              • d_m
                Angband Devteam member
                • Aug 2008
                • 1517

                #8
                Originally posted by Antoine
                I think the best solution is 'sometimes smart' mobs.

                Whenever the monster chooses an option, make a random check. If it passes, do the optimal thing. If it fails, do a random thing.

                The chance of passing the check could vary from mob to mob, and also by 'difficulty mode'.

                This would lead to mobs that felt smarter but didnt just spam their healing spell or their best unresisted attack.

                A.
                This seems really promising. I really like having a probability dial you can move to make monsters smarter (or dumber). It could easily combine with any other techniques too.
                linux->xterm->screen->pmacs

                Comment

                • Antoine
                  Ironband/Quickband Maintainer
                  • Nov 2007
                  • 1010

                  #9
                  Originally posted by d_m
                  This seems really promising. I really like having a probability dial you can move to make monsters smarter (or dumber). It could easily combine with any other techniques too.
                  Yes agree.

                  Its also very straightforward to implement, could go pretty much straight into a dev version, heck if the smart chance was small at first then some players might not even notice the difference...

                  A.
                  Ironband - http://angband.oook.cz/ironband/

                  Comment

                  • Derakon
                    Prophet
                    • Dec 2009
                    • 9022

                    #10
                    Another possibility would be to have the monsters have different pools of spells each with its own set of cooldowns. For example, AMHDs might be able to breathe any two elements before running out of "breath charges" (like having a stack of rods); meanwhile, their confuse/blind/paralyze spells would have a separate pool with its own set of charges and timers.

                    This would save us from every fight being predictable, I think, while also meaning that the player isn't immediately safe as soon as the monster's big nasty attack is used once. Also, you can split up the pools e.g. by offense/defense/status/summon, let the monster pick which pool to use intelligently, but select randomly within the pool (or vice-versa -- select pool at random, cast best spell from with it, but I think that's less interesting). So when the monster gets low on HP, they won't necessarily always cast a healing spell, but they will cast something else defensive (probably teleport or teleport-away, since there aren't that many defensive spells available to monsters).

                    Comment

                    • Scatha
                      Swordsman
                      • Jan 2012
                      • 414

                      #11
                      Sil uses a mana system to achieve something like a cooldown system: the monster mana pools are only one-and-a-half times the size necessary to activate an ability, but recharge pretty quickly.

                      The effect of this is that a monster can never use two abilities in a row, and that they will be a bit more dangerous at the start (can use one ability immediately, and a second after a short recharge, but longer recharges thereafter). They're not smart in ability selection, choosing randomly, and won't necessarily use an ability even if they have the mana.

                      I'm not sure if that's useful elsewhere, but I think it works pretty well in Sil (would be interested to know if anyone finds the behaviour annoying).

                      Comment

                      • Hajo
                        Adept
                        • Aug 2010
                        • 142

                        #12
                        Originally posted by Antoine
                        I think the best solution is 'sometimes smart' mobs.

                        Whenever the monster chooses an option, make a random check. If it passes, do the optimal thing. If it fails, do a random thing.

                        The chance of passing the check could vary from mob to mob, and also by 'difficulty mode'.
                        Considering the KISS principle, this seems favorable to mana pools and cooldown timers. I like this suggestion.
                        I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

                        Comment

                        • Antoine
                          Ironband/Quickband Maintainer
                          • Nov 2007
                          • 1010

                          #13
                          I based the idea on my own playstyle.

                          A.
                          Ironband - http://angband.oook.cz/ironband/

                          Comment

                          • Pete Mack
                            Prophet
                            • Apr 2007
                            • 6883

                            #14
                            Originally posted by Antoine
                            I based the idea on my own playstyle.

                            A.
                            Antoine, FTW!

                            Comment

                            • Magnate
                              Angband Devteam member
                              • May 2007
                              • 5110

                              #15
                              I personally think that monsters should follow exactly the same rules as the player, and have a mana pool. This means I support the FA/NPP/4GAI approach - but let's not forget that most of those variants have some form of 'mana burn' attack to get rid of monster mana more quickly.

                              There is no reason why Antoine's suggestion couldn't combine well with this approach. Indeed, monsters could have a numeric 'smartness' rating instead of just a flag. Smarter monsters would do the optimal thing more often. Kavlax is very dangerous anyway; he wouldn't have to be smart.
                              "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                              Comment

                              Working...
                              😀
                              😂
                              🥰
                              😘
                              🤢
                              😎
                              😞
                              😡
                              👍
                              👎