CleverRaven / Cataclysm-DDA

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

Discussion: Redesigning Arthropods #45030

Open Venera3 opened 3 years ago

Venera3 commented 3 years ago

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

The game has a wide range of insects and assorted creepy crawlies which are universally pretty boring. This comes from a few places, ranging from possible oversights ( all arthropods are blinder than a flashbanged bat ) to not utilizing later additions ( most of their special attacks are hardcoded, nothing uses the spell system) and generally bland flavor.

Describe the solution you'd like

I'm planning on redoing all members of the spider/insect json and any other neglected monsters I feel particularly strong about and/or figure out something cool for. This will all be JSON, but I'll make some notes below in case an actual programmer wants to help out. Generally I'm aiming to give each species/group a lifecycle with at least one reproductive form to make the world feel a bit more alive and to make pacifying large swathes of land less trivial. If it makes sense I'll try to include predation/interspecies hostility, but aggroing is an all-or-nothing deal, so we'll have to see how that shakes out in game.

Concepts so far, with ideas that would require coding behind "//":

Describe alternatives you've considered

Accept the fact that Cataclysm is a zombie survival game. Never.

Additional context

The dragonfly rework is already up as PR #44779 , as well as a followup draft to liven up swamps a bit ( #44997 ). Feel free to discuss both + the ideas above and make suggestions.

SunshineDistillery commented 3 years ago

Winged bugs should make way more noise. You could change them to their own species, give them different move noises, and add the flag for noisy movement. You could also give them a parrot attack to make buzzing sounds.

Not every bug has to be a threat or super interesting. Flies, moths, fireflies, butterflies, could be peaceful animals.

You can mimic cocoons by making immobile pacifist creatures with no sense tags.

The ant Queen's hardcoded attacks are really dumb and easily exploitable for infinite food. Any replacement would be an improvement.

Venera3 commented 3 years ago

On point with the noise, I'll look into how that works. Ants didn't make the list yet because on the one hand they have some very aged gamey stuff going on, on the other they are the only species who are properly fleshed out and not interchangeable with the rest (they get their own mapgen stuff etc.). Coccoons are an idea I played with, but its hard to not make them into chitin pinatas, and placing them in a upgrade path is a bit fiddly. I might go for independently spawning "Schrödinger's cocoons", which can hatch into any one species from a list.

SunshineDistillery commented 3 years ago

You could make cocoons their own species so other monsters dont attack. For players they would be a resource though.

A problem with random cocoons/eggs is if you put a bunch in one spot, they might hatch as different types.

I made an insect mod a long time ago. I think it's in goatgod's mod pack still. If there's anything in there you want to salvage from the jsons, feel free. There's a speech file with like a hundred variations of 'buzzz' for example.

Xpyder commented 3 years ago

I actually recently posted a similar idea in the forums. For convenience I'll bring over the most relevant parts

As mentioned in #15372 there’s some potential for interesting spider / Wasp interaction with zombies. The core issue most people seem to have is they ignore each other. This was originally implemented because zombies would always eventually win out (because of the rezzing) and kill off the insects which left for uninteresting gameplay.

For spiders (and variants) if they win vs zombies they could cocoon them and drag them back to the web. It would eventually feed on it, and if that (or an old cocoon) was opened it could leave behind a “desiccated body” that won’t rez. If a fresh cocoon was opened it could spawn a “dissolving zombie” that would quickly lose health over time and can’t rez. More complicated but also more interesting to represent the Slime infection, on death it could spawn a “dissoluting blob” that would slowly try to attack the player, but each square of movement lose health, leave behind a slime trail, and get smaller, until it eventually dissolves away. This would also provide a hint that there’s more to what’s going on and a connection between zombies and slimes to be investigated

For wasps I like the Emerald Wasp idea, maybe if they win they could infect the zombie so it rezzes as a “dazed” zombie that has no attack or flee instinct. It would slowly take damage over the course of a few days and if allowed to die would spawn a wasp larva / cocoon / adult wasp depending on how complicated their currently implemented life cycle is. To make it more interesting any nearby wasp could lead a dazed zombie back to the nest (if within a certain range) like what the Emerald Cockroach Wasp does. We could even update the wasp description to more closely match it with an “iridescent emerald green body”

Xpyder commented 3 years ago

If we do go with the Emerald Wasp idea, it might be good to give them a cooldown on the egg laying (maybe 1-2 per day per wasp) so that if a lone wasp comes across a horde of dead zombies that you cleared they don't all instantly become hosts, that it's a more gradual change. This would also help prevent the opposite of the original problem (in this case wasps always winning attrition vs zombies)

