Changes to scent, zombies, zombie dogs, noise, and hiding in town

That’s uncalled for, it’s obvious I was typing it out in parallell.

Notice winky emoticon, I was just kidding with you. But yes, I agree, I thinking having it cut out both ends is the obvious “easy” solution to creating more interesting behaviour for the creatures with a sense of smell that is less than perfect.

Here’s my two big problems with the current actual scent system itself (as opposed to how monsters follow it).

  1. Scent dissipates too quickly from a single location. While you might be able to smell me from a meter away, as the game currently models scent dispersion I can run through an area and I’m actually bringing along a 30m diameter circle behind me of scent.
  2. Scent decays too quickly. As is my path is gone completely within about 30 seconds after I run through an area.

Basically I’d like a skinnier trail with slower decay. If we add in wind this could allow for dispersion in a given wind direction, but as is the game’s windless, and dispersion is way too large.

Ok, it’s kind of a CPU hog anyway, I might look at only updating a chunk of it at a time, which will spread out dispersion events AND lower CPU usage.

I’m thinking of tiling the scent area into 9 regions, like so:
123
456
789
The player is in area 5.
Each turn, area 5 and one of the perimiter areas has dispersion run on it. A full sweep takes a bit less than a minute in-game. The reason I’m chunking it up like this is there’s a bunch of checking of adjacent squares happening, chunking like this should help with cache locality. Alternately we could do two perimiter chunks at a time opposite each other.

This. A ‘scent’ ability that defines a huge cloud of aggro that surrounds you in all directions and which infallibly leads scent-capable enemies to you (including through walls and such) is closer to telepathy. It’s certainly possible for wind to passively carry your scent forward beyond your position, alerting enemies you’ve yet to encounter… but since there’s no wind, that’s a weird abstraction. I’d rather have scent mostly just be a question of leaving a trail, with minimal diffusion. That way, enemies that have your scent will be able to follow your trail without much trouble, but you won’t aggro enemies in surrounding houses who haven’t seen or heard you.

  1. it does not go through walls. It goes through doors and closed windows, but even then is minimized.
  2. A trail is a totally different thing, without the cloud (narrower, slower spreading sure, but a cloud), zombies would not be able to find doors to bash on them, this is a key component of their AI.

I think something that the game isn’t taking into account is that you can’t really tell where a scent is going to be stronger. A dog can’t ‘see’ smells ten feet away from it. It has to go to that spot and smell it to see if it’s stronger. That’s why you see dogs sniffing back and forth, backtracking, checking different spots. They are trying to find where the scent is strongest. To do that they need to physically be in that location.

The only information a zombie or any other smelling creature should have is ‘what does the tile I am on right now smell like.’

Then simply have the zombie move until the scent is weaker (and then stop and move somewhere else) or stronger. They keep moving, avoiding weaker smells while seeking stronger smells. If the code can be put together to give the zombies a search pattern, then this should result in a faaairly realistic search behavior that doesn’t lead them directly to the player.

Basically, the zombie will remain in the strongest scent area that it can. It will not move to a weaker scent area unless it has exhausted all tiles it can reach without moving to a lower scent area. The zombie would also have the tendency to follow the path that is working the best for them. So if you run in a straight line, the zombie will probably not have too much difficulty following in a straight line behind you. but if you do large zigzagging maneuvers then it might take them significantly longer as each ‘turn’ would mess up their search pattern.

This could result in some interesting behavior where, due to decay, a zombie outside a house the player is not in, might end up breaking down the door to the house because he has already searched everywhere else and the door is the only tile left to check before he moves on.

This could well get very difficult. I have very, very minimal coding skill and I suspect that efficient, reliable search patterns can be quite complicated. But I thought I’d throw it out there nonetheless.

Here's my two big problems with the current actual scent system itself (as opposed to how monsters follow it). 1) Scent dissipates too quickly from a single location. While you might be able to smell me from a meter away, as the game currently models scent dispersion I can run through an area and I'm actually bringing along a 30m diameter circle behind me of scent. 2) Scent decays too quickly. As is my path is gone completely within about 30 seconds after I run through an area.

