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

Underwater features: Darling, it's better down where it's wetter #30135

Closed I-am-Erk closed 9 months ago

I-am-Erk commented 5 years ago

Is your feature request related to a problem? Please describe.
With boats and z-levels becoming a bigger thing, the flatness of rivers (and eventually lakes and oceans) is an increasing problem.

Describe the solution you'd like
Underwater biomes, baby.

Shallow water should maintain the current effect, but deep water should trigger movement to level z-1 where a deep water level is mapped. This area would be flagged "underwater" and would require breathing apparatus or mutations to be in for long. There would be several underwater biome types, probably based on the overmap type.

Deep river water

River water would have a single z-level of depth and contains primarily fish. Due to the current, zombies would be uncommon here. Mostly these would just be a z-level of sand and rocks, garbage, and sunken vehicles.

Deep swamp water

I would expect deep swamp water to maintain its current behaviour rather than having an attached biome, as the areas of water currently aren't really enough to merit a biome.

If it is too tricky to make a deep water type that maintains its old behaviour, I'd suggest instead a "murky water" biome type where vision is limited to just the tile the player is in. This only really has an effect if we make larger ponds in swamps, but it would do a good job of representing the challenges of trying to scuba dive in a swamp.

Deep lake water

Deep lake water comes in two flavours: "deep" and "very deep" water. Very deep has two z-levels of water by default.

Lake biomes contain zombies walking along the floor of the lake. These would include regular zombies and swimmer zombies, and later on some water-adapted zombies with better swimming abilities.

Lake biomes also contain mutant fish. Just as insects have been affected differently by the blob than humans, I recommend having fish mutate rather than simply zombifying as well, becoming hyper-aggressive and swarming. The main monster in a lake would be a piranha-like swarm of aggressive mutant fish that tries to strip the flesh off your bones. Have fun down there kids, and don't forget your shark outfit!

Lake biomes would require a small amount of new furniture and plant types, but generally would be rocks, sand, and gravel. Special features could include caves, sunken vehicles, shipwrecks and buildings, and perhaps also flooded communities and interdimensional alien sites.

Deep ocean water

Ocean water should come in "deep", "very deep", and "open ocean". The latter version would have a variable number of z-levels depending on how far out you go, but on first implementation we might just make it bottomless or have it cap off at z-3.

Ocean biomes would require an entire development of extensive terrain additions, and are generally out of scope for now. However I do just want to say "zombie whale".

Player Involvement

Travel and exploration

One key feature I imagine is that swimming "down" should be a fairly complex action after the first z-level. z-1 represents the level you can easily dive to safely without training or augmentation; z-2 represents deep water that is hard to get to the bottom of. It takes some time to get down to that level, and you may run low on air; coming back up, however, is fast. Z-3 in open ocean or deep lakes would represent areas so far down that it's unlikely a free diver could reach them. As further work is done on depth, more effort would need to be put in on pressure and light at deeper z-levels; avoiding that is part of why I don't think we should go deeper than z-3 on first pass.

Currently a z-level has been described as "about 4 or 5 meters". For the z-level depth we're talking about that conveniently corresponds to where most casual diving takes place, in the first 15m or so. It's unlikely we'd have to worry about modeling nitrogenation and things like that at those depths.

More on depth

Personally I think that the z-level depth of the ocean should rather be defined by zones, so that each subsequent z-level represented an important biome change in the ocean, with either different physiologic effects on the diver or different animals, plants, terrain, etc. However, this might be tough to do as it would make z-level matching to the land very complex. The other possibility is to keep z-levels to 4-5m, which makes our maximum dive depth about 50m. That's past the normal recreational max dive depth of 40m but still within most technical dive depths... not an unreasonable place to just stop mapping, but fish mutants really should be able to get a lot deeper than that.

An even further option would be to make z-10 a special depth that represents "depths below 40m" and contain different biomes for ever further depths. We're really into weird stuff there so I'm going to stop.

Vehicles

While we all want submarines, they are a bit unrealistic as anything other than a dungeon type for a solo adventurer.

What we do need upon building z-levels is the ability to sink vehicles down z-levels, so that if your boat is attacked by a zombie whale it sinks to the bottom of the ocean and becomes an explorable and retrievable wreck... assuming you, like Kevin Costner, can somehow get there without drowning or being eaten by a zombie whale / alien kraken (Hot dang do I ever want to see this).

Larger player boats such as sailboats, which should have a belowdecks and abovedecks structure as well as possibly a mast, will also require development of multiple z-level spanning vehicles. Eventually we'll want to model the Old Guard fleet, which is another issue in itself, but relates: if modeled as vehicles rather than as buildings, their ships would span at least 2 z-levels as well.

Construction and crafting

Besides simple exploration and getting eaten by fish and aquatically adapted zombies, there is some role for construction and player bases underwater, particularly given the likelihood that players will either get an insane supply of SCUBA air and either a respirator or a CBM that lets them use it, or a mutation that lets them breathe underwater.

To this end we'll need some JSON flags for construction recipes to allow them to be constructed underwater; the default should be to disallow construction, but there's nothing stopping a player from building a rock wall or a junk palisade underwater, or even a metal wall if they have an underwater-usable welding torch. There needs to be a way to specify longer crafting times if underwater, or a flat penalty (takes 3x as long) that could be mitigated by certain mutations and modifications. Items and tools will similarly need flags to allow them to be used underwater.

Further, we'll need some consideration of the option of pumping water out of an area. This isn't something that needs to be handled on first pass, but anyone coding underwater regions needs to consider that this is something we will eventually want to be able to handle. For example, we can't simply assume that a given z-level is going to always contain water because it's inside a lake. (The same applies if a mapper wants to, say, add an underwater cave with an air pocket).

NOTE This is an in-progress issue. If you have suggestions let me know and I'll add the ones I like to the issue.

KorGgenT commented 5 years ago

we should also have at least one variation of the strange temple for lakes and oceans, with an underwater entrance, and perhaps being entirely underwater, meriting the usage of a submarine or similar vessel.

Fris0uman commented 5 years ago

Should player "fall" from z-1 to z-2 if too heavy ?

I-am-Erk commented 5 years ago

Buoyancy is something we'd need to roughly work out at some point. On first pass I'd say no

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

kevingranade commented 4 years ago

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

https://discourse.cataclysmdda.org/t/solid-bridges-and-diving-weirdness/23189/7

int-ua commented 4 years ago

How about moving bodies of water to -1 z-level as a relatively simple fix for bridges being impassable underneath?

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/oceans-and-their-problems/27994/2