PC So I decided to track Sleeper volumes in Poi's and how many are ambushes.

I think they definitely made a stylistic choice about the hidden zombies. Part of the issue they are trying to overcome is the problem of zombies popping into view when you cross a threshold. They have limits to how many zombie entities can be active at once and they try to keep it under control by only spawning zombies as needed while you proceed down the One True Path in a POI. When you enter the living room and trigger the sleeper volume, they don't want Zs to suddenly appear so they hide them behind boxes, in closets, in the ceiling, etc.
I wonder if it's an issue of trying to handle the AI of too many zombies pathfinding their way through the building and making decisions as they go? Maybe they could work around that by making the AI the thing that 'pops in.' Basically, set each zombie a really basic circular path or whatever and then once the player reaches the trigger point they could start running more complex AI. I get the impression something like this happens in a lot of open world games where entities don't seem very dynamic until they are in some way targeting you or another NPC.

The game is still great regardless but as it is I find wandering through city streets to be much more dynamic and interesting gameplay... but with worse loot and no trader rewards.

 
Last edited by a moderator:
Not if it turns out that most of them aren't actually ambushes. I know you want to diminish my conceptual argument about aware vs unaware enemies
From what I could tell they're not arguing aware vs unaware, but the actual way the zombie locations have been placed and toggle from static or spawn in, regardless of them being aware/attack or unaware/investigating active.  Aware "ambush" vs unaware "ambush" really doesn't matter if the "ambushes" are so common that they can be reasonably expected to be present in the gross majority of the POIs.

 
Last edited by a moderator:
I advocated for roaming zombies in this very thread and it seems like you're conveniently ignoring that.  Unfortunately there *aren't* roaming zombies in PoIs, unless you count the ones on the street who come to investigate the PoI after you go in.  You have sleepers in obvious places, and then you have sleepers set up for jump scares.  And I expect that most players would never know that the jump scare zombies technically don't know you're there, because intuitively when a zombie jumps out of a closet at you the moment you pass by you're going to assume it knows you're there and you're going to react accordingly.  But also, like BarryTGash says, when everything is an ambush, nothing is an ambush.  The jump scare/ambush/whatever you want to call them are cheapened because they're constant.  You don't get a break from them in PoIs and it just feels sloppy and messy, like the devs knew they wanted to put in some scares so they just took the paintbrush and swiped it all over everything.


Keep in mind there are several level designers and we do discuss combat pacing.  We also discuss not over using specific setups so if you have specific POIs in mind, I encourage you to report them so we can take a look.

For example, I think in A19 someone reported that one of the fire stations had too many attack volumes and it was eventually adjusted once the designer reviewed the feedback.

 
From what I could tell they're not arguing aware vs unaware, but the actual way the zombie locations have been placed and toggle from static or spawn in, regardless of them being aware/attack or unaware/investigating active. You're the one stuck on the  Aware "ambush" vs unaware "ambush" really doesn't matter if the "ambushes" are so common that they can be reasonably expected to be present in the gross majority of the POIs.


lol....I'm stuck on it because it matters if you are playing stealth. It certainly should matter to you. Your biggest beef with the attack volumes were that the player was forced out of stealth. I argued back then that we could retreat and hide until stealth was reacquired and then return but your counterpoint to that was that stealth had been broken for no fault of the player and the game shouldn't do that or it invalidates the points spent.

Now it looks like stealth isn't being broken. We just have some active zombies who fall through a ceiling near us or stumble out of a closet near us but they aren't aware of us. So the game DOESN"T automatically break stealth and our points aren't invalidated and we have a better variety of stealth gameplay now.  But you still are not happy with it and it really pushes someone like me to start wondering if you guys simply really do just want sleeping enemies to shoot at, period. 

That's why I'm stuck on the aware vs unaware question. Why aren't you? Why aren't you celebrating that it looks like stealth points are being honored? Is the appeal of shooting immobile targets that seductive?

doesn't matter if the "ambushes" are so common that they can be reasonably expected to be present in the gross majority of the POIs.


And yet....sleeping zombies being so common that they can be reasonably expected to be present in the gross majority of the POIs is considered heaven...?

