jeremyshannon / Exile

This repo is parked, moved to codeberg.org
https://codeberg.org/Mantar/Exile
GNU General Public License v3.0
16 stars 12 forks source link

Improving the Health mod #122

Open DokimiCU opened 2 years ago

DokimiCU commented 2 years ago

Health mod is a critical part of the game. The better Health is the better the game is.

There's likely many things that need improving so I'll kick things off with one issue:

Should hypothermia/Heatstroke/starvation etc be turned into Health Effects?

Currently Health is a hybrid of two approaches.

It might make sense to transfer as much as possible to Health Effects, and mostly scrap the original approach.

How would it work?

Hypothermia. Based on time spent outside safe temperatures. The more extreme the temperature the shorter the time interval. Develops in stages, if you stay cold the timer moves you to the next stage. You get symptoms. Get to the final stage and you die.

Heatstroke. The original approach is inaccurate here. Heatstroke occurs when evaporation from sweat cannot remove heat fast enough. Either you became dehydrated, or humidity is too high, or it's too damn hot. This would work like hypothermia, but the timer would check the player's thirst level (not energy). Drink enough and you can out-sweat the heat.

A complication - wet bulb temperatures. The game doesn't include humidity. The point at which heat stress occurs is decided by humidity. The beginnings of the danger zone is anywhere from ~32oC to 50oC, depending on humidity. (something similar will be true for cold temps too).

Exile might just need to pick a universal humidity level and go with it. 50%??? The exception being water which is 100% humidity by definition. I'm not sure how that should be handled, but the current code doesn't do it right. Swimming can save you from hypothermia at the moment. Likewise >32oC water should kill you eventually (you can't live in a hot-tub forever).

A "Wetness" Health Effect could be added that changes your temp tolerance range?? e.g. from swimming or rain.

Starvation/Dehydration Timers based on how long at low levels? e.g. staying at yellow will eventually give you mild malnutrition, but only mild. Dropping to red allows the effect to progress to extreme and you die.

Pro's/cons The downside: it's more complicated. No energy = death is easy to understand. Many difficulties might come up trying to implement, and it will be a lot of work. Upside: this could be much more interesting game-play.

Anyways, that's my thoughts. This is just one of the core features that jumps out to me the most often as something that could be better.

Shadow8472 commented 2 years ago

Exile might just need to pick a universal humidity level and go with it. 50%??? A less naive approach baring something as detailed as the thermal system:

  • Have a base humidity per biome.
  • Rain and wet nodes increase humidity.
  • Shelter mitigates humidity from rain.
  • Fire reduces humidity.

Here are my ideas about moisture and clothes:

Speaking of water, it's bothered me that scooping up runoff appears to be safe when drinking directly carries risks.

Final health idea that doesn't go anywhere above:

DokimiCU commented 2 years ago

My reluctance to add a humidity system was because: 1) performance and complexity. Exile is already pretty complicated. 2) communicating to the player. Wet-bulb effect might confuse people e.g. "I was warm at 15C, but now I'm cold at 15C. Nothing changed! I don't understand!" (meanwhile humidity has invisibly increased on them)

Maybe a bare minimum system could be implemented? It would be nice to have.

Good ideas about drying clothes - swimming fully clothed should cause issues like this!

Agree about water purification. That was something I never got around to adding.

Smoke inhalation was an idea I had too. A lot of little extra health effects like this could be added.

DokimiCU commented 2 years ago

A though: communicating wet bulb could be achieved by using "Felt temperature" rather than actual temperature.