Temperature and Light

I have a slightly different then the usual ‘add more stuff!’ suggestions. More aimed at making some existing basic things work a bit better, instead. I recently came back to CATA after about … uh… 6 months away? Tried out the latest github version. I see that you’ve done a loooooooooooooot of work, holy crap, behind the scenes on the 3d stuff. Good job, coolthulhu and others! And there seems to be even more going on in the changelogs that I don’t really understand. Thats all amazing, awesome stuff.

One thing I was kinda expecting though, with all the mapgen/3d tinkering, was to see indoor ambient light more realistic, as well as temperature. I still find that I can’t read indoors in a well-windowed but curtained room. Even beside a computer in a curtained shelter, at daylight, with an atomic nightlight, I still get a ‘hard to see’ modifier, which is absurd, and in many other cases, I can’t read at all. This seems to even apply with things like nightvision/cephalopod vision, the latter of which I think is supposed to reverse light/dark penalties, from the desc, but which doesn’t.

The other thing thats still wonky is temperature. I can be indoors, in a basement, inside a tent (should I even need to go on at this point?) covered in blankets and still get absolutely spammed with cold messages. During spring. In the US northeast, if indoors, or in a car, in spring/fall/summer, if you have a blanket, or several layers of warm clothes, you are not going to get ‘frostnipped’, or have any serious troubles sleeping. Some people might want more covers then others, but even without heating, it isn’t that bad, as long as your away from the wind. Even in houses where the heat has literally been off for years, you’ll still find it ‘not uncommon’ for the temperature to be a bit above the ambient outdoor temperature on a cold day, due to insulation. (source: house-hunting old houses when seeking to buy a few years back, and common sense). Likewise, when in a basement or underground, the temperature is going to //tend// to be the average for the season, and not the temperature of the outdoors for the day.

I know this has been brought up before, but this all certainly looks like stuff you’d have to tinker with anyways for the 3d transition, and it makes it really hard to play the game when I’m getting constant cold messages for temperatures and conditions that seem warmer then what I’m experiencing IRL, you know? I mean, different people have different tolerances. And certainly, someone from uh…you know, down south, new to the area might find these conditions cold, or someone of extremely light weight. But…it shouldn’t be as annoying as it currently is. I mean, I know its a survival game, but honestly, this isn’t a particularly hard problem to realistically deal with.

Likewise, playing around with mutations seems to indicate that many of the ones that shouldn’t get cold in the same circumstances real humans would (feline, fish, and cephalapod were what I tested) still do. I had a cephalopod get frostbitten from swimming in spring. Seriously.

I don’t do any of the coding, just run around playing for free this amazing game that good people put together and through wild suggestions around/ help people asking that I can in forums…
but this sounds like some good ideas, and with 3D being worked out maybe make the lighting more visible as well? By darkening/ brightening a space based on what its light value is. Having the light values of spaces around you would be a definite plus…maybe be toggle-able.

Balancing those systems is hard. They are continuous, reflect some semi-arbitrary breakpoints and require concrete statistics to represent correctly.
Even when we know they are wrong in some way, fixing is often far harder than bumping/lowering a bunch of numbers, because that is likely to unbalance other things.

For proper balancing, we need a table of values like:

[ol][li]Temperature[/li]
[li]Clothing[/li]
[li]Relevant environmental stats (wind speed, building, weather, humidity etc.)[/li]
[li]Expected outcome (“comfortable”, “uncomfortably cold”, “heat stroke in 60 minutes” etc.)[/li][/ol]

Light penetrating into buildings is really tough computationally without “tricks”. And “tricks” would make sunlight and artificial light work differently.
Then there’s the whole curtains thing. At the moment they are 100% opaque. Changing that would require separating “light transparency” and “vision transparency”. Not necessarily hard, but more than just a bit of work.

At the moment we have no way to represent an isolated building. In fact, a “building” is anything with a roof and it doesn’t provide much more than just protection from wind and weather (rain or sun). This one could be really tough to fix, so for now all houses are made of cardboard.

As for the blankets - blankets work best if left on the ground rather than worn on the body. When worn, they don’t protect hands and mouth and also protect less in general (you’re basically wrapping them around your body).

Simple solutions for some of the problems:

[ul][li]Adding a low temperature resistant mutation, frostsnip mutation, heat resistant mutation and maybe stroke resistance mutation[/li]
[li]Buffing heat provided by fur[/li]
[li]Adding a buff to light level for purposes of reading and crafting from the carried light sources (you can put that nightlight where you need it the most)[/li]
[li]Implementing z-level temperature differences in weather code[/li][/ul]

I won’t have much time in near future (boring IRL stuff), so I won’t be implementing that soon.
First two points are quite easy though; if anyone else feels like contributing code, those are good for a warmup.