I'll stop now. I've made my point and am now belaboring it. If it is simply that you don't like it that a lot of zombies are waking up now in POIs and the fact that they crash out of ceilings and closets is annoying, then you don't like it. Fine. You guys keep talking about spawn placements and how zombies waking up all over the place is so horrible because there was no opportunity for the player to shoot them before they could wake up. I'm going to go test the game more and see exactly how often I can remain in stealth against enemies that are way more interesting than snoozers. 

 
Last edited by a moderator:
I think they definitely made a stylistic choice about the hidden zombies. Part of the issue they are trying to overcome is the problem of zombies popping into view when you cross a threshold. They have limits to how many zombie entities can be active at once and they try to keep it under control by only spawning zombies as needed while you proceed down the One True Path in a POI. When you enter the living room and trigger the sleeper volume, they don't want Zs to suddenly appear so they hide them behind boxes, in closets, in the ceiling, etc.

Ideally, a POI would be fully populated (with a mix of roaming, sleeping, and a few hidden) zombies before you enter it, but I dunno if that is technically feasible. It does look like some of the POI rework has tried to address it. In an earlier thread where we looked at an Army Camp POI, it sure looked to me like there was one big sleeper volume covering the entire camp, so that as soon as you entered the POI all of the Zs would spawn (inside tents or otherwise hidden) so that you could approach any area from any direction and not see pop-ins. Probably that sort of technique is required for an open-landscape POI like the army camp. In building-based POIs, TFP seems to have decided (maybe due to those technical limitations) to spawn zombies in as-you-go, and rely a lot on closet and ceiling zombies to obscure the moment they are spawned.

Laz Man said that they are trying to find POIs where zombies pop in and fix them, which implies that the "populate the entire POI as soon as I step foot on it" is not an option. They're trying to fix room-by-room issues, meaning our almost-always-hidden zombie occupants are the norm going forward. It could be that TFP really would prefer the more organically-populated POIs like we've described, but it's not technically feasible. Or if feasible, too costly to recode everything and rebuild the POIs so...closet zombies it is.


In my opinion monster closet phobia is a result of older Alpha limitations at the time just like how back in the day almost every picture frame had hidden loot behind them.

Although I dont believe they will go away completely the team has many more options to vary the experience.

Personally, I try to setup multiple spawn locations per volume so each play through is not exactly the same.  I also mixup my sleeper placement so some are exposed while others are not so observant players have stealth opportunities.

 
Aren't wandering sleepers still on the table for a21? I don't know the exact implementation obviously, but it if works how you think it would I'd bet the majority of volumes would change to use that. Or at least they should. 

I think that would make things a lot better. 

 
Last edited by a moderator:
There's talk of "wandering" vs "ambush" or some such.. I have an issue with describing something as "wandering" when it instantly breaks something that is clearly one-time use obstacle. If it's pretending to be a "patrol", have the behaviour limited to the ones who can activate without "breaking out."

There's no suspension of disbelief sufficient for "it happens to break out from its hidy-hole exactly now" combined with "it happens to wander to the exact spot the player was when it broke" .. If the difference between "ambush" and "not ambush" in only seen in an aggro-tag only visible via DM, then ... distinction without difference.

 
There's no suspension of disbelief sufficient for "it happens to break out from its hidy-hole exactly now" combined with "it happens to wander to the exact spot the player was when it broke" .. If the difference between "ambush" and "not ambush" in only seen in an aggro-tag only visible via DM, then ... distinction without difference.


It was only two examples and apologies if you're referring to some specific POI which does this, but the tests above show that they often don't break out at predetermined times and are in fact quite happy to stay 'sleeping' in their hidey holes until the stealthy player chooses to break/open the concealment. And they often stay sleeping even after that. The only time they will walk towards where you are is if they detect a noise <where you were standing>; they don't necessarily detect *you* right away. Stealth.txt has the deets.

In my tests, only twice (out of 10 or so sleepers) did the zombie lock onto me. Once I stepped on trash and didn't back away fast enough and the other...I dunno exactly what happened. Maybe too much light from the kitchen? In two cases, zombies walked right past me after stumbling out of their hiding spots. Clearly they heard something in my vicinity and came to investigate, but never did see me just 2m away. I think it's easy to interpret the 'investigating' phase as a GPS lock, but keeping calm and scooting back into shadows can save the encounter. Basically, I think there are no auto-aggro rooms like we had in A19. Instead, it works as described in stealth.txt, and a skilled stealthy player can defeat the jump-scare hiding zombies.

