CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.31k stars 4.13k forks source link

Monster auditing for stable #70215

Open I-am-Erk opened 9 months ago

I-am-Erk commented 9 months ago

Is your feature request related to a problem? Please describe.

We've had a number of gradual issues with monster types and spawn frequencies develop over the last year or so that need to be audited for stable. I am sure I've missed a few so feel free to help me out in comments.

Solution you would like.

  1. Lake and river monsters Presently, lakes seem to all be a kind of wildlife preserve full of giant insects and angry animals swimming around the surface. The spawn rates of things like giant water striders need to be dropped precipitously - I'd suggest they be completely removed from the random lake and river spawns and instead made to spawn inside map extras that put them among clusters of reeds and other appropriate plants. Likewise, we need a looooot fewer birds and small mammals running around on the lake surface. Many of these again should be made to not spawn randomly and instead appear inside map extras depicting their habitats. In the process maybe we could add some animals that spawn only in the lower z-levels? It would be nice to see things when we dive in lakes.

  2. Ferals Ferals have started to get pretty out of hand. I understand there are some compelling options for them as midlevel enemies and I don't want to block that entirely, but as per the design doc, ferals should be quite rare. Unique ferals spawning in theme locations should be something we use extremely judiciously; think of this more like a special 'boss fight' than a common enemy for a given map special. @Karol1223 already did some good work on this but I wasn't very active at the time and didn't get much of a chance to weigh in and assess the bigger picture. Some areas of particular note:

    • Ferals should not use guns. I've been saying this since they were introduced. In the past I've offered a few very limited ways we could allow it but I think, after reviewing how this argument has gone every time, we should just say "no ferals with guns" until such time as we've improved gun combat. There is no game design excuse for this. The gun being inaccurate or something you can armour against doesn't help: that just makes them a trivial enemy if you happen to know to bring the right armour, or a deadly enemy if you don't, all dependent on your luck with the RNG. We don't presently have enough gun fight code to justify this, nor is there a good lore explanation for how these low grade ferals are keeping up their ammo stock anyway. There's a reason we started with thrown rocks.
    • We should rewrite any descriptions like "It looks like this feral was ___ before the cataclysm", with a few exceptions like soldiers (even then, the phrasing could be better). I am particularly looking at mon_feral_human_archaeologist and all the mon_feral_fancy and _armoured variants. I would assume a "fancy dress" feral is someone who looks like they randomly threw on a number of mismatched fine clothes, not someone who looks like they were at a ballroom before suddenly going feral. These people have presumably been killing and eating other folks for several weeks, and still going through some of the motions of real life but in a terrible parody. As an example, our description for the archaeologist might be "Rabid and bloodshot, this person wears scraps of ill-assembled and mismatched field work clothing, and wields a bloodstained shovel. Various trinkets and samples, including dried human body parts, dangle from their belt.", This leaves the actual nature of the feral open to interpretation. Were they part of an archaeology crew? Did they happen here recently? Don't know, doesn't matter, supposed to be up to the reader to decide.
    • I haven't been to a mansion since the introduction of all these ferals, but I am concerned about the sheer number of mansion feral types here. It might be possible to find a handful of surviving ferals on exploration of a mansion, I don't think we need json entries for 8 unique ones, especially not so themed. And the crossbow feral should go for the same reason as the gun feral. Generally, the ferals you see in a mansion should be exactly the same ferals you see anywhere else. This is someone's house, not an SCA cosplay arena.
  3. Slime replication is still wildly out of hand. At the very least, we should probably stop slimes from replicating if there's more than a set value of slimes in the reality bubble, with the max number defined in global_settings.json

Additional context

As I said above, please let me know if you're aware of any other spawns that need to be reviewed. Graboids and mutant worms were a big problem for a while, for example, and I don't know if that's been repaired.

PatrikLundell commented 8 months ago

I thought they were supposed to be able to split upon acquiring more "HP", but otherwise they'd just split and reform in an annoying lag inducing manner.

However, slimes can "convert" monsters into slimes by splitting onto them, so I suspect that would be a source of additional raw material for slime formation (but maybe it just eliminates the monster, leaving the splinter with the same "HP" as it acquired upon splitting).

Without knowing the implementation, I'd introduce a hysteresis by disallowing slimes to split spontaneously if they have too few "HP" (which probably is in place), but also to merge if the merged slime would get too many (which would be a lower limit than the split one to at least forbid these two slimes to join up again).

fairyarmadillo commented 8 months ago

However, slimes can "convert" monsters into slimes by splitting onto them, so I suspect that would be a source of additional raw material for slime formation (but maybe it just eliminates the monster, leaving the splinter with the same "HP" as it acquired upon splitting).

I was not observing this when i gave them lots of things to kill. Even if they did do it and I just wasn't seeing it for some reason, that would not lead to exponential growth like I've seen in some people's reddit posts, as it would be eliminating one monster to make one or two more, and they'd eventually run out of monsters.

My idea was to map a fairly large radius when FORMBLOB procced and count the monsters in the vicinity, then return out of the function if there were more than, say, 30. But again I couldn't reproduce the issue to test whether that solution would work.

github-actions[bot] commented 7 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

RenechCDDA commented 6 months ago

Presumably we want this to remain open until it is actually done.

Inglonias commented 6 months ago

we really should tell the automation bot to consider issues in projects "hands off"

I-am-Erk commented 6 months ago

Gun ferals are resolved now. I believe lake monster spawns were fixed shortly after the issue was posted. If we've got confirmation that the silly mansion zombies are scenario specific, I think that just about has us covered - just need slimes fixed.

I would still like to revisit the actual role of guns in the ferals they were taken from, rather than remove them. I agree with the above discussion that they added an interesting play function we shouldn't just be discarding.

I-am-Erk commented 5 months ago

I'm going to call this done for 0.H stable, but I really want to focus on ferals. The current "take guns away from them" change is the least satisfying fix for this issue, I do still want to look at what made gun ferals interesting and restore it to the game.

harakka commented 3 months ago

Nothing has been done about number one on the list, lakes and rivers are still full of water striders and water scorpions and all that goodness.