Page 1 of 1

A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 00:09
by duvessa
I've argued that monster invisibility is an interface screw before, and I stand by that even though it wasn't well-received. I want to talk about it again from a slightly different angle.

At the bare minimum, monster invisibility is bad because it is horrible to work around it in coding and design, especially UI design:
  • Crawl allows you to take a lot of actions that are useless or should be useless, purely because of the possibility that an invisible monster is around. This includes: shooting beams and projectiles along empty paths, casting airstrike at empty space, attacking empty space (breadswinging needs to be fixed anyway), casting conjure flame at occupied spaces, closing a door on an occupied space, etc. Without monster invisibility, such action attempts could be dismissed as typos and not performed, saving people turns/MP/wand charges. With monster invisibility, you have z -> Z as the most popular macro in the game.
  • The interaction with automated actions is awful. Autoexplore/travel/rest/eat shouldn't start if there's a monster in view. Ever. But they do because of "invisible" monsters, even though the player nearly always knows there's a monster there! This pales in comparison to what happens with autopickup, though: whenever a monster turns invisible or an invisible monster attacks in melee, autopickup turns off, and then it theoretically turns back on when the monster becomes visible or dies. This results in the player having to turn autopickup back on themselves half the time, since the monster became visible or died on a turn that it wasn't in LOS, or the player simply used stairs or something, and the interaction with multiple invisible monsters only gets worse. Even if you somehow magically fixed all the problems with the implementation disabling/enabling autopickup, you'd still be left with the fact that the behaviour is weird in the first place. The first time a monster went invisible and I saw "Deactivating autopickup", I thought I had accidentally pressed a key that deactivates autopickup, because why would an unspoiled player expect a monster to change their interface settings? I figured it out quickly, sure, but still, it's a jarring thing to encounter.
  • Targeters like the fireball targeter will outright give the player wrong information about which squares will be hit, in the presence of invisible monsters, even though the player probably knows the monster is there. But you can't assume the player knows the monster is there, because then they'll use the targeter every turn to detect any invisible monsters.
  • Monster AI's interaction with invisible monsters is unavoidably bad. You can make monsters always see invisible monsters, but then invisibility on your allies is useless, which is weird. You can make monsters not see invisible monsters, but then you get cases where it can be useful to turn a monster invisible on purpose to make other monsters hit it with ranged attacks.

A more reasonable implementation would be to only hide the monster's current health, not its position. I don't think this is interesting, though - it certainly wasn't for undead.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 00:23
by dpeg
This is well argued. I guess the days of the invisible monster are numbered...

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 00:43
by and into
The biggest loss would be unseen horror, but I think that's salvageable as "stalking horror" that works like trapdoor spider. Could give that behavior to sky beasts and shadows too if you really wanted, but imo those are very cuttable.