I'm not arguing against a more organic wandering/patrolling zombie idea. I think that would be great.

 
I poked into the code a bit more and...well, there's a lot, but I think it jibes with the idea of "sleepers do not auto-attack players". Even for sleeper volumes marked "attack" in the POI design. What seems to happen with "attack" volumes is that the zombie gets a sort of freebie check to see if it can see the player. If it can see the player, then it will attack. If it can't, it may still investigate a noise and head your way.

Passive and Active volumes don't get that 'freebie' check to see you. They would have to turn your way and see you normally I guess.

For the code-inclined, here's what I found:

In SleeperVolumes.cs there's a "CheckTouching" method which appears to detect when the player is touching a volume. The important part is highlighted in orange.

public void CheckTouching(World _world, EntityPlayer _player)  {
    ... 
    else if (etriggerType == SleeperVolume.ETriggerType.Attack && <bunch of math>)
      this.TouchGroup(_world, _player, true);

The TouchGroup method just iterates over all the sleeper groups and calls Touch() on them. This is where the zombie gets its 'freebie' chance to see the player:

bool flag = trigger == 2 ;  -- this will be 'true' on an "Attack" sleeper, which is trigger type 2
foreach ([zombie in the volume])
{ ...some irrelevant stuff snipped...
    if (flag && _player.Stealth.CanSleeperAttackDetect(entity)) -- if it's "Attack" and the sleeper can detect the player...
    {
      entity.ConditionalTriggerSleeperWakeUp(); -- wake up
      entity.SetAttackTarget((EntityAlive) _player, 1200); -- set the player as the attack target
    }
    else  -- either not "Attack" or can't see the player
      entity.SetSleeperActive(); -- go into Active mode
  }

Finally, the CanSleeperAttackDetect() method uses light and distance to check whether the zombie can see the player:

  public bool CanSleeperAttackDetect(EntityAlive _e) -- the 'e' variable here is the sleeper zombie
  {
    if (this.player.IsCrouching) -- you gotta be crouching...
    {
      float num = Mathf.Lerp(3f, 15f, (float) (((double) this.lightAttackPercent - 0.349999994039536) * 1.53846156597137));
      if ((double) _e.GetDistance((Entity) this.player) > (double) num)
        return false;  -- bunch of math above determines if we reach this 'false' return (sleeper can't detect you)
    }
    return true;  -- not crouching? sleeper will auto-detect you
  }





 
Last edited by a moderator:
I think it's easy to interpret the 'investigating' phase as a GPS lock, but keeping calm and scooting back into shadows can save the encounter. Basically, I think there are no auto-aggro rooms like we had in A19.
I don't really disagree with anything you've laid out there; I was just pointing out that it doesn't really make any difference to the experience whether a zed is walking to me or to the spot under my feet. You'll have to maneuver like you have agro anyway, unless you're willing to risk getting pummeled.

 
I don't really disagree with anything you've laid out there; I was just pointing out that it doesn't really make any difference to the experience whether a zed is walking to me or to the spot under my feet. You'll have to maneuver like you have agro anyway, unless you're willing to risk getting pummeled.
To differentiate between "a zombie woke up, but doesn't detect you" vs "a zombie woke up and actively coming after you", what if instead of walking to the exact spot the player was at, there is a little variation to their behavior when the player is undetected?

For example maybe if they don't detect the player when they wake up, then have them go in whatever direction the zombie is already oriented in, or whatever direction they end up facing when they get up (if they are laying down). Say the zombie is north and looking towards the south, if the player is west of the zombie when it wakes up, the zombie would continue straight south, rather than going west towards the player. (there might be cases where the zombie needs to consider boundaries so it won't walk off a roof though)

Or instead of going straight for the block the player was at, have them wander towards a block that is X number of blocks to the left/right of the player's block, so still in their general direction, but you may be able to tell that they are veering slightly off course. (Maybe they got distracted by that shiny humming refrigerator)

At least that way, if the player sees that the zombie woke up, but is not honing into their location, they can determine that it is not actively coming after them.

 
To differentiate between "a zombie woke up, but doesn't detect you" vs "a zombie woke up and actively coming after you", what if instead of walking to the exact spot the player was at, there is a little variation to their behavior when the player is undetected?

For example maybe if they don't detect the player when they wake up, then have them go in whatever direction the zombie is already oriented in, or whatever direction they end up facing when they get up (if they are laying down). Say the zombie is north and looking towards the south, if the player is west of the zombie when it wakes up, the zombie would continue straight south, rather than going west towards the player. (there might be cases where the zombie needs to consider boundaries so it won't walk off a roof though)

