Hordes of zombies. Balance

[quote=“Goombah, post:37, topic:5388”]I would see Hordes as coming from the edge and going towards noises. That’s thematic for zombie stories.

Making them static would sort of defeat the point of adding them, IMO.[/quote]
Coming from the edge of the map is dynamic, yeah, but once they are on the overmap itself they are static entities that are tracked (as opposed to randomly spawning into existence in the middle of it). For cities I was saying maybe spawn a few hordes in them right at the start of the game, it would give a fairly realistic start location early that would allow you to get some fair dispersion over the map; later on you would only spawn form map edges.

[quote=“i2amroy, post:41, topic:5388”][quote=“Goombah, post:37, topic:5388”]I would see Hordes as coming from the edge and going towards noises. That’s thematic for zombie stories.

Making them static would sort of defeat the point of adding them, IMO.[/quote]
Coming from the edge of the map is dynamic, yeah, but once they are on the overmap itself they are static entities that are tracked (as opposed to randomly spawning into existence in the middle of it). For cities I was saying maybe spawn a few hordes in them right at the start of the game, it would give a fairly realistic start location early that would allow you to get some fair dispersion over the map; later on you would only spawn form map edges.[/quote]

Okay. I see what you’re saying. Yeah, having a horde or two on the map at the start could add an interesting element also. Something you have to negotiate and avoid aleriting to your presence until you can deal with it.

The simplest thing I can think of is to expand the current system, for noises over a threshold, check for nearby monster groups on the overmap and give them a chance to be attracted to the noise based on volume - distance.
Most gunfire and explosions would attract groups from a long distance, but they’d move in the direction of a sound for a while, then forget about it and go back to wandering. Protracted firefights or frequent use of explosives would really attract them. Things like engines, generators, and power tools would attract them from a much smaller area, but do so more reliably since you’d tend to use them a lot.
On the other hand, a day-long firefight in a town would attract pretty much every Z in the area, possibly even pulling some from nearby towns.
I’m pretty committed to zombies being static as the default, whether it’s at a large or small scale.
The main thing about population density will be real cities, and specifically apartment complexes. Once we have some high-density housing for zombies to start in, the numbers can be really large.

[quote=“Kevin Granade, post:43, topic:5388”]The simplest thing I can think of is to expand the current system, for noises over a threshold, check for nearby monster groups on the overmap and give them a chance to be attracted to the noise based on volume - distance.
Most gunfire and explosions would attract groups from a long distance, but they’d move in the direction of a sound for a while, then forget about it and go back to wandering. Protracted firefights or frequent use of explosives would really attract them. Things like engines, generators, and power tools would attract them from a much smaller area, but do so more reliably since you’d tend to use them a lot.
On the other hand, a day-long firefight in a town would attract pretty much every Z in the area, possibly even pulling some from nearby towns.
I’m pretty committed to zombies being static as the default, whether it’s at a large or small scale.
The main thing about population density will be real cities, and specifically apartment complexes. Once we have some high-density housing for zombies to start in, the numbers can be really large.[/quote]

That will definitely help, yeah. I know there’s a strong strain of ‘But I cleared this area, so it should stay cleared’ feeling that runs through some discussions. And I hardly blame people for that. At the same time, however, rendering an area completely safe is ultimately, imo, bad for gameplay. Even if you clear an area around you, 99% of the population was still zombified, and they SHOULD be wandering around and will eventually pass on by.

In fact, I’d like to argue that there ought to be the possibility to set off an explosion to lure every zombie that you can to an area in the hopes they’ll just /wander off that-way/.

I dunno. I’m just rambling here at this point. xD

It’s just that, otherwise, you do wind up with the ‘zombie proof fortt that never gets atacked because you killed all the zombies’, and what fun is that?

Really, though, if cumulative noise or a similar system is implemented, there has to be a way to lure zombie hordes to other places with loud noises. Not with a hundred percent accuracy, but at least to a reasonable degree. Otherwise, there isn’t a substantial difference between cumulative noise and zombie hordes automatically honing in on you. On top of that you’ve already got church bells and such implemented in the game.

I try to find code responsible for saving zombie position, but i not find it.

All my progress in this branch:
https://github.com/Reaper42/Cataclysm-DDA/tree/hordes

Good to see some improvements on the “horde” way.

I like “noise attraction” concept, but there might also be some random horde movements, either. So even a quitest char could sometimes notice the horde of Z’s passing by. Or standing in front of his housing, waiting to tear him apart. It is never safe in Cataclysm, especialy with 99 zombification of everyone.