Xpyder commented 3 years ago

As for flies what about a mix of giant flies and slime infected flies like bloaters that explode into poison gas, or plague carriers that spread disease and need environmental protective armor more than cut/bash protection

They could also try and rush dead bodies and taint them so you have to fight them off if you kill something nearby that you want to harvest for food. And maybe even let them lay eggs into zombies to create a pupating zombie that spawns the slime infested fly versions periodically like maybe a big mutated fly once a day and nymph versions every x rounds? To keep diversity this style might need a limiter where they won't egg if there's at least 2 within x range already

Xpyder commented 3 years ago

For cocoons maybe implement them like cardboard boxes or crates rather than animals. Something you have to cut open to see what's inside and there's a small chance for a fully/partially developed hostile insect to spawn. Otherwise they just spawn pupating jelly instead of chitin, maybe give that a low level usefulness on its own. Maybe moderate calories, but gross, mild toxins, very fast spoilage, and explicitly no cooking recipes. This could make it somewhat useful in an emergency (or if you're a chimera) but not unbalancing

SunshineDistillery commented 3 years ago

I think venera is working in the jsons. Altering corpses would require code changes. I dont think any spells can target or change existing items.

Venera3 commented 3 years ago

Yeah, I'm still coming to grips with what's possible with the spell stuff. Accelerating rot is in there I think, and would work to make flies interactive.

Coccooned corpses for spiders is def a good idea, I wanted to make those forest patches interesting anyway. I could implement them with two indistinguishable variants, one with a corpse+loot and one with a zombie inside ( it would probably work as a hacky pseudoegg corpse that rots into zeds ).

The normal wasps I thik I'd leave as a social species cause we need a more metal foil to the nice and friendly bees, and the fun parasitic wasps are solitary. Dermatiks on the other hand would work, if they can add their effect to mobs.

SunshineDistillery commented 3 years ago

Map extras could place special corpses, but there's no way for real time cocooning.

Map extras are quirky. For one, they dont choose among all entries with an id. They just choose the first one. So you can make a blank extra that places a nested mapgen. Then make different chunks for it to place. That way one mapextra will have different results.

There are hard coded eggsacks already that spit out baby spiders. Maybe some one would convert it to a json option for you. An examine action for furniture that summons x monster.

Good luck.

LyleSY commented 3 years ago

Broadly love the idea, and I like fireflies as a new thing. I'm not sure it makes sense for flies to mutate into fireflies. What I find interesting about flies is their symbolic connection to plague and pestilence and the horror Fly movies where people become flies and flies become people. I've gotten a lot of negative feedback about mutant spiders that they're too easy at every evolutionary step. I've also gotten negative feedback that there's no reason to fight mutant insects other than just to fight them. The meat is useless now though the chitin can be helpful for farming. Something I've put into DinoMod to give some reward to players is to give some kinds of dinos a chance of having something interesting in their stomachs like a human body or a gun or some science equipment. I'm not sure if that's too gamey for the base game, but I thought it was fun. They could also have stuff stuck to them that they drop when they're killed that has some small value. The new venom system might solve all this though.

Venera3 commented 3 years ago

I'm making fireflies their own thing after some thought.

The whole idea of redesigning insects came after I saw how uninteresting they were as I added the venom stuff. I think making the player engage with stuff for loot is generally a good thing, but for the base game you'd need some really good arguments. Other than that, well predators are hunting you, so they'll engage with the player, and flies are all right as prey for some incidental insect-on-insect violence to behold/scavenge after.

On Wed, 28 Oct 2020, 14:26 LyleSY, notifications@github.com wrote:

Broadly love the idea, and I like fireflies as a new thing. I'm not sure it makes sense for flies to mutate into fireflies. What I find interesting about flies is their symbolic connection to plague and pestilence and the horror Fly movies where people become flies and flies become people. I've gotten a lot of negative feedback about mutant spiders that they're too easy at every evolutionary step. I've also gotten negative feedback that there's no reason to fight mutant insects other than just to fight them. The meat is useless now though the chitin can be helpful for farming. Something I've put into DinoMod to give some reward to players is to give some kinds of dinos a chance of having something interesting in their stomachs like a human body or a gun or some science equipment. I'm not sure if that's too gamey for the base game, but I thought it was fun. They could also have stuff stuck to them that they drop when they're killed that has some small value. The new venom system might solve all this though.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/CleverRaven/Cataclysm-DDA/issues/45030#issuecomment-717931286, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARFLZ3U6ESOCIK7L524QXITSNALZDANCNFSM4S47DECA .

Xpyder commented 3 years ago

There are hard coded eggsacks already that spit out baby spiders. Maybe some one would convert it to a json option for you. An examine action for furniture that summons x monster.

I don't mind digging into some of the cpp files. My main talent is in Rust and Powershell so I have trouble making extensive or new changes (a lot of my changes copy approaches from other places and adapt them rather than creating fresh)

If there are some examples of how to convert this stuff to json (like past PRs that have been merged) and where to find it (unique phrases, or filenames and line numbers) I'm happy to put some work into it. I don't know that I'll be able to complete it by myself but I might be able to make it easier for someone who can.

Xpyder commented 3 years ago

The normal wasps I think I'd leave as a social species cause we need a more metal foil to the nice and friendly bees, and the fun parasitic wasps are solitary. Dermatiks on the other hand would work, if they can add their effect to mobs.

This still leaves some potential issues if the zombies are rezzing and pushing into the wasp nests. I suppose they could just eat the dead bodies (many wasps are carnivorous). For another example of a wasp that could be used as a model there's Glyptapanteles. There's some evidence of them being gregarious rather than solitary but I'm unclear if that's just the larval stage. Further reading here (this page may be slow to load)

Venera3 commented 3 years ago

Xpyder, if you're up for some lightish (based on my complete lack of understanding, mind) coding I could use your help in making the flying monsters be able to have footsteps. There's an explicit function in monmove.cpp disallowing that, but either there's more going on or I messed up in the testing cause changing that still didn't work for me and I don't trust myself to do anything more than change a variable in there. Scratch that, I found the flag LOUDMOVES does allow that already.

Resok commented 3 years ago

Any plans to change spider venom to paralytic? Most spiders have some form of neurotoxin that attacks the nervous system and is primarily a paralytic venom. A few spider breeds have necrotic venoms but it's far less common compared to the various intensities of paralytic neurotoxins.

Among the species that have neurotoxins are - web weavers (black widows, orb weavers, etc.), wolf spiders, jumping spiders and trapdoor spiders.

Venera3 commented 3 years ago

Yes, when I get around to redoing them properly. As opposed to wasps, centipedes and the like spiders generally aren't really physically imposing, so their venom should do most of their work for them. The current venom implementation is mostly to include the more common critters in my "involuntary playtester recruitment drive" and to quickly make them a bit scarier. We'll see how long that second pass takes with 0F (and content freeze) coming and the dark days ahead IRL.

kevingranade commented 3 years ago

This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there:

https://discourse.cataclysmdda.org/t/gas-sacs-and-why-no-they-wouldnt-work/25566/13

actual-nh commented 3 years ago

It has just occurred to me, while reading the PMC link @Venera3 gave above (thanks!), that the blob's behavior in simply reusing what's there may well extend to reusing things already known to it from other species (particularly other species it is altering) - note mutagen responding to species it's exposed to. This would seem especially likely in species that are exposed to each other - e.g., predator/prey, parasite/host... so dermatiks that have grown inside, say, paper wasps may well have paper-building themselves.

slimeboy460 commented 3 years ago

Me and @Venera3 were discussing how we could simulate corpse consumption in my #47013 PR (and PMs). As well as this I also had a look at the giant insect overhaul.

I saw that I-Am-Erk wanted to have a beetle which rolled corpses like dung beetles roll poop. He might actually be in luck because there is a sub-species of beetles called dermestid. Although i am currently designing my beetles based on the good ol’ stag beetle, I could probably make a variant for this species.

actual-nh commented 3 years ago

BTW, why is the Firefly species INSECT, not INSECT_FLYING?

Venera3 commented 3 years ago

BTW, why is the Firefly species INSECT, not INSECT_FLYING?

Whooops. Nice catch, thank you!

actual-nh commented 3 years ago

This CDDA browser can be useful - you can list monsters by species. (I'm not sure how often it's updated, though - showing dragonfly as INSECT not INSECT_FLYING, whereas in my copy's JSON it's in correctly.)

Venera3 commented 3 years ago

Opened a Discussion to keep this a bit more visible, I'll keep the issue open as a reference point for future PRs.

kevingranade commented 2 years ago

This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there:

https://discourse.cataclysmdda.org/t/monster-brainstorming/27087/5

stale[bot] commented 2 years 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.