Or instead of going straight for the block the player was at, have them wander towards a block that is X number of blocks to the left/right of the player's block, so still in their general direction, but you may be able to tell that they are veering slightly off course. (Maybe they got distracted by that shiny humming refrigerator)

At least that way, if the player sees that the zombie woke up, but is not honing into their location, they can determine that it is not actively coming after them.


Well, for one thing that isn't how the AI works. They go to the last spot they heard the player make noise. You can see this very clearly if you go out at night and shoot an arrow at a zombie and hit it but don't kill it. Take five steps to the left from where you shot the arrow and remain crouched and the zombie will run to where you were and not to where you are now. I think that if zombies just started moving in whatever direction they were facing whenever they heard a noise instead of moving in the direction of the noise that would really detract from their general behavior.

Much easier is for players who come to know the truth about zombie behavior to adapt their own behavior for advantage. As soon as a zombie crashes out of its hiding place, move quickly crouched away from where you were when they came out. You will see them go to your old location and not towards you-- unless they do in fact detect you. I would even say that learning to get good at this reactionary dodge and crouch maneuver is worth the occasional time you may get hit first by the zombie. There will be times you think you are hidden but aren't and couldn't quite tell if it knew where you were but with practice it will get better.

In A19 when there actually were attack volumes you could still retreat and hide and many times the zombies would forget about you before they found you and you could then return and stealth kill them. For me, that became an actual player stealth skill (as opposed to a purchased character stealth skill) and felt quite rewarding. I think this new situation could also come to feel rewarding to those who develop the actual player skill of maintaining stealth.

@theFlu says there is no functional difference between a zombie that is unaware of the player but walks right to where they heard the noise under the player's feet and a zombie that is aware of the player and targeting them. That is not technically true because in the first case (again easily testable at night out in the open if the close quarters of indoors is too worrisome) if the player moves away from that spot the zombie won't follow them and will ignore them, while in the second case the zombie will follow the player until the player has been out of view for a specified amount of time. Of course if the player exhibits poor stealth skills and doesn't move away immediately from that spot then there is a good chance the unaware zombie will quickly change to aware anyway.

 
Last edited by a moderator:
This whole aware vs unaware phase sorta gives me metal gear solid vibes when the enemies had question marks over there heads when they were alerted but not fully aware of the players presence lol...

Maybe we need question marks and exclamation marks over the zombies heads lol....

ggPzZ9x.gif

 
Make throwing rocks trigger ambushes without alerting them to your location.

Ambushes can be triggered now but stealth still works, only instead of having to snipe motionless sleeping zombies and getting free hits you have to kill moving zombies that could alert to your location.

I honestly think stealth players have had it too easy for too long, shooting the door off a cupboard and watching a zombie stand there motionless when a door just burst into splinters right in front of his face is silly.

There is a state between sleeping and hunting you down that needs to be used more.

Zombies should be awake more often in houses and not just be in a situation where they are either actively hunting you down through a wall with gps or sleeping till you step on them.

Asleep > Awake > Alert.

Currently its either asleep or alert, we need a lot more of 'awake' where zombies are docile but active! There is a lot of gameplay potential surrounding that state, like luring zombies out of a room for a stealth kill or having to aim at a moving target instead of a stationary one or having a zombie sneak up on you or trying to avoid a 'patrol' and sneak past them.

Hell the actual 'asleep' zombies would be much more fun if you went to kill the single zombie standing in a room and the rest burst from the walls. Or trying to sneak past and they slowly burst out one by one. 

 
Maybe we need question marks and exclamation marks over the zombies heads lol....


or......I dunno....an eye that opens and closes depending on whether the player is hunted or not. There was a game that had that once....

 
@theFlu says there is no functional difference between a zombie that is unaware of the player but walks right to where they heard the noise under the player's feet and a zombie that is aware of the player and targeting them. That is not technically true because in the first case (again easily testable at night out in the open if the close quarters of indoors is too worrisome) if the player moves away from that spot the zombie won't follow them and will ignore them, while in the second case the zombie will follow the player until the player has been out of view for a specified amount of time.
Indeed, we agree, there's a technical difference. One that you can (possibly) see having the AI data displayed.

Functional difference?

in case one) zombie moving towards you, you need to move away or it attacks you.

in case two) zombie moving towards you, you need to move away or it attacks you.

After you've moved away, you sometimes find out that it doesn't follow you. That's a slight plus whenever it happens, you'll save 20 secs from your normal agro-dropping routine. Not exactly a functional difference though.

