Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old May 5, 2013, 22:40   #1
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 39
Posts: 1,516
d_m is on a distinguished road
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
d_m is offline   Reply With Quote
Old May 5, 2013, 22:51   #2
APWhite
Adept
 
APWhite's Avatar
 
Join Date: Jul 2007
Location: St George Utah, USA
Posts: 244
APWhite is on a distinguished road
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.
APWhite is offline   Reply With Quote
Old May 5, 2013, 23:28   #3
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,842
Donated: $60
Nick will become famous soon enough
Quote:
Originally Posted by d_m View Post
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.
Nick is offline   Reply With Quote
Old May 5, 2013, 23:55   #4
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 39
Posts: 1,516
d_m is on a distinguished road
Quote:
Originally Posted by Nick View Post
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
d_m is offline   Reply With Quote
Old May 6, 2013, 00:13   #5
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 39
Posts: 1,516
d_m is on a distinguished road
Quote:
Originally Posted by APWhite View Post
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
d_m is offline   Reply With Quote
Old May 6, 2013, 00:43   #6
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,002
fizzix is on a distinguished road
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.
fizzix is offline   Reply With Quote
Old May 6, 2013, 01:04   #7
Antoine
Ironband/Quickband Maintainer
 
Join Date: Nov 2007
Posts: 1,008
Antoine is on a distinguished road
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/
Antoine is offline   Reply With Quote
Old May 6, 2013, 01:51   #8
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 39
Posts: 1,516
d_m is on a distinguished road
Quote:
Originally Posted by Antoine View Post
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
d_m is offline   Reply With Quote
Old May 6, 2013, 02:08   #9
Antoine
Ironband/Quickband Maintainer
 
Join Date: Nov 2007
Posts: 1,008
Antoine is on a distinguished road
Quote:
Originally Posted by d_m View Post
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/
Antoine is offline   Reply With Quote
Old May 6, 2013, 02:24   #10
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,923
Derakon is on a distinguished road
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).
Derakon is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Ironband Mana Mikko Lehtinen Variants 13 October 8, 2012 21:07
What's the penalty for trying to cast spells without mana? Nemesis Vanilla 5 April 19, 2010 18:59
feature discussion - halve mage damage mana PowerDiver Vanilla 48 December 31, 2009 04:58
Morgoth's Mana Storm awldune Vanilla 5 November 22, 2008 04:15
question about armor imposed mana points penalty tg122 Vanilla 4 December 17, 2007 18:17


All times are GMT +1. The time now is 22:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.