About explanation of such random movements - it is extradimensional ooze, so it migh have its own needs to send some of its remote hosts somewhere. Something like that.

About starting the game with hordes spawned in big cities - very good idea, to my mind.

Random movement would definitely be a thing, and could be explained by the simple fact of a zombie wandering off in a particular direction and attracting the others with the noise of his own passing, if nothing else.

[quote=“Sanarr, post:47, topic:5388”]Good to see some improvements on the “horde” way.

I like “noise attraction” concept, but there might also be some random horde movements, either. So even a quitest char could sometimes notice the horde of Z’s passing by. Or standing in front of his housing, waiting to tear him apart. It is never safe in Cataclysm, especialy with 99 zombification of everyone.

About explanation of such random movements - it is extradimensional ooze, so it migh have its own needs to send some of its remote hosts somewhere. Something like that.

About starting the game with hordes spawned in big cities - very good idea, to my mind.[/quote]

I definitely think there’s a sort of philisophical argument between people who say ‘I cleared this place and it should stay clear’ and those who think it should never be /completely/ safe, no matter how much clearing you’ve done.

As it stands, it never is ‘completely’ clear even in the current implementation. Regular wildlife exists, and zombears and zombdogs are a perpetual problem wherever you wander. Not that those have anything to do with hordes, but you get my drift.

Make them switchable, much like the static/dynamic spawns?

I try to find code responsible for saving zombie position, but i not find it.

All my progress in this branch:
https://github.com/Reaper42/Cataclysm-DDA/tree/hordes[/quote]
I was under the assumption it was under creature_tracker.cpp
Could be wrong though.

This is true as well, yeah.

Ok. I think i do something…

https://github.com/Reaper42/Cataclysm-DDA/tree/hordes

Technically It not hordes. It is moving zombie respawn point. But i think it must works as hordes.
In start “hordes” walk around cities. It have target (tx,ty) and interest to target (by default-30). Every 50 turns “hordes” move to target with chance = interest percents. If player makes > 20 noice all hordes in range makes-20 sets target as noice coordinats (with some chance) and sets interest = ((noice-20)-range)*5 (max range-140). Chance to change target determined by currect horde interest, noice level and range to noice.

Id love to at least see this as a mod. Static is getting a little stale, im interested in doing some fortifying in the non static spawn mode, this would be a welcome addition

FYI for everyone, GlyphGryph made a doc about what the devs want in a future dynamic difficulty system over here:

Excerpt about zombie mobs:

Zombie Mobs Here's the big one - we want "mobs" to form, a sort of overmap group (a visible one, like the old NPCs) that moves around on the overmap "picking up" and "dropping off" zombies as it goes, moving a few squares a day. Whenever one of those "mobs" moves into a players range (or the player moves into the mobs range) it should spawn the entirety of the zombie contents. When the zombies de-spawn they are added back to the Mob, which doesn't move until the player has left it's range or the last monster has died (at which point it is destroyed)

From what I can tell, your implementation of zombie hordes acts as a good stopgap between the current clear-a-place-forever behavior, but does spawn all the zombies when in the vicinity of the horde. There will, of course, be more work required to complete horde behavior but i’m anticipating playing with your “horde” system.

He’s also PR’d it under https://github.com/CleverRaven/Cataclysm-DDA/pull/6611. If you’d like to help speed up the merging process, we’re always looking for people to test the functionality and report on balance.

Coordinats and other info of hordes may see in debog menu (Hordes debug)

I have a question related to creatures finding the player:

Do creatures see you farther away at night if you have an active light source? You can see someone using a flashlight long before they are close enough to put you in to their field of light.

Of course you can use this to divert zomie hordes, that’s a major part of it.
The implementation sounds reasonable (haven’t had time to look at it yet), so this will likely be going in as the basis for hordes (and soon).
Light attracting zombies at night has crossed my mind, but to be fair there are other light sources, so we’d need to track those as well. Really loud sounds happening at random don’t seem likely, so I’m not concerned about that, but if the player with a flashlight attracts zombies from all over and a vehicle with its lights left on doesn’t, well that’s a problem.
The despawn code is in game.cpp in despawn_monsters(). It’s a bit tricky.
I don’t see a need to have this toggleable independent of zombies in general, it’s part of the threat. In fact once this is working properly dynamic spawn mode is going away, this is the last feature static spawn needed to reach feature parity. If someone wants to make something of dynamic that’s fine, but as of right now no one is showing any interest in doing so.