And we're talking sleepers here, "ambush", remember. Testing the feature outdoors to see the difference... functional difference; the difference is so great that I can't test it in the environment I'm supposed to use it?

I know I can throw rocks and gather a pile of zeds outdoors, but throwing rocks at heads of sleepers does very little. Mostly reduces the rock counter on my tool belt by one.

 
in case one) zombie moving towards you, you need to move away or it attacks you.

in case two) zombie moving towards you, you need to move away or and it attacks you.


Fixed that. The main difference is that in case one if you move the zombie does not move towards you and doesn't attack, and in case two if you move the zombie still moves towards you and attacks. That is a big difference you are glossing over. Sure, you as the player move in both cases but the outcomes are so different, it is blatant.

After you've moved away, you sometimes find out that it doesn't follow you. That's a slight plus whenever it happens, you'll save 20 secs from your normal agro-dropping routine. Not exactly a functional difference though.


That is simply indicative that you did not react fast enough or perhaps the room did not have enough shadows. If you freeze up when it happens and wait for the zombie to move towards you and then you move the zombie will likely follow. But if you crouch and move while it is still ragdolling then it isn't just "sometimes".

And we're talking sleepers here, "ambush", remember. Testing the feature outdoors to see the difference... functional difference; the difference is so great that I can't test it in the environment I'm supposed to use it?


I suggested doing it outside first because it is an easier environment to witness the behavior. You don't have to think fast and react quickly. You can set up the shot and shoot them from a distance and move aside and see how they go to where you used to be and not to where you currently are. Then, you can start practicing it indoors. I never said you can't test it indoors...lol. You put those words in my mouth. I said practice makes perfect and you know I meant reacting to actual interior locations.

I know I can throw rocks and gather a pile of zeds outdoors, but throwing rocks at heads of sleepers does very little. Mostly reduces the rock counter on my tool belt by one.


Again, you throw the rock while they are ragdolling not while they are still asleep. Sorry for the confusion.

 
The main difference is that in case one if you move the zombie does not move towards you and doesn't attack, and in case two if you move the zombie still moves towards you and attacks.
You have to react to either type by moving. Moving will drop agro.

Wait, is that it - do you know that when an agroed zed no longer sees you, it will also drop the chase? Even stealth is sufficient for this, line of sight is more certain of course. Shoot a zed in the night, scoot 5-10 meters, watch the agroed zed run towards where you stood before and stand there. Even after taking a hit. I'm testing this right now - I just took a hit from a Feral Arlene (so definitely agroed), ran ahead of her for 10 meters and crouched right in front of her. Intuitively I was too close for her to stop, but she actually stopped her chase right in my face. At the pause menu showing AI as "Alert 4.90, canBrk, 1 Look, wait 1.6"

A20.1 (b6)

 
You have to react to either type by moving.
Yes but there are two parties involved in the scenario and the zombie behavior is different for each and at least as important as the player behavior. You are correct, though, that in both cases the player moves. 

Wait, is that it - do you know that when an agroed zed no longer sees you, it will also drop the chase? Even stealth is sufficient for this, line of sight is more certain of course. Shoot a zed in the night, scoot 5-10 meters, watch the agroed zed run towards where you stood before and stand there. Even after taking a hit. I'm testing this right now - I just took a hit from a Feral Arlene (so definitely agroed), ran ahead of her for 10 meters and crouched right in front of her. Intuitively I was too close for her to stop, but she actually stopped her chase right in my face. At the pause menu showing AI as "Alert 4.90, canBrk, 1 Look, wait 1.6"

A20.1 (b6)
A zombie that is alert and aggroed but can’t see you will not chase you. If you damage them or they heard a noise they will move to the spot you were at when the event that alerted them happened but they are not chasing you and yes, if you crouch in darkness they will stop very nearby without noticing you. A zombie that is alert and aggroed and can see you will chase you and not give up until a certain amount of time passes once you are out of their view. This is the behavior that can be exploited even indoors. 

 
the zombie behavior is different for each
Could you explain that part to me, like I'm five?

Falls out of closet

Runs to sound-origin

Once there, attacks the player if player's current stealth isn't sufficient to prevent it

Which is this, and what is the other?

EDIT: I didn't see your latter para, I think you added it in after I opened. But honestly I still don't see the difference. What you describe there is dependent only on the question "does the zed see me currently" - which is a stealth check.

 
Last edited by a moderator:
Back
Top