Natural Deterioration of cities

I think it would be cool to see streets slowly get littered with potholes and brush as seasons go on, and eventually when z-levels are working better, have streets collapse occasionally into sewers below, making deep pits in the road. Also moss and vines and plants growing in and on homes and buildings. Maybe even little critters (sort of like the harmless ones you see near swamp areas) infesting buildings. Some could be harmful to be around for too long, such as mosquito swarms near stagnant water coming in through holes in rooftops, or rats carrying diseases, or places covered in bat guano. Perhaps feral dog packs could claim homes for themselves too, as well as other groups of animals. Lightning strikes could actually be hitting things, and rarely houses get burned down (making the fire extinguishers useful to keep around).

I think it would make having your own place much more rewarding - handling upkeep throughout the seasons, and respecting your hard work when you see how badly everything else has got over the years.

Lightning strikes? Would you please think of the toilets!? D:

But, yeah. That’d be pretty cool to see. Especially the sunken streets into sewer levels. Seems like a good escape route to trap when on a looting run.

I don’t know if this has been tought over before but it seems to me like an essential for the apocalyptic feel. A question for the coders here, just how hard do you think that this could be to implement?

It is all about the detail that you’d want. It is rather simple to add a function that goes through every map tile at the end of the season to update how things have changed. It would take a VERY long time if you were modifying most overmap tiles. If you wanted to take a list of all “road” tiles then open each road and search for every pavement tile… then randomly change 2% of those tiles to dirt tiles. You’d have the basic effect but probably wouldn’t be worth the time. How to handle generating new maps and waiting to update world maps that you may never visit again is harder.

I do remember someone putting a PR up a while ago that do exactly this: It apply several overlay to a city, like overgrowth (bushes and young treess), fungal overgrown, looted city (remove most loot). It was very cool to see it demonstrated in the sreenshot, sadly the author never completed it though.

Lightning strikes did exist, but were removed due to annoyance and metagame. Due to the way simulation in DDA is “clipped” only to nearby area, they only occurred near the player, which meant that sitting near own base was a bad idea.

New, undiscovered buildings being generated “rotten” a bit would be doable. Having existing buildings rot during play would be much harder, because there is no good way of marking terrain as damaged.

Do you mean marking them in the code or as viewed in the game window. Couldn’t each wall/door/etc object have a hit points value that decrements randomly over time, and changes its symbol or color as it reaches certain hit point thresholds?

The gradual part isn’t actually that hard, we’d just have it store the time since it was last loaded, and when it is loaded it can apply a decay function to every square of the map based on the time passed, it also nicely has no memory, it has xtime% chance to change in one time perios, and another xtime% chance to change in the next time period, so the only thing we’d need to store is the timestamp. The bigger pain is setting up all the data for when different tiles decay into each other.

This PR may be relevant, there are already some discussion about it.

Thanks for that link mochi!

I was reading about the looting, and thought about the factions that have yet to be implemented.

Factions might have varying levels of civilization, and might need different things based on needs and culture, and how well their faction is doing (taking essentials in rough times, or focusing on specific things for crafting and building when they are doing well). Violent ones that loot places will leave behind blood stains and have higher chances of taking weapons and ammo and leaving behind things like books and etc. Some factions are interested in making drugs and would loot chemicals and maybe leave behind joint roaches and pipes. Some factions would be out to help survivors, and would take first aid kits and etc. to trade with survivors.

This would solve the problem of figuring out what looters would take, and also give an eerie feel to the player, to enter a place and know that there were recently people there - especially if there is blood and broken furniture and etc… This would also make trading and value easier to handle - the rarity of items would differ from faction to faction, depending on how much they’ve already looted from a town.