Basically I’d like a skinnier trail with slower decay. If we add in wind this could allow for dispersion in a given wind direction, but as is the game’s windless, and dispersion is way too large.

I think that someone was trying to actually imitate mist with current effect. While on the scale of nine, the last instance (the “1”) is the most blurry to actually track, and that matters for natural predators. As for my taste - this was no mistake; in fact it was interesting to play. The force_mist is gamewise inaccurate and absolutely wrong in real life; if we put the airflow out of the picture, we still have the mechanics behind the spreading of the person’s scent. For example, it would go around large fires, dissapear when about large masses of water and mainly stay still within closed spaces. You have to think of it from the tracking perspective because that is exactly how it works, like footprints - if you stay still for a while, the moist and air pockets keep it at bay for a duration of time, and the moist in the soil, grass and the rest of the flora encapsulates it also. Movement will leave trails perhaps, but not so different from the smokey puffs your vehicle leaves behind.

Hmm. GlyphGryph’s proposed system looks worthwhile. Would appreciate some sample critters marked, so we could get a better idea of comparative smellers.

Agreed that having smell spread less might help, though I’m wondering how changing the diffusion patterns might affect the “reality bubble” problem. In particular, does scent persist outside the bubble?

(Yes, I have had a Mk.48 Zombie follow me for multiple map squares at night. Would hate to have others pick up that trail!)

Umm… no. The sense of smell is literally the strongest sense that humans have. We can smell roughly one part of rotten meat to one million parts of air, and it’s one of the strongest memory triggers. Additionally, humans can tell when somebody is a blood relative to them based purely off of their sense of smell. Without it we can barely even taste. Scent helps us choose who we’re attracted to, and who we aren’t attracted to.

To put it shortly, you’re completely wrong.

This is rather off topic, but anyway: how precisely does one quantify the ‘strength’ of a sense? How well does proprioception score vs, say, OHSHITYOURHAND’SONFIRE?(thermoception)

Humans rely on vision. Sight. It’s what we use for just about everything we do, and even when we lose that we don’t start relying on smell- next up is touch & hearing, both of which already play huge roles in our lives what with manipulating things & communication, respectively.

This unlike a dog which can use smell to track objects or creatures, (and even then they rely on other senses for a great deal of their day-to-day activities).

The whole ‘memory triggers’ line just really has connotations of sensationalist tv programs/‘documentaries’ for me; imo, the notion you presented ignores obvious, practical realities and is possibly unrelated to the conversation, (Are you implying human zombies should track like dogs?).

In short, I disagree.

As for the scent mechanic, I agree with what’s been said: slower decomp, narrower & more persistent trail, larger difference between good and bad smellers.
I don’t think the search pattern will work, too process-intensive.

Somewhat related, a more complex AI as far as sight tracking goes would be nice- along the lines of hyena’s proposal. Maybe?

[quote=“TheNineRings, post:50, topic:3591”]Umm… no. The sense of smell is literally the strongest sense that humans have. We can smell roughly one part of rotten meat to one million parts of air, and it’s one of the strongest memory triggers. Additionally, humans can tell when somebody is a blood relative to them based purely off of their sense of smell. Without it we can barely even taste. Scent helps us choose who we’re attracted to, and who we aren’t attracted to.

To put it shortly, you’re completely wrong.[/quote]

This isn’t true. While scent is certainly a useful sense, it is not even remotely our strongest sense. The olfactory bulb is tiny in comparison to the parts of the brains that govern vision and audio sensory reception. If you look at other animals who do have a strong sense of smell, their olfactory bulb is much larger in comparison to their brain and the parts that govern other senses.

That said, smell is a much more primitive sense than vision or hearing, and it has a more immediate proximity (and thus connection to) the limbic system. Which is why scent can influence behavior in subtle and subconscious ways, and can rouse memories more easily than many other senses.

