![]() |
#1 |
Prophet
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,025
![]() |
Sleeping Monsters, Noise, Stealth etc.
So this is kind of a discussion of some of the random stuff that I've had going in my mind. I know this will be fairly long post because the more I've thought about, the more the ideas grow in scope. I'll structure the post by first discussing what problems I'm trying to resolve and after that I'll go into what solution ideas I've come up with.
The problems: ------------------------------------------------------ 1. Monster range of detection is bizarre: i.e. All monsters have ESP. @ is a monsters range of detection if she is within a certain radius monster. No distinction is made between a separation of walls, permanent walls, closed doors or open squares. 2. Monsters don't wake up when expected A) Monsters don't wake up other monsters: Imagine you're a troll sleeping in a room with your buddies. You feel an arrow hit you, and you know what direction it came from. Instead of waking up your 20 sleeping buddies, you decide to rumble off in complete silence towards the arrow firer. B) Combat doesn't wake up monsters: I can't think of anything more noisy than a couple heavily armored combatants fighting to the death. Yet, this doesn't seem to affect sleeping monsters. But creeping by them does? C) Waking up by light is inconsistent: Why does magically lighting a room have a very high chance of waking up a monster but jabbing a lantern in their face does not? 3. Monsters never go back to sleep: Why is it that monsters are always asleep to begin with, but as soon as @ wakes them they are doomed to wander around for eternity in a tortured sleepless state even though @ left the level never to return many ages ago? Poor monsters. 4. Stealth is not modifiable by motion: We all know that if we don't want to wake up someone we move around them slowly and quietly. How come @ hasn't learned this trick, despite having both int and wis of 18? 5. @ doesn't know basic anatomy: If you gave me a dagger and told me to go kill a sleeping wraith, I'd probably be in trouble. However, if instead you told me to kill a sleeping elf. I might have a good chance at success, despite being weak and clumsy. However, @ does just as much damage to a prone elf as she does to an awake and fighting one. 6. @ is deaf: There are 30 hounds rounding the corner up ahead, but @ has no idea about the approaching danger. ------------------------------------------------------------------------------ OK, now for some ideas. Before I get started, many of the ideas presented will require modifications that vary across monsters. I suggest variation by symbol, since this will not require complicating the edit file for monsters. (although it might require a new edit file altogether.) I also fully realize that these changes are *large* in scope and might not even be possible to implement. Certainly not by someone with pitiful coding abilities like me. 1. Range of Detection: Every action has a noise associated with it. Let's call this NOISE. Every monster (class) has two values of importance. A waking value and a hearing value. Call these WAKE and HEAR. For each player move an ambient noise value is calculated for each square in the vicinity of the player. Call this AMBIENT. For simplicity, despite not being physically correct, let's make noise reduction linear. Let's also give the current player action a noise value of 50. Now we need to decide how noise gets reduced. Let's say an open square reduces noise by 1. A closed door/rubble pile by 10 and a wall by 15. Then the AMBIENT value at any point is NOISE - MAX(SUM[features]) where SUM[features] represents the sum of features through all possible paths to the player. Let's give an example. <pre> ######## #...T..# ######## #...@..# ######## </pre> In this case the AMBIENT value at T is 34. Open square (that Z is on) is 1 and the wall between is 15. Whereas: <pre> ######## #...T..# #.###### #....@..# ######## </pre> Has an AMBIENT value at T of 43. Traveling 7 open squares from Z to @. Now let's give T a WAKE value of 30 and a HEAR value of 10. we roll a 1dAMBIENT. If the result is greater than WAKE then T will wake up. If T is already awake and the result is greater than HEAR then T will head toward the noise source. In the first case, the noise comes through the wall, so T can't really head towards @, but in the second case the noise comes through the open square, so T knows where to head. T will always head towards a square of higher AMBIENT value. The dreaded Zs will have WAKE and HEAR values of 0 each. Note: there is little functional difference between an asleep monster and a non-sleeping monster if WAKE and HEAR are the same. And having a HEAR value higher than WAKE makes little sense. As it works now all monsters have ESP. In the above formulation, none do. However, it's reasonable to assume certain monsters, Morgoth, Greater Undead, mind flayers, etc. actually have ESP. These monsters should have an ESP flag and should default to the previous detection methods. 2A: Any monster motion adjacent to another monster wakes it up. This will screw over stealth based characters but can be balanced by 5. 2B: Combat has a very high noise value. something like 100. Excepting the case in part 5. 2C: Well, monsters need separate values wake noise and a wake light. You could imagine a Troll being more sensitive to light than to noise and a worm mass being more sensitive to noise, but completely insensitive to light. The calculation for light is much more simple than for noise. If you are in a players light radius you roll for 'wake light.' If the room gets magically lit (except by enlightenment) you roll for 'wake light' (only once, on the transition). Being in light radius does not matter if the square is already perma-lit. This will make sneaking up on monsters insanely hard. So in that vein I think we need an added 'sheath light' option in which @ can hide her light source. @ can now see things on all adjacent squares, but does not light up any of them. Alternatively. all magical sources of light (everything besides lanterns and torches) can be considered 'dark' light, in that they do not wake up other monsters. An awake monster becomes aware of the player anytime any lit section of the players radius comes into line of sight. 3. @ wanted to sneak up on our unsuspecting T. However, she tripped over a rock and T woke up. @ can't handle T if the troll is awake so she teleports away. T has a finite awake time. Every turn that T is not aware of @, T's INTEREST decreases. If T becomes aware of @ again, the INTEREST value goes back to full. Let's say monster INTEREST starts at 10000, and decreased by 1d10 every game turn. After roughly 200 unhasted player turns T will fall asleep again. We can make this monster dependent also. So certain monsters fall asleep differently. What does T do in the intervening time. Well first T heads to the last place that they heard or saw @. Then T random walks around there, heading towards another monster of like kind if one is nearby. 4. S for search mode should actually be Stealth mode. This should be settable by the player, allowing them to take N turns for each 1 accounting for a reduction in noise, up to some minimum. The amount of noise @ makes upon movement should be a direct function of their armor and their stealth setting. Example: Naked @ makes noise of 50. Each extra turn in motion decreases noise by 5 up to a maximum of 20 off (this can be dex dependent). (each stealth value also decreases noise by 5). Naked @ now has a noise value of 30 meaning that she can sneak up on the T provided she shields her light, since T has a WAKE value of 30 as well. However, what if @ was wearing chain mail, iron shod boots, a metal helm, and some gauntlets. Reasonable guesses would increase her noise by 10 for the mail and the boots and 5 for the helm and gauntlets, leaving her Noise at 80 and giving her no way of sneaking up on T. Furthermore, items in @s bag should also make noise as if they were being worn. metal items (excluding rings and amulets) should make lots of noise if you were carrying them around. Obviously all this stuff would need to be balanced, and probably (sadly) is years off from implementation. My numbers are just invented. 5. Ok so monsters are waking up pretty much anytime @ does anything unless she takes off her armor and blinds herself. But then, unless she can kill something in one blow, she's dead in the water after her first hit. But, she's hitting a prone monster! how in the world can she not do a lot of damage with this hit. @s first attack on a sleeping monster should be 4-5 times more damage than it would be if the monster was awake. Essentially this is like an assassination attempt. Assassination damage should be dependent on stealth, dex and class. And if the monster dies on the first blow it does not wake up the monsters next to it. However, if it does wake, @'s next blow is like a normal combat blow, and pretty much everything will hear it. Assassination can only be made with melee, not with ranged attacks or spells. 6. Monsters also have a default NOISE value. If @ hears something she should be warned and should direction of where the noise comes from. Resting @ (should also regain HP,SP much quicker) but is less likely to hear noise perhaps. So there's a lot here, and I'd be surprised if anyone read this far. The net result for these changes would be that monsters wake up less if @ is skulking but once one wakes, pretty much everything is awake. However, @ can run away out of the Range of Hearing, shut some doors and wait a while and then try again. Hounds are still a major pain, but can now be avoided with enough detection, since you can now detect them before they hear you. Once they start yapping though, they'll wake up everything in the vicinity. No changes need to be made on aggravation or monsters that call for help, like shriekers. These are magical effects and are reasonable if they work in a radius type effect. |
![]() |
![]() |
![]() |
#2 |
Prophet
Join Date: May 2008
Location: Indiana, USA
Posts: 2,939
Donated: $8
![]() |
I wouldn't be. You've a lot of good ideas here, some of which are already in variants, some of which need to make it into Vanilla. Unfortunately, your expectations are probably right on the money because, A) we fear change, and B) it sounds like a lot of work.
__________________
www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012. My banding life on Buzzkill's ladder. |
![]() |
![]() |
![]() |
#3 | ||||||||||||
DaJAngband Maintainer
Join Date: Apr 2007
Location: San Antonio, TX
Posts: 1,124
Donated: $10
![]() |
I'm going to try to simplify your ideas / mix them with my own to think about how I can improve my variant in this area.
Quote:
Quote:
Every action (or most at least) would call a function that has a chance to decrement a monsters sleep counter, (varying by the action in chance and amount) possibly waking the monster up. This function would probably only trigger for monsters in line of sight or very nearby. The code in the function would be very similar to the place at the beginning of the current process_monster() function (And when I say current, I mean current in DaJAngband based on V3.0.9 code. I don't know how much the code of 3.1.1 has changed, but I doubt process_monster() has changed that much). Quote:
Quote:
..This would be fixed by the every action calls the noise function idea above. Quote:
Quote:
Quote:
Quote:
I am also considering making things like jellies and wraiths immune to critical hits like they are in DND. Quote:
Graphics further complicates this because without graphics when you hear a monster in DaJAngband, the symbol always appears grey, but I can't change the color of the graphic tiles or make it so you can't tell the specific monster if you recognise the tile. -------------------------------------------------------------------------- Quote:
Quote:
Quote:
It would make sense for metal armor to have a stealth penalty, but I wouldn't implement that because light armor is already much better than heavy armor in most ways.
__________________
Will_Asher aka LibraryAdventurer My old variant DaJAngband: http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...) |
||||||||||||
![]() |
![]() |
![]() |
#4 | |
Rookie
Join Date: Sep 2009
Posts: 6
![]() |
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Prophet
Join Date: May 2008
Location: Indiana, USA
Posts: 2,939
Donated: $8
![]() |
Quote:
__________________
www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012. My banding life on Buzzkill's ladder. |
|
![]() |
![]() |
![]() |
#6 |
Swordsman
Join Date: Sep 2008
Posts: 289
![]() |
I am assuming that M is aware that there is a town of grumpy adventurers atop his fortress. I am also assuming that M cares enough about his privacy to want to keep pesky thieves/assassins away from him and his minions while he gathers his power.
Ergo, M uses his power to make his monsters tireless in their hunt for intruders, and grants them limited ESP to assist in their roles as bodyguards. Let's take it as a gift that monsters are ever asleep at all. Apparently the need for rest occasionally overpowers even Morgoth's thralls. |
![]() |
![]() |
![]() |
#7 | |
Prophet
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,025
![]() |
Quote:
also, re other peoples suggestions: I guess if you want to go under the assumption that *all* the monsters in the dungeon are directly under Morgoth's control then you *might* be able to argue for never sleeping and for ESP. I always assumed that these were semi-random monsters that gathered their for their own reasons, some of them to depose Morgoth themselves, some to find the amazing loot that's there, and some for their insatiable love of @ meat. |
|
![]() |
![]() |
![]() |
#8 | |
Rookie
Join Date: Aug 2009
Posts: 22
![]() |
Quote:
One would only see the blue/red color effects in a radius dependent on @'s hearing ability. At the beginning, hearing is limited to only the spaces around the player (this is natural, as we can usually only tell as much as "direction" with our hearing). However, this may grow slowly with, say, DEX or level to maybe 3 spaces. A new passive bonus could be added to items (much like ESP) which supernaturally "Improves Hearing" and greatly increases the hearing radius (6 spaces?). This would make sneaking around more player-friendly, as one would be able to actually see how much noise one would be making. This would also, in effect, solve the problem of "30 hounds rounding the corner up ahead, but @ has no idea of the approaching danger." If the hearing radius is even very small, one would be able to tell "I'm not in a safe place" or "there are monsters this way as opposed to that way." Except with ghosts, vampires, etc. It's natural that many monsters don't make any noise. Hearing would in effect be a limited, rough version of ESP that can cover some of the "unintelligent" monsters and serve the same purpose in the early game before one has acquired ESP. Also, since everyone can hear, it would make ESP less "necessary" as it is now. |
|
![]() |
![]() |
![]() |
#9 |
Adept
Join Date: Feb 2008
Posts: 234
![]() |
Something I've always thought would be nice, but I've never yet seen in a variant, even the ones that do have some kind of noise/stealth system, is the ability to use either a spell or some kind of time-triggered trap to create noise in a different part of the dungeon, attracting the monsters to that area so the skillful @ can sneak past undetected.
|
![]() |
![]() |
![]() |
#10 | |
Ironband/Quickband Maintainer
Join Date: Nov 2007
Posts: 1,009
![]() |
Quote:
This has always bothered me too, it doesn't seem right that you can walk up a monster and slowly beat it to death while its pals sitting next to it slumber away peacefully and it screams "GUYS! GUYS! HELP ME! HE'S KILLING ME! OH! OH! I'M DYING! S&*(" and they don't wake up. I've just tried tackling this with a relatively minor change. When a monster attacks you in melee, all nearby sleeping monsters who are in your LOS have a fairly large chance of waking up. So if you can run up to a monster and kill it a single hit, then it never gets an attack against you and you can do the same to the next monster... this I imagine as a rogue creeping round the room slitting throats... but if the monster survives one round of your attacks then it will have a go at you and everyone else will wake up. We'll see how it plays. A.
__________________
Ironband - http://angband.oook.cz/ironband/ |
|
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Improving stealth | jv123 | Vanilla | 7 | June 22, 2009 22:07 |
stealth and sleeping monsters | bebo | Vanilla | 11 | February 26, 2009 19:52 |
Excellent Stealth | bpleshek | Vanilla | 5 | September 5, 2008 02:09 |
Should any monsters be changed for 3.1.0? | Skyknight | Vanilla | 6 | June 16, 2008 15:35 |
RGRA portal stealth post feature | zaimoni | Oook! | 13 | December 13, 2007 17:53 |