All the enemies that are good and have invis as a spell are good without invis (better, actually, in that they don't lead to the problems outlined in the OP).

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 01:13
by duvessa
Trapdoor spider and swamp worm have the same problems. Trapdoor spiders were removed with good reason.

I think people only like unseen horrors because they don't know how silly batty movement actually is. I don't think shadows, shadow wraiths or sky beasts actually need invisibility.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 01:35
by dpeg
I think Unseen Horrors are actually worth saving, and could be saved by showing "unseen monster around" whenever one is in LOS. That's interface-heavy, but it'd be alright for a single monster (and a unique or so).

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 01:55
by Siegurt
Hm what if the monster invis also caused batty movement? (Just as a thought exercise, not suggesting that is a magic bullet or anything)

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 02:05
by tabstorm
dpeg wrote:I think Unseen Horrors are actually worth saving, and could be saved by showing "unseen monster around" whenever one is in LOS. That's interface-heavy, but it'd be alright for a single monster (and a unique or so).

How is it unseen if you can see its outline all the time? The only point of all this would be flavor, which is fine, but it would be equivalent to just having a Seen Horror with an evasion boost and an attack bonus, no?

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 03:43
by duvessa
So like the current situation for players who understand batty?

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 04:15
by tabstorm
I don't know how batty works and I've won 150+ games.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 04:22
by tabstorm
learndb says: batty[1/1]: A movement pattern in which the monster hits you, then moves randomly until the player's next action. Most common creatures with this pattern are {bat} {fire bat} {harpy} and {unseen horror}.

How do you know where it is at all times if it hits you and then moves randomly until your next action, while it's invisible?

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 04:24
by Rast
duvessa wrote:This pales in comparison to what happens with autopickup, though: whenever a monster turns invisible or an invisible monster attacks in melee, autopickup turns off, and then it theoretically turns back on when the monster becomes visible or dies. This results in the player having to turn autopickup back on themselves half the time, since the monster became visible or died on a turn that it wasn't in LOS, or the player simply used stairs or something, and the interaction with multiple invisible monsters only gets worse. Even if you somehow magically fixed all the problems with the implementation disabling/enabling autopickup, you'd still be left with the fact that the behaviour is weird in the first place. The first time a monster went invisible and I saw "Deactivating autopickup", I thought I had accidentally pressed a key that deactivates autopickup, because why would an unspoiled player expect a monster to change their interface settings? I figured it out quickly, sure, but still, it's a jarring thing to encounter.


The fix for this to make is picking up (and dropping) items not take any turns.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 04:31
by duvessa
tabstorm wrote:How do you know where it is at all times if it hits you and then moves randomly until your next action, while it's invisible?
By attacking when it's adjacent and moving backwards when it's not, you make it very unlikely that it will wander out of position and can attack it every other turn. If it does happen to wander out of position then you only lost 1/2 an attack. This works with all terrain and with nagas. (Practice with see invis if it helps)

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 05:18
by Shard1697
Basically you swing until you hit it, then move backwards, swing, move backwards, swing, etc

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 05:31
by ion_frigate
What Shard said: batty monsters are not random in all of their movement, and tend to approach you. The "move back and attack" trick works entirely too well, and is pretty spoilery.

That being said, a good question to ask is: why do unseen horrors "work" for so many players? Is it just because they're an early invisible monster? I don't think that's it entirely - for one thing, orc wizards appear earlier.

I think a large part of it is simply that they are very flavorful, in a way that's a lot more natural than other "flavorful" monsters. A monster whose only indicator of its presence is a string of "It hits you. It just misses you" messages, and a monster that isn't always where you expect it to be - this is actually like something out of a horror movie, and it works very well on that level. It's one of the few cases of a monster that uses the game's mechanics (as opposed to, say, a name, description or tile) to create a nice evocative effect.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 05:35
by ydeve
ion_frigate wrote:What Shard said: batty monsters are not random in all of their movement, and tend to approach you. The "move back and attack" trick works entirely too well, and is pretty spoilery.

That being said, a good question to ask is: why do unseen horrors "work" for so many players? Is it just because they're an early invisible monster? I don't think that's it entirely - for one thing, orc wizards appear earlier.

I think a large part of it is simply that they are very flavorful, in a way that's a lot more natural than other "flavorful" monsters. A monster whose only indicator of its presence is a string of "It hits you. It just misses you" messages, and a monster that isn't always where you expect it to be - this is actually like something out of a horror movie, and it works very well on that level. It's one of the few cases of a monster that uses the game's mechanics (as opposed to, say, a name, description or tile) to create a nice evocative effect.


Brogue's phantoms are more like the monster you describe. They hit hard out of nowhere and can quickly kill you. Crawl's invisible horrors are more like real life mosquitoes. If you aren't spoiled, they keep biting and annoying you while you futilely try to swat them, but they don't actually do anything unless you're dumb enough to sleep exposed and naked in the middle of the forest.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 06:12
by ion_frigate
Okay that is a valid point. When I was first starting out (i.e. exposed and naked in the forest) they were quite evocative, and that's always kind of stuck.

Also, this was 0.4 or 0.5, and I did not know to put on the first heavy armour I found, so I think they genuinely were a bit more dangerous.

As for Brogue's phantoms, I always found them slow and predictable, more akin to NetHack's invisible stalkers, albeit with the ability to actually do significant damage.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 07:09
by Hurkyl
I started with SpEn, so unseen horrors were just a large pink chunk of exp with no danger attached.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 08:48
by Psieye
I believe the mechanical crux of what we want to save in Unseen Horror is "a melee monster has gotten close to you before you noticed". Well then, how about a monster that instantly blinks to melee range as soon as you see it?

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 10:34
by Sprucery
duvessa wrote:I don't think shadows, shadow wraiths or sky beasts actually need invisibility.

Do you mean that shadows would stab as hard even when visible? This would make them a lot more dangerous.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 13:31
by ion_frigate
One potential re-working of monster invisibility would be to make it behave like it does in the Elder Scrolls games: an invisible monster is *absolutely* undetectable if you don't have SInv (meaning none of the silly stuff mentioned in the OP is allowed), but once it attacks, it becomes visible. It would make sense for monster stabbers to behave like this.

The two types of invisibility (permanent, one-time) could certainly coexist.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 13:35
by dpeg
ion_frigate: Interesting! We should at least try this on Maurice.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 13:40
by VeryAngryFelid
duvessa wrote:By attacking when it's adjacent and moving backwards when it's not, you make it very unlikely that it will wander out of position and can attack it every other turn. If it does happen to wander out of position then you only lost 1/2 an attack. This works with all terrain and with nagas. (Practice with see invis if it helps)


Then I am not sure why you are saying that most players don't know how batty works, I always was fighting this way with bats and I suspect most other players too.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 13:55
by njvack
ion_frigate wrote:One potential re-working of monster invisibility would be to make it behave like it does in the Elder Scrolls games: an invisible monster is *absolutely* undetectable if you don't have SInv (meaning none of the silly stuff mentioned in the OP is allowed), but once it attacks, it becomes visible. It would make sense for monster stabbers to behave like this.

The two types of invisibility (permanent, one-time) could certainly coexist.

I like this, except that I think SInv should no longer exist in this case. If monsters are supposed to be invisible to present a special kind of challenge, it's silly that you can put on a hat that just makes it not a thing anymore. Or at very least, SInv should be moved to a consumable — a Potion of Detection or a Scroll of Divine Light or something.

Totally agree with the OP; I'd add that invisible monsters' interaction with EV (but not AC) is really frustrating. EV is fine as a defense most of the time except for one or two monsters who get to basically ignore it unless you have the magic item that makes them not ignore it.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 13:56
by infinitevox
dpeg wrote:I think Unseen Horrors are actually worth saving, and could be saved by showing "unseen monster around" whenever one is in LOS. That's interface-heavy, but it'd be alright for a single monster (and a unique or so).


And please leave Sigmund his invis. That scary motherfather is a unique, so him having a "unique" ability doesn't seem outlandish at all.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 14:01
by dowan
unseen horrors not being octopode assassins would be nice. I suppose they probably kill felids pretty well too, but at least felids are fast. An unseen horror on a pre-lair octopode is an instant tp scroll use, assuming you have one.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 14:12
by VeryAngryFelid
Felids see inv.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 15:01
by goodcoolguy
The confusion is what makes Sigmund dangerous though. Invisibility is just a reminder that you're supposed to be running away.

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 20:35
by dowan
VeryAngryFelid wrote:Felids see inv.

Oh right. Shows how often I play felid...

Re: A practical argument for removing (monster) invisibility

PostPosted: Wednesday, 5th October 2016, 22:03
by prozacelf
ion_frigate wrote:One potential re-working of monster invisibility would be to make it behave like it does in the Elder Scrolls games: an invisible monster is *absolutely* undetectable if you don't have SInv (meaning none of the silly stuff mentioned in the OP is allowed), but once it attacks, it becomes visible. It would make sense for monster stabbers to behave like this.

The two types of invisibility (permanent, one-time) could certainly coexist.


I have in the past mentioned that a mechanic like this would work for "stealth monsters," although I don't know if I put forth the idea that they should automatically be visible with SInv. I definitely mentioned that this would open up some design space for monsters that could stab but were otherwise weak without having SInv be the cureall to deal with them.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 01:29
by edgefigaro
Ghost Moths present significant challenges for certain characters as well. I am currently running a VpSu that has a terrible time with them, to the point where I went to shoals because it was easier doable. I can see invis, but my only minion that can fight them is my K9. Fat lot of good my spellforged servitor does.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 08:50
by stickyfingers
Vampires generally have terrible time in Spider, due to lack of blood, and thus, healing. And ghost moths' danger level is only mildly affected by their invisibility, since they announce their arrival with "Something is watching you" line.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 18:24
by Lameador2
dpeg wrote:ion_frigate: Interesting! We should at least try this on Maurice.


It might make sense, maybe as a different invisbility

I think that the current invisibility is somewhat interesting. Do you wnat to sacrifice resources, such a sa Ring Slot, to Get SInv ?

That is IMHO interesting

And invisible monster reward positioniing in a corridor, which is an interesting tactic. I don't mind the current invisbility, to be honest. Same as I miss a very specific subset of monsters having hidden health, or hydra's behading mechanics. This gives color to and flesh to the game.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 18:43
by njvack
Lameador2 wrote:[
I think that the current invisibility is somewhat interesting. Do you wnat to sacrifice resources, such a sa Ring Slot, to Get SInv ?

That is IMHO interesting

And invisible monster reward positioniing in a corridor, which is an interesting tactic. I don't mind the current invisbility, to be honest. Same as I miss a very specific subset of monsters having hidden health, or hydra's behading mechanics. This gives color to and flesh to the game.


The sacrifice isn't really much of a sacrifice, because ring swapping is very fast and inventory is plentiful. Get it on a hat? Well, you probably don't have a better hat anyhow.

And very nearly every monster in Crawl rewards hanging out in corridors, making one that rewards it even more doesn't help much.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 18:47
by njvack
ion_frigate wrote:One potential re-working of monster invisibility would be to make it behave like it does in the Elder Scrolls games: an invisible monster is *absolutely* undetectable if you don't have SInv (meaning none of the silly stuff mentioned in the OP is allowed), but once it attacks, it becomes visible.

Thinking about this more... how would it actually work? Would invisible monsters be able to pass through creatures? Otherwise you'd be able to detect it through the movement of visible monsters.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 18:48
by duvessa
he's basically suggesting that monsters should get summoned next to you sometimes while you're exploring/fighting near unexplored territory

because there isn't enough luring in the game yet I guess

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 19:04
by njvack
Yeah, I guess that's how you'd actually implement it? Monster gets summoned next to you, gets a free extra-hard hit, is then a regular monster. I was imagining you'd need to see them go invisible... but then you have the whole "monsters take up room" problem.

It might be kind of frustrating because it would mean "if you're ever at low enough health that one of these guys can kill you, you might just die from something you can't see" which is basically a blade trap that can hit you while you're standing still.

Luring doesn't even save you because monsters can spawn whenever...

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 19:07
by VeryAngryFelid
I think it would result in players using potions of heal wounds at low HP even with no monsters in view. Not a bad thing probably.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 19:09
by duvessa
I'm not talking about "how you'd actually implement it". I'm talking about the effect of this proposed system in gameplay, regardless of how it's implemented. If you can't see or interact with the monster then it's like it doesn't exist yet and is just getting summoned next to you.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 19:11
by Siegurt
But.... what about monster invis giving them immunity to OTR? ;)

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 20:46
by jwoodward48ss
Just have MonInvis be an Ev boost like PS was. Done. Still gives Invis monsters a buff, you can keep sInv if you like (like rCorr, it'd be useless for most of the game, though), still has decent flavor, but no interface screw.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 20:58
by phloomp
An ok substitute for ion_frigate's substitute for invisibility would be ambushes: a bunch of enemies are spawned around the edges of LOS, or spawned just outside it but heading towards your square.

(Off topic, but if this was implemented you could make it trigger on seeing the iron rune and replace the non-ambush on V:$)

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 22:34
by ion_frigate
duvessa wrote:he's basically suggesting that monsters should get summoned next to you sometimes while you're exploring/fighting near unexplored territory

because there isn't enough luring in the game yet I guess


The more I think about it, the more these do just kind of seem to be blade traps by another name, albeit with better flavor. So here's a suggested revision:

See Invisible becomes a property purely gained from consumables. Deeper bands of monsters can have stealth monsters hiding in them. If you cannot see invisible, they are only revealed (and only attack) upon your killing one randomly-chosen member of the band (it doesn't matter if you're adjacent to said monster when you kill it). If you can see invisible, they are instead normal and relatively weak melee monsters. If your SInv runs out before killing them, they behave like normal invisible monsters (or just stay visible).

That way, these monsters only attack when you're already in combat, i.e when it's likely to matter. Furthermore, the player can have a reasonable suspicion of their existence, and if they don't feel confident that they can take a sudden, nasty blow, they can choose to use a consumable to mitigate the danger.

EDIT: Oh, and I am proposing that there would be a different stealth monster for each band (e.g. orc sneaker, shadow troll, vault assassin, etc). The monsters' names and descriptions could make it obvious how they work.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 23:23
by duvessa
That sounds awfully complicated.

Re: A practical argument for removing (monster) invisibility

PostPosted: Thursday, 6th October 2016, 23:53
by Hurkyl
duvessa wrote:That sounds awfully complicated.

Although the mechanic looks complicated, it's not obvious to me that the gameplay effect is complicated.

Re: A practical argument for removing (monster) invisibility

PostPosted: Friday, 7th October 2016, 01:07
by ion_frigate
Hurkyl wrote:
duvessa wrote:That sounds awfully complicated.

Although the mechanic looks complicated, it's not obvious to me that the gameplay effect is complicated.


Yeah, that's the idea. To the player, it's a matter of "Sometimes monsters pop up and stab me when I fight orc/deep troll/yaktaur bands. SInv prevents this." The behind-the-scenes mechanics do need to be a bit more complicated, because the "simple" implementation (invisible monsters as we have them now, with added stabbing bonuses) leaves way too many silly options available for dealing with it. We don't want to make it (even more) optimal to always lure bands into corridors, or to always use area-effect spells on them, or even worse, to closely monitor their movements to watch for 'missing' monsters.

Yes, it's strange that a player property (SInv) can effectively cause a monster to be "created," but that's more of a flavor issue than a gameplay issue to be honest. The monster stealth can be flavored as some sort of "phasing cloak" or "dimensional shift", and SInv can be reflavored as some sort of "piercing perception" that dispels it (or any number of other possible explanations).

The one change I might make would be this: the stealth monsters should attack when one monster in the band takes some (random) amount of damage from the player. That makes it even harder for the player to predict the stabbing attack, which is a good thing. If by some chance the monster dies from something other than the player or a player summon, the trigger just moves to another monster in the band. Only if the entire band is indirectly destroyed is the stealth monster lost that way.

Re: A practical argument for removing (monster) invisibility

PostPosted: Friday, 7th October 2016, 01:19
by Shard1697
Sounds like I would want to separate packs quite a bit more than normal.