This does not, however, mean that our sense of smell is very strong. It is just good at what it does. This does not mean that humans are capable of tracking prey with their noses - we just don’t have the kind of relative processing power available in our olfactory bulbs to get such a fine-grained ‘scent map.’ We can detect bad food. But much of what happens is unconscious. Unfiltered information that is given directly to the limbic system and cannot be consciously processed.

I think all of this is moot point, however. Zombies are (essentially, unless I am mistaken) the result of selective mutation, and there’s no reason why the human olfactory bulb couldn’t grow and result in better olfactory sense.

I just think sight tracking might make for more interesting gameplay from a player’s perspective. Let the dogs be homing missiles. Zombies should be about hiding from sight and sound.

If I read the laboratory reports right, revivication is the result of extra-planar space-slime taking over control of the corpse once it stops moving. I get the impression it’s this same space slime that is responsible for mutagen, and is at least related to the blobs one sees elsewhere, if it’s not the same organism.

Regardless, whatever explains zombies and the various different special zombies that exist, can probably explain enhanced sense of smell.

I think that if this mutagen can make the human body spit acid, throw electricity, and generate smoke, it is probably capable of enhancing sense of smell also.

Whether or not smell should be used by basic zombies should be a gameplay issue, not a realism/lore issue.

The problem is that scent creates the "missile seeking behaviour" i2amroy described, where they find your exact position flawlessly, making hiding, evading, any sort of close-up-tension feeling impossible. I want to be able to hide from zombies and use the night to my advantage.

Wouldn’t slowing the Z down and reducing the scent radius remove the “missile seeking”?

[quote=“Hyena Grin, post:47, topic:3591”]I think something that the game isn’t taking into account is that you can’t really tell where a scent is going to be stronger. A dog can’t ‘see’ smells ten feet away from it. It has to go to that spot and smell it to see if it’s stronger. That’s why you see dogs sniffing back and forth, backtracking, checking different spots. They are trying to find where the scent is strongest. To do that they need to physically be in that location.

The only information a zombie or any other smelling creature should have is ‘what does the tile I am on right now smell like.’

Then simply have the zombie move until the scent is weaker (and then stop and move somewhere else) or stronger. They keep moving, avoiding weaker smells while seeking stronger smells. If the code can be put together to give the zombies a search pattern, then this should result in a faaairly realistic search behavior that doesn’t lead them directly to the player.

Basically, the zombie will remain in the strongest scent area that it can. It will not move to a weaker scent area unless it has exhausted all tiles it can reach without moving to a lower scent area. The zombie would also have the tendency to follow the path that is working the best for them. So if you run in a straight line, the zombie will probably not have too much difficulty following in a straight line behind you. but if you do large zigzagging maneuvers then it might take them significantly longer as each ‘turn’ would mess up their search pattern.

This could result in some interesting behavior where, due to decay, a zombie outside a house the player is not in, might end up breaking down the door to the house because he has already searched everywhere else and the door is the only tile left to check before he moves on.

This could well get very difficult. I have very, very minimal coding skill and I suspect that efficient, reliable search patterns can be quite complicated. But I thought I’d throw it out there nonetheless.[/quote]

I like this idea, it will make smart movement more rewarding and a more tactical approach much better. Also this can potential create some interesting strategies like pile up your old clothing to make a smell distraction (similar to the proposed noise distraction) or confuse zombies with strange smell, I don’t know whether this can be very difficult to code though.

Not 100% on acid or smoke, but I’m fairly certain the electricity is more to do with CBM stuff than mutation.

Prototyping this now on this branch: https://github.com/CleverRaven/Cataclysm-DDA/pull/3818
So far I’ve capped the upper threshold and reduced regular sensitivity.
Making zombies without KEENNOSE hesitate a bit will be trivial, just ran out of time.
Redoing the scent diffusion for a narrower scent plume will likely take a bit longer.

Wow! When the whole stealth mechanics come together with a reworked stenchine, it will be 100 times more intense and fun to sneak through the cities!

Sorry it was such a slog to drag the actual requirements out of us, Kevin - glad to see you working on a solution, though.