One Hour One Life Forums

a multiplayer game of parenting and civilization building

You are not logged in.

#1 2019-02-07 17:29:00

jasonrohrer
Administrator
Registered: 2017-02-13
Posts: 4,805

How should clothes work heat-wise?

Clothes currently do not function in an intuitive or satisfying way.  I'm looking to change that.


Currently, here's how they work:


1.  Each piece of clothing has an R value (insulation value).  For hats, we have: 

straw = 0.65
wool = 0.75
fur = 0.85
wolf = 0.90

In general, what I'm calling an R value is a fraction of the heat that is blocked from passing through something per unit of time.  And note that I'm using "R" in a totally different way from the way it is used in the building industry (to make it easier to reason about and write code about).  It's literally a fraction of heat retained, where R=0 is nothing and R=1.0 is a perfect insulator.  My R values are multiplicative instead of additive for layers, in that when layers A and B are combined, we have:

1 - R( A + B ) = (1 - R(A)) * (1 - R(B))
or
R( A + B ) = 1 - (1 - R(A)) * (1 - R(B))
or
R( A + B ) = 1 - 1 + R(A) + R(B) - R(A) * R(B)
or
R( A + B ) =  R(A) + R(B) - R(A) * R(B)

Not that "layers" is really a concept in the game, but you can think about the amount of heat that escapes from layers of walls, for example.



2. (Not currently used), clothing can generate heat or absorb heat (think of a hat made of lava or a hat made of ice---nonsense examples, but this may be leveraged in the future to make clothing that is cooling for the desert or jungle, or imagine an ice pack that you put on the head of a baby with yellow fever).



3.  Clothing is weighted to come up with an overall R-value for the outfit, based on a rough estimate of how much heat would be lost from each exposed body part.  The weights are:

    float headWeight = 0.25;
    float chestWeight = 0.35;
    float buttWeight = 0.2;
    float eachFootWeigth = 0.1;            
    float backWeight = 0.1;

So a cold chest has a way bigger effect than a cold foot.  For example, if you had a perfect hat (R=1.0) but were otherwise naked, you would have an overall outfit R-value of 0.25 (1/4 of your body heat would be retained per timestep, because the other 3/4 would be leaking out through your chest, butt, feet, and back).  A perfect hat AND a perfect coat (both R=1.0) would result in an outfit R value of 0.60.



4.  When recomputing your heat map, an 8x8 simulation grid is generated around you.  The grid is populated with R-values from each tile object and each floor (with the R-value of your clothing used at the center tile of this grid, where you are).  (I just realized that I'm simply adding the R-values of objects, floors, and clothing that co-exist in a given tile, instead of using the multiplicative formula shown above---need to fix that).

The simulation grid is also populated with heat sources (e.g., fires) and heat sinks (if there are any... the only current example is snowballs).  Heat sources and sinks are additive, and what the player is holding is added in to the center tile (for example, if they are holding a snowball, there is an additional heat sink at the center tile).

Heat source/sink values are expressed in heat units generated or absorbed per timestep.  For example:

burningTinder = 2
smallFire = 4
largeFastFire = 8
smallSnowball = -4
mediumSnowball = -5

The player themselves generates 1 heat unit per timestep at the center of the grid (body heat).

The biomes are also added in as heat sources or sinks:

polar = -0.15
desert = 2
jungle = 1

Then a simulation is run for 8 steps, where during each step, heat is added to the grid by each source, subtracted by each sink, and then propagated to neighboring tiles based on the multiplicative R-values of each tile and each of its neighbors.




5. At the end of this simulation, we have a heat value at the center tile (where the player is).  We then compare it to our ideal heat value (currently targetHeat=10) to decide where the player's environmental heat is on the heat scale (between 0.0 freezing, 0.5 ideal, or 1.0 boiling).

    // convert into 0..1 range, where 0.5 represents targetHeat
    inPlayer->envHeat = ( playerHeat / targetHeat ) / 2;
    if( inPlayer->envHeat > 1 ) {
        inPlayer->envHeat = 1;
        }
    if( inPlayer->envHeat < 0 ) {
        inPlayer->envHeat = 0;
        }


6.  Their actual body heat value moves toward their current environmental heat value once every 2 seconds using Puhro easing (the farther away it is, the bigger step it takes):

            // Purho easing
            double delta = nextPlayer->envHeat - nextPlayer->heat;
            
            if( fabs( delta ) < 0.05 ) {
                nextPlayer->heat = nextPlayer->envHeat;
                }
            else {
                
                double change = 0.2 * delta;
                
                if( fabs( change ) < 0.05 ) {
                    // step is too small
                    
                    if( change > 0 ) {
                        change = 0.05;
                        }
                    else {
                        change = -0.05;
                        }
                    }
                

                nextPlayer->heat += change;
                }


6.  That heat scale value is used to modulate hunger (the closer you are to 0.0 or 1.0, the closer your hunger rate is to max possible (currently 2 seconds per hunger bar), and the closer you are to 0.5, the closer your hunger rate is to min possible (currently 22 seconds per hunger bar).



Okay, so that's how it currently works.  I'll break here and explain the problems with this model in the next comment.

Offline

#2 2019-02-07 17:49:16

CrazyEddie
Member
Registered: 2018-11-12
Posts: 676

Re: How should clothes work heat-wise?

I know you're about to mention what you see as the problems, but I'll go ahead and mention what I see as the problems.

I don't care about the mechanics and mathematics of heat transfer as you've outlined them above. The basic problem is that in the real world, one rarely travels outside of one's biome, and when one does (or, when one goes from inside a warm house to a cold snowy day outside and then back again) it takes the tinest fraction of one's life to retrieve one's clothing from a convenient storage location and put it on, and then reverse the process when one returns.

In OHOL it's absurd to consider putting clothing on and taking it off again when moving from one biome to another or from the inside of a building to the outside. The intuitions one has from from real life become unworkable when mapped into the game.

This makes both clothing and buildings close to useless.

Offline

#3 2019-02-07 18:07:57

happynova
Member
Registered: 2018-03-31
Posts: 362

Re: How should clothes work heat-wise?

I'm just pleased that you haven't fallen for the old wives' tale that we lose 90% of our body heat through our heads. smile

Offline

#4 2019-02-07 18:14:05

Twisted
Member
Registered: 2018-10-12
Posts: 663

Re: How should clothes work heat-wise?

I think wearing clothing should, on average, be better than not wearing clothing. Currently, since towns are usually built on jungle or desert tiles, clothing is only really useful when venturing out into the wilderness. Also, taking clothes on and off is a bit tedious (plus people can nab your clothing when you put it down), so very few people min max their insulation.

I think every item of clothing should have some kind of modifier that moves your temperature towards 0.5 in addition to the heat it adds. That way you the more clothing you have, the smaller your potential temp range gets. It would make wearing clothes as compared to being naked much better on average while walking around different biomes.

Offline

#5 2019-02-07 18:36:12

jasonrohrer
Administrator
Registered: 2017-02-13
Posts: 4,805

Re: How should clothes work heat-wise?

Let's start with the basics and see how the simulation shakes out.


First, consider what happens when you stand naked in a neutral biome with no heat sources/sinks around you, and no walls.  The only heat source is your body, generating 1 heat per simulation step.

The R value between your tile and the neighboring tiles is 0, so heat can move freely from your tile to the neighbors.

On the first step, there's no heat anywhere, so nothing propagates, and then 1 heat is added to the center tile.  On the next step, that heat is propagated to the neighbor tiles.  1/5 of it goes to each adjacent neighbor, and 1/20 of it goes to each diagonal neighbor.  So after propagation, we end up with:

0.05 0.20 0.05
0.20 0.00 0.20
0.05 0.20 0.05

But then 1 more heat is added to the center, so at the end of the step, we have:

0.05 0.20 0.05
0.20 1.00 0.20
0.05 0.20 0.05

On subsequent steps, the heat from the neighbors propagates further out (in the above grids, the surrounding 0.0 neighbors further out are not show), and the heat there also reduces the propagation from the center (because the heat differential is smaller).  After 8 steps, the heat at the center is slightly higher than 1.  Running the code, it settles at 1.408993, with a final grid that looks like this:

0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 
0.00 0.01 0.03 0.05 0.06 0.05 0.02 0.00 
0.00 0.03 0.07 0.14 0.18 0.14 0.06 0.00 
0.00 0.05 0.14 0.31 0.47 0.31 0.12 0.00 
0.00 0.06 0.18 0.47 1.41 0.47 0.16 0.00        
0.00 0.05 0.14 0.31 0.47 0.30 0.12 0.00 
0.00 0.02 0.07 0.12 0.16 0.12 0.06 0.00 
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Thinking about this now, I see a small mistake in this logic.  The heat from the center is like a bullet traveling out instead of something that is evenly spreading (it travels fully to the neighbors, leaving 0.0 behind).  Really, it should end up even with the neigbors (like a popped water balloon spreading on the floor).  But the different weighting for the diagonal neighbors (because they have less contact surface) indicates that what we're really doing here is different than water levels spreading.  It more has something to do with the inherent R-value of the air itself in this timestep.  If R(air) = 0.5, then we would get:

0.038 0.100 0.038
0.100 0.500 0.100
0.038 0.100 0.038

Not sure that feel right either.  Maybe R(air) = 0.25, which gives:

0.025 0.150 0.025
0.150 0.250 0.150
0.025 0.150 0.025

However, note that with the 1 heat added every step, if R(air) > 0, the heat at the center will eventually grow to infinity.  Of course, this is true of any insulation at the center, but we're running the simulation for only 8 steps.  So I'll leave this alone for now.


If you're naked in a polar biome, there are heat sinks everywhere around you, resulting in a heat output grid like this:

-0.15 -0.15 -0.15
-0.15  0.85 -0.15 
-0.15 -0.15 -0.15

The center heat output is 0.85 when your body heat (1) is combined with the heat sink of the biome itself.  Note that there are heat sinks everywhere around you, further out in the grid as well.  Running this for 8 steps, we get a settled heat value of 0.327444, with a final heat grid that looks like this:

0.00  0.00  0.00  0.00  0.00  0.00  0.00 0.00 
0.00 -0.39 -0.54 -0.57 -0.56 -0.52 -0.38 0.00 
0.00 -0.54 -0.75 -0.78 -0.75 -0.69 -0.50 0.00 
0.00 -0.57 -0.78 -0.73 -0.56 -0.62 -0.50 0.00 
0.00 -0.56 -0.75 -0.56  0.37 -0.45 -0.46 0.00          
0.00 -0.52 -0.69 -0.62 -0.45 -0.52 -0.44 0.00 
0.00 -0.38 -0.50 -0.50 -0.46 -0.44 -0.34 0.00 
0.00  0.00  0.00  0.00  0.00  0.00  0.00 0.00

This grid highlights a few interesting things.  First, the values for the edges of the sim grid are not computed, so they have a constant heat output of 0.00 for their neighbors (though their R values do matter to determine how much heat leaks from those adjacent neighbors into the edges, but the heat doesn't build up there---it's like heat-0 bin that can hold infinite heat).  Second, we can see the negative heat values from the biome accumulating over time.  This is a little weird, because "heat" and "temperature" are conflated here.  In general, heat sources increase the temperature of a tile by so many units per step.  Heat sinks are a little weirder, but they decrease the temperature so many units per step.  For biomes, this gets really weird, because what we're really talking about is base temperature (-0.15), but the biome is actually outputting (or absorbing) heat every step.  It seems like maybe biome temp needs to work differently, and set a baseline temp that the heat sources and sinks then modify (though what happens at biome boundaries?)

Similarly, after 8 steps in the desert, we see a final grid of:

0.00 0.00  0.00  0.00  0.00  0.00 0.00 0.00 
0.00 5.35  7.55  8.34  8.35  7.57 5.36 0.00 
0.00 7.55 11.08 12.44 12.47 11.14 7.59 0.00 
0.00 8.34 12.44 14.13 14.30 12.60 8.42 0.00 
0.00 8.35 12.47 14.30 15.23 12.77 8.45 0.00 
0.00 7.57 11.14 12.60 12.77 11.31 7.64 0.00 
0.00 5.36  7.59  8.42  8.45  7.64 5.40 0.00 
0.00 0.00  0.00  0.00  0.00  0.00 0.00 0.00 

The final heat value at the player tile is 15.229654, which is way above our target of 10.  Again, you can see the heat building up in the tiles over time from the heat source of 2 at each desert tile.

Okay, so those are some real examples.

Offline

#6 2019-02-07 18:40:59

jasonrohrer
Administrator
Registered: 2017-02-13
Posts: 4,805

Re: How should clothes work heat-wise?

Quick response before posting more stuff:

But I DO want you to take off your hat when you come in the house.  You say it's tedious, and you'd never do it.... well, currently, you don't even have a house, because there's no point.  But it's just one click.

You currently do a bunch of other stuff that takes way more clicks (like cook elaborate foods) because the benefit is clear.

I think the problem is that the benefit is marginal.

Clothing is NOT supposed to be just decoration in this game, or just set it and forget it.  Like everything else in the game, it should matter.

Offline

#7 2019-02-07 18:51:39

jasonrohrer
Administrator
Registered: 2017-02-13
Posts: 4,805

Re: How should clothes work heat-wise?

Now, a few weird consequences of this:


1.  Since clothing acts like insulation in your current tile, it holds the heat in there.  This is true for your body heat, which makes sense, but also true of a fire in the tile, or the biome's heat contribution, which makes no sense.  However, it also doesn't really make sense for the clothing R value to "protect" you from whatever heat effect is around you (because, you know, wearing a really thick coat does not keep you cool in the desert---the thermos principle doesn't apply here for some reason, probably because your body is itself a source of heat---but then what about oven mitts, or firefighter gear?).  But anyway, perhaps clothing should be handled separately from the environmental grid simulation.

2.  The way biome heat builds up is weird, and makes it hard to reason about.  The current values for the biomes were set by trial and error, based on what feels right, and they are very dependent on the number of steps that the simulation runs.  For any heat-modifying biome, the simulation doesn't settle, but goes to infinity, which is not great.  Running the sim for 16 steps would make the desert hotter.

3.  But the above is also somewhat true for insulated heat in general.  If R=0 around a heat source, it seems like the heat map eventually settles into a steady state.  But as soon as R > 0, even a tiny bit, then a fraction of the heat produced builds up each step, and combines with the new heat introduced each step, meaning that the heat there will grow to infinity, given sufficient steps.  Something feels wrong here.


All of this stuff makes heat values and insulation values hard to reason about without trial and error in the actual simulation.  This is why the current R values for clothing are so weird.

Offline

#8 2019-02-07 19:01:28

Twisted
Member
Registered: 2018-10-12
Posts: 663

Re: How should clothes work heat-wise?

Cooking elaborate foods is a process that is enjoyable, also you end up with something that benefits multiple people. Making food is, as it stands now, the main gameplay mechanic of One Hour One Life - it is literally the game. Clicking on your head to take off your hat is not very interesting, and the benefits would have to be humongous to make people to it.

Besides, if you take off your hat you have to put it somewhere, and it will take up storage space. Storage space is by far the most valuable resource in the game as it stands now, which is also one of the reasons houses aren't that common - they take up valuable space that could better be used for something else.

Don't get me wrong, I would looooooooove for there to be a reason to build houses. As it currently stands they take up a lot of work, and they generally make the village worse by removing available space. One way I see buildings working out is if we got new storage objects that must be inside a building to function.

Offline

#9 2019-02-07 19:22:40

jasonrohrer
Administrator
Registered: 2017-02-13
Posts: 4,805

Re: How should clothes work heat-wise?

Yes, when there's 0 insulation involved and only one heat source (body), the simulation does seem to settle as the steps increase:

PlayerHeat( 8) = 1.408993
PlayerHeat(16) = 1.564558  (+11%)
PlayerHeat(32) = 1.639687  (+ 4%)

Add some insulation (a fur hat), and we get:

PlayerHeat( 8) = 1.660048
PlayerHeat(16) = 1.828499  (+ 9%)
PlayerHeat(32) = 1.909757  (+ 4%)

This doesn't seem that out of line.  As the heat builds up in the center, relative to the neighbors, so does the transfer rate.

What about a bigger heat source with insulation around it?  A fire surrounded on 7 sides with walls, with the player standing in the middle:

PlayerHeat( 8) = 19.578320
PlayerHeat(16) = 24.889904 (+27%)
PlayerHeat(32) = 28.614376 (+15%)

Again, this seems to be settling, so that's good, but settling slowly.

What about a player standing naked in the desert?

PlayerHeat( 8) = 15.229654
PlayerHeat(16) = 21.317265 (+40%)
PlayerHeat(32) = 24.403530 (+14%)

Settling again, but even more slowly.  That 40% jump is awful.

Not that I'm really going to be adjusting the number of steps simulated in the future (though I have in the past), but the fact that it is so sensitive the the number of steps simulated is troubling, especially for the "naked in a biome" test.  Intuitively, that should just be a fixed temperature that doesn't vary with length of simulation.

What I said about things going to infinity above is not currently true, because the edges of the simulation grid are held at 0.00, they absorb more and more heat as the heat in the middle builds up (greater heat differential means more heat moves there per step).  I'm pretty sure all possible grids settle eventually at finite values because of this, but the way they blow up during early steps makes them hard to reason about.

Offline

#10 2019-02-07 19:54:02

Léonard
Member
Registered: 2019-01-05
Posts: 205

Re: How should clothes work heat-wise?

jasonrohrer wrote:

You currently do a bunch of other stuff that takes way more clicks (like cook elaborate foods) because the benefit is clear.

This is very different and not really comparable in my opinion.
If I make a bunch of pies, the pies are made.
They stay a benefit no matter what.
I can just go around and eat pies everywhere I go.

If I make clothes and I'm forced to strip/gear up depending on location, then yes clothes are tedious.
Especially with the way they are right now.
As it is right now, you need a whole outfit to have a good benefit in neutral/cold biomes.
Me stripping each and every single pieces, finding a place to put them on the ground (yeah, that makes it unpractical in cities with the current level of litter) and naively wish no one will take it is just unrealistic.

jasonrohrer wrote:

I think the problem is that the benefit is marginal.

I do agree that the benefit is marginal.
Which is why I generally don't care about clothes in any of my lives.
I make sure I have a backpack (if I have to go out and gather stuff, which is extremely often) and then I'm set.
I'll just stick to eating wild foods and pies while in town (I'll also happily vary when people produce other nice foods like stew).
Part of it is exactly because they become the opposite of beneficial in hot biomes.
Let's also not forget that they are an absolute death trap when it comes to dealing with mosquitoes.
Considering that people are smart enough to build towns in hot areas and that you need an actual full set for it to be a bit beneficial in neutral biomes, I actually consider clothing useless/a negative thing.
I think everyone who's browsing this forum knows that when they see someone make something other than a backpack using rabbit skin this person is new at the game.
That's always my reaction and probably everyone else's.

But let's imagine for a second that you do make the benefit much bigger and that people have a much bigger incentive at using clothes.
I'd like to compare clothing with eating.
In the game, one minute is a whole year.
Yet eating and temperature management is still stuck in real time (for obvious reasons).
For eating, it's very simple. Just take food and click on yourself. Boom you've managed to eat.
With clothing, things are much more different.
If you expect me to strip/wear every time I move somewhere, this is going to get ugly.
First, I have to strip every single piece of clothing one by one and then find a place to put them (which I must remember later on).
If I have to strip in the city, I also have to worry about thieves and litter.
With eating things are way simpler as carrying food is super easy.
So even if you made the benefit bigger, I personally would still not wear clothes.
Because let's be honest, the amount of stuff I would have to worry about every time I decided to remove it would just be too much considering how much people actually move within a lifetime.

I would suggest first addressing this before anything else.
An obvious suggestion would be to allow making complete outfits (by adding the parts together) and allow wearing/stripping of the whole thing in one click.
But even with that I still wouldn't bother because of the stealing problem.
As it is right now it's not a problem with food because there are ways to mass produce it, once a baker has made a good bunch of pies you can expect adults won't starve for quite a bit.
I would consider clothing that you need to wear/strip only if I don't have to worry about it being stolen. And for that to happen, we need a way to mass produce clothing as well.
Maybe it's time to finally consider the loom for a better/upgraded clothing system?

That would mean you could dress your town in a single job and not have to worry about it later on.
There would be enough for everyone and so no stealing problem (like for food).
Adding to that the outfit suggestion I think I would start actually wearing clothes.
It still wouldn't solve the problem of where to put it when you strip (someone already mentioned that's a problem) but would definitely make it not tedious.

Offline

#11 2019-02-07 19:59:42

CrazyEddie
Member
Registered: 2018-11-12
Posts: 676

Re: How should clothes work heat-wise?

jasonrohrer wrote:

All of this stuff makes heat values and insulation values hard to reason about without trial and error in the actual simulation.  This is why the current R values for clothing are so weird.

All the more reason that simulation is probably the wrong approach (besides, it seems to consume an awful lot of server resources, even after scaling it back from once every server step to once every X seconds). Perhaps you might start with the desired gameplay and reason from there, rather than starting with a physics model.

From a gameplay perspective, I want clothing to matter too! And buildings! But right now they don't. The obstacles to use are high: clothing is expensive, transitions between hot and cold environments are frequent, dressing and undressing is tedious (meaning both time-consuming and uninteresting), and clothing storage is a nightmare. The benefits are small: a player in a prosperous town can get by just fine without clothing because food is abundant; good players can get by just fine without clothing in any town, prosperous or not.

Just cranking up the nakedness penalty to make the benefits bigger isn't going to help. For one thing, it'll destroy what little reason there is to have buildings. If I can be at roughly the right temperature when clothed outside, but then I have to take off all my clothing when I walk inside, then I'm going to make sure I never have to walk inside. And if the penalty for being underdressed in normal biomes and overdressed in warm biomes becomes severe enough, you'll end up with piles of clothing on the borders between biomes and a lot of grumpy players bitching about the several seconds they have to spend juggling whatever they were carrying with six additional tiles worth of clutter and busywork (hat, shirt, coat, pants, shoe, shoe).

[Incidentally: note that if it were feasible to take off your hat when you went in a building, nobody would take off their hat - they would take off their shirt instead. And if it were still feasible to take off additional clothing, they'd next proceed to take off their hat AND their pants.]

I think it's not just clothing, but temperature management in general - clothing, biomes, buildings, and fires - that needs a re-think, taking into consideration the actual gameplay experiences the game provides now. I appreciate that your aesthetic is trying to capture things like "you don't have an inventory, what you have is just what you can carry", and I appreciate that "you have to put on and take off clothing when you walk from the desert to the mountains" is part of that aesthetic. I think it's gone awry here somehow, and perhaps an additional level of abstraction would be warranted.

Last edited by CrazyEddie (2019-02-08 01:46:12)

Offline

#12 2019-02-07 20:03:14

Tarr
Banned
Registered: 2018-03-31
Posts: 1,596

Re: How should clothes work heat-wise?

Clothing will almost always be unneeded as long as they don't either move us towards center or the deserts stay better temperature for living than any of the neutral biomes. Back before you nerfed the heat on the neutral biomes villages would be more swamp based but overall you had some variety as anywhere was a viable place to live as long as you had water. Even if you went as far to buff neutrals by a little then nerf deserts to be matching clothing would become more desirable as making clothes in neutrals would work out better than just standing around nude in the desert.

If you felt that having neutrals + desert being equal or close in value was too good maybe start shaving from the invisible food bonus server wide? At this point even Eve has a lot of different food options to make up for lack of end game options.

As is you either face losing one pip every 4.8 seconds naked in a neutral biome or one every 8.3 seconds in the desert. The desert just overall has to be hotter to match the coldness of neutral biomes or people will naturally only live in desert cities as it's much easier to keep 10 nude people in a desert than to make 10 full sets of clothing to reach desert levels of warmth


fug it’s Tarr.

Offline

#13 2019-02-07 20:10:14

Booklat1
Member
Registered: 2018-07-21
Posts: 1,062

Re: How should clothes work heat-wise?

I'm honestly more concerned about buildings than clothing and I agree to everything Crazyeddie said.

Biomes are rather small and mixed so that its better to set on small patches of jungle or desert than trying to make buildings and clothing.

I think this is more an issue of balance than of mechanics (except for buildings, we could use more cold work stations). I mean, is there a reason why desert is so good for making settlements? And why are grasslands and prairies so cold? Shouldn't these biome be a bit hotter so that desert borders weren't indisputably better than buildings or using clothing?



Some suggestions i've gathered from forums, steam reviews and reddit for overall better heat mechanics include:
-floors having a heat moderating factor
-rebalancing base heat of biomes (desert too good and it's borders even more, too hard to get to decent heat in cold biomes)
-clothing designed to perform differently (clothing for the cold, clothing for heat, clothing that kinda protects from both)
- bigger biomes (as suggested in that old ancient thread and fitting with the new big server)


I know this is a lot, but I don't see how clothing and buildings would work without some redesign and rebalancing. I believe the game woud greatly benefit from this though (surprising how many of the bad steam reviews mention the lack of buildings as a reason of disappointment)

Offline

#14 2019-02-07 20:11:04

CrazyEddie
Member
Registered: 2018-11-12
Posts: 676

Re: How should clothes work heat-wise?

Tarr's point reinforces my "rethink temperature management" exhortation. Do you know that the current meta is that Eve camps must be built on desert or jungle? The reason is simple - food consumption goes through the roof when naked on neutral biomes vs. naked on desert or jungle. Eve camps don't have the luxury of clothing for a long, long time and are critically short of food. Putting the berry farm (where children and mothers spend most of their time) on desert vs. grass very often makes the difference between surviving vs dying within three generations.

But that has made the Eve meta very stale.

Offline

#15 2019-02-07 20:15:50

Booklat1
Member
Registered: 2018-07-21
Posts: 1,062

Re: How should clothes work heat-wise?

CrazyEddie wrote:

Tarr's point reinforces my "rethink temperature management" exhortation. Do you know that the current meta is that Eve camps must be built on desert or jungle? The reason is simple - food consumption goes through the roof when naked on neutral biomes vs. naked on desert or jungle. Eve camps don't have the luxury of clothing for a long, long time and are critically short of food. Putting the berry farm (where children and mothers spend most of their time) on desert vs. grass very often makes the difference between surviving vs dying within three generations.

But that has made the Eve meta very stale.


The much worse alternative is rushing fire as fast as you can and keeping it running forever, wasting tons of kindling that you'll need for tools. It's just not viable.

Offline

#16 2019-02-07 20:48:18

Uncle Gus
Moderator
Registered: 2018-02-28
Posts: 567

Re: How should clothes work heat-wise?

I experimented with a different temperature system myself at one point. The main difference I think was the way I eased the heat transfer. Heat transfers from one object to another proportional to the difference, so if you track the temperature of a hot object in a room over time, it will curve downwards in an asymptote towards the ambient temperature of the room. I implemented this as the heat transfer being a percentage of the difference. Insulation slows down this transfer, so I made the insulation a multiplier of that percentage. I also removed the insulation as a factor in the heat calculation cycle and moved it to the final step where the player heat moves towards the calculated heat.

You can compare the code changes here: https://github.com/UncleGus/OneLife/com … emperature

Another suggestion would be to track two separate insulations, one for heating and one for cooling. This would allow for clothes that keep you warm, and clothes that keep you cool. I half implemented this by only applying the clothing insulation when the ambient temperature is colder than the player. This way you can warm up next to a fire quickly, and cool down slowly as you move about. The same concept could be used in reverse, so that standing in a cold place allows you to cool down quickly, and then walking about in the desert you warm up slowly.

Offline

#17 2019-02-07 22:49:18

Ferna
Member
Registered: 2019-02-01
Posts: 28

Re: How should clothes work heat-wise?

Here's a few suggestions to consider based on what we know about historical clothing styles (before modern industry) and real-world thermodynamics!

1. Historically, insulative cloth has had two, totally different purposes: while it's commonly used for retaining body-generated heat in cold environments, it's also almost ubiquitous for warding off solar heat in hot environments.

For real societies, that means insulative clothes have been very common both in the coldest extremes like the Artic and hottest extremes like the Sahara desert. Typically, the only fundamental difference between these styles is how readily you can adjust airflow within the garments (to encourage or discourage heat loss through sweating).

In the current simulation, player heat and tile heat are added together and then amplified by the insulation in clothing. That seems to generate rather counter-intuitive heat behavior in hot biomes or near heat sources, where insulative clothing causes you to roast instead of preventing the heat from affecting you quickly.

As a thought experiment, if you're toasting your hands by a campfire in winter: do you typically keep your mittens on or take them off to get more heat? Intuitively, taking off insulation should make you absorb the warmth faster.

2. Both historical and modern building insulation are very effective at normalizing towards a single, consistent temperature. This is primarily due to how quickly natural (or forced) airflow equalizes temperature inside.

In the current simulation, heat sources and sinks don't travel very far at all compared to real-world conditions. That's probably the main reason that building walls, functionally, isn't all that worthwhile right now despite their high insulation rating. In player usage, interior spaces larger than 3x3 tiles tend to quickly regress to the same temperatures you'd get with flooring alone since heat travel is much weaker than tile-based heat over most distances.

An interesting, alternative solution for this might be to intentionally simplify the heat calculations within buildings, effectively treating completed walls as a single temperature zone with averaged conditions across all tiles. That would allow players to treat temperature control as a new game mechanic, carefully selecting the balance of biomes underneath buildings and adding campfires (+heat) or snowmen (-heat) for fine tuning the temperature ranges indoors in a way that outdoor camps simply can't match.

3. Historical clothing styles were always designed around what was safe / effective for daily use.

With Yellow Fever currently posing a lethal threat (without assistance) if players have more than 40% insulation, it's very difficult to imagine small adjustments which could convince players to wear more than 1-2 clothing pieces. That interaction should be adjusted somehow, perhaps by allowing players to take off clothing once sick or having clothes not affect Yellow Fever penalties. It's not really safe to just avoid Jungle biomes, since Mosquito Swarms can spawn into any biome that's adjacent to a Jungle somewhere.

Offline

#18 2019-02-07 22:50:24

Kinrany
Member
Registered: 2018-01-22
Posts: 712

Re: How should clothes work heat-wise?

I think heat transfer is very counterintuitive IRL, and trying to simulate it should be out of scope.  It's easier to just rebuild the rules from scratch, making them as simple as possible and starting with the desired effects on the economics and player behavior.

But CrazyEddie already said this.
Another important part:

CrazyEddie wrote:

The benefits are small: a player in a prosperous town can get by just fine without clothing because food is abundant

Clothing should be cheaper than making more food, otherwise nothing at all will help.

Last edited by Kinrany (2019-02-07 23:21:56)

Offline

#19 2019-02-07 23:29:08

CrazyEddie
Member
Registered: 2018-11-12
Posts: 676

Re: How should clothes work heat-wise?

Jason, do you know that temperature management is important exactly one time in each life - when you are a baby, and your mother (assuming she is a decent player) is trying to keep you fed without starving herself? Good mothers will tell you to keep your temperature mid-range, and good babies will do so. But here's the thing - that doesn't rely on clothing. Instead, the baby has to park themselves on a tile bordering a hot and a cold biome, and move back and forth between two tiles as needed.

Doesn't it seem a little weird that in a single camp, whether your baby lives or dies depends on whether they're standing on tile coordinate X,Y or X+1,Y ? That standing HERE means you'll lose a pip every four seconds, but standing five feet to your left, THERE, means you'll lose a pip every fifteen seconds?

---

Here is a suggestion for making clothing and buildings important, but also desirable rather than despised:

First, drastically increase the size of the regions within which temperatures are roughly the same. If your town was established someplace warm, it should be warm everywhere in town. If your town was established someplace cold, it should be cold everywhere in town. It's just plain weird, to say nothing of inconvenient and annoying, that you need to be naked when going to the pie shop but fully clothed when going to the carpentry area.

Towns are larger than biomes, and are composed of multiple biomes. But towns shouldn't have big swings in temperature. Climates should be larger than biomes as well. Maybe do something like this: Every tile has a temperature, and that temperature is determined by the average biome temperature of all tiles within, say, a 50-tile radius. There will still be hot, warm, cool, and cold places all across the map, so Eves will still want to keep searching for a spot that isn't too hot or too cold. But when they find a spot they like, the entire camp (and eventually, the entire town) will be roughly that temperature, and people won't need to don and shed clothing just because they're heading into the nearby jungle to grab some bananas or into the snow to kill some seals.

Clothing would still matter, because most spots would be too cold - only the middle of a very large desert or jungle would be warm enough to be naked without significant penalty. But putting on and taking off clothing wouldn't be necessary just to walk around town and do the routine tasks of running a town. And that's good, because putting on and taking off clothing isn't interesting gameplay.

Next: have warm clothing and cool clothing. Warm clothing raises your temperature, and will keep you warm in cool or cold climates but heat you up in warm or hot climates. Furs and wool. Cool clothing moves your temperature towards neutral - in cool and cold climates, it insulates you; in warm and hot climates, it protects you from the sun. Reeds, straw, cloth. This provides a reason to not be naked in every climate, and provides some diversity: you have to construct the right kind of clothing depending on what climate you live in.

Next: make clothing easier to live with. Make a new container: "Pile of Clothing". Give it enough slots that someone can drop all their gear in one pile. I'm sure it will take some engine changes to implement (so that, for example, you can't store non-clothing stuff in a pile of clothing) but at least this way someone putting on or taking off their stuff won't take up SIX TILES with a bunch of crap. Free space is precious, please don't make it even harder to come by than it already is.

Next: Buildings. Make buildings move temperatures towards neutral, not universally make things hotter. Once again, in cold climates buildings provide insulation; in hot climates, buildings provide shade (and floors provide insulation from sun-warmed ground). This would provide a reason to make enclosed (or even semi-enclosed) spaces in any climate. Maybe walls and floors could radiate "temperature neutrality", and not have to deal with the question of enclosure.

Next: Fire. Fires and coals should bring your temperature close to neutral in a cold or cool climate, and have little effect in a warm or hot environment. In other words: when cold, fires are for heat and utility (cooking, forging); when warm, fires are for utility. Avoiding fires in a warm climate isn't an interesting challenge, it's just weird. People in warm climates don't stay away from fires because they're too hot, even though people in cold climates cluster around fires to stay warm.

Fires and coals should heat things up (when cold) within a short radius. Lighting fires and letting them burn down to coals needs to be a reasonable alternative in Eve camps to getting a lot of clothing in a big hurry.

Finally: Fires in buildings. Buildings should make fires much more effective, including possibly heating up buildings in warm climates (despite what I just said above about fires not making warm climates hotter). Here's maybe one way to do it: from each fire, flow outwards X tiles in every direction (manhattan distance and direction), stopping if you hit a wall. Count the number of floors and walls you encounter. Increase the temperature on every tile you encounter, and increase it by an amount that depends on how many floors and walls you encounter.

This would have the effect of causing people who spend most of their lives inside buildings with fires (i.e. smiths and bakers) needing to wear cooler clothing than the other people in town. People stopping by briefly would get hot, but probably wouldn't bother changing clothes; smiths and bakers venturing out briefly would get cold, but again probably wouldn't bother changing clothes. But people expecting to spend a lot of time there would find it worth their while to take off some clothing (especially if they could keep it all in a Pile of Clothes container!) and then put it back on when leaving for a long-enough time.

---

All of this provides some interesting and useful reasons to have and manage clothing, buildings, and temperature. In most climates it will always be possible to improve your temperature by using the right kind of clothing and the right kind of building (i.e. with or without fires). Different circumstances will call for different amounts and kinds of clothing. There won't be a need to doff and don clothing for routine matters, but a long-term change in plans may call for a change in clothing, and could provide strong incentives to do so.

Food for thought.

Offline

#20 2019-02-07 23:34:24

BlueDiamondAvatar
Member
Registered: 2018-11-19
Posts: 322

Re: How should clothes work heat-wise?

jasonrohrer wrote:

Quick response before posting more stuff:

But I DO want you to take off your hat when you come in the house.  You say it's tedious, and you'd never do it.... well, currently, you don't even have a house, because there's no point.  But it's just one click.

You currently do a bunch of other stuff that takes way more clicks (like cook elaborate foods) because the benefit is clear.

I think the problem is that the benefit is marginal.

Clothing is NOT supposed to be just decoration in this game, or just set it and forget it.  Like everything else in the game, it should matter.

So here's the thing.  We don't have houses, but we do generally build our towns on the edge of deserts.  No one is taking off their hats when they go back and forth between the desert and the tundra, either. 

You may WANT clothing to matter, but at present, it does not.  We are trying to give you suggestions for how to make it matter to the regular players, but you are talking about the mathematics behind your code.  This feels like a disconnect. 

I loved everything in Ferna's post. 

1. Clothing reduces our exposure to environmental heat sources and sinks - essentially reducing the range of possible heat ranges (like Twisted suggested as a mechanic). Different clothing can be specialized at reducing heat or increasing heat, but either way they have an overall insulating effect.

2.  Rooms in real life come to an average temperature.  We don't experience large differences in temperature over the couple of meters across a room (unless you are standing by the heat source).   A game mechanic that created a single average temperature for an enclosed space would absolutely get me to build more rooms and prefer towns that have buildings. 

3.  I can easily survive yellow fever on my own - as long as I'm wearing less than one loincloth and two shoes.  But I've died in the middle of badlands while wearing a seal fur coat on top of that.  Because that's where the mosquito swarm was.  So I'll never wear more than a loincloth and shoes, even when hunting for iron in badlands surrounded by snow.  The idea of letting clothing reduce the potential temperature range (and thus get less sick from the mosquito bite) is the thing that would change this.


--Blue Diamond

I aim to leave behind a world that is easier for people to live in that it was before I got there.

Offline

#21 2019-02-08 00:19:10

Taz
Member
Registered: 2018-12-08
Posts: 41

Re: How should clothes work heat-wise?

Heat should work based on desired gameplay.

I.M.O. --

Grasslands should be the ideal biome for players to live in.  Grasslands should be just slightly too cool.  Such that making and wearing a straw hat and straw skirt (or a simple wool, or seal skin) is enough to bring players close to perfect middle temperature when standing in a grasslands biome.  Should also be a perfect temp for a naked person (babies) standing within 1-2 tiles of a normal slow-burning fire.  The grasslands --- where food and fertile soil are most readily available --- are where the game temperature mechanics should be prompting people to make camps and early villages.


Prairies and Swamps should be cooler than grasslands, but still decently livable places IF players are wearing more clothes (like rabbit shoes, shorts, and shirt).  Those villages that invest their time/resources into making more clothes are the villages that should be able to comfortably expand into the prairie and swamp biomes.


Deserts and Jungles should be too hot to comfortably live in without shade.  Being inside a completed building (4 connected walls with however many doors) should provide shade.  Being inside a building (with no fire) should make deserts and jungles feel cooler temp and more livable.  Villages that have become towns capable of spending time on housing projects should thusly be able to expand into desert and jungle biomes if they want. 


Badlands and Arctic should be too cold to comfortably live in.  Though being inside a building with a lit fire (imagining a centrally located fire inside a 5x5 building) should make badlands or arctic feel warmer temp and more livable.  Like with deserts and jungles, villages that have become towns capable of spending time on housing projects should thusly be able to expand into badland and arctic biomes if they want.  But with the added issue of needed to keep a fire going inside the buildings in order to get the full warmth benefit of a house in those cold/harsh biomes.



***

I don't know the coding.  I don't know the programming maths.  I just think that the above biome situations should be the norm of the gameplay.  And all the effects of being too hot because of too many clothes or wrong type of clothes, or being too cold from too few clothes or wrong type of clothes, should be extrapolated from the above in whatever ways make the most gameplay sense.


***

Last edited by Taz (2019-02-08 00:21:36)

Offline

#22 2019-02-08 00:21:03

desertsyd
Member
Registered: 2018-07-18
Posts: 26

Re: How should clothes work heat-wise?

Add clothing provides a chance to survive a creature attack and I'll wear it more often.

Otherwise, when out exploring/gathering it's a hassle not worth having.

Offline

#23 2019-02-08 01:23:16

happynova
Member
Registered: 2018-03-31
Posts: 362

Re: How should clothes work heat-wise?

A lot of good thoughts people have had here.  I'll just add a couple of small things.

One is that, as several people have observed, the fact that significant clothing turns an easily survivable mosquito attack into a death sentence means that when a player leaves their relatively comfy edge-of-the-desert town and goes out into the big, cold world to search far and wide for resources, the smart thing to do is to strip down, rather than gear up, and accept the hit to food efficiency that being cold gives you through most of your travels because it's better than insta-dying to that out-of-biome mosquito swarm behind the tree.

And stripping down for fear of mosquitoes seems kind of backwards, doesn't it?  Shouldn't clothing give you protection from mosquitoes?  Not factoring in the insulation penalty of clothing for yellow fever (or perhaps allowing the afflicted person to remove clothing, even if they can't do anything else) would make clothing while traveling viable again, but maybe it would be good to go beyond that.  What if wearing clothing gave you a chance of not actually getting yellow fever when stumbling upon mosquitoes?  I don't think that would unbalance jungle biomes too terribly, and it would be a great motivator to actually produce clothing.

The other thing I wanted to add is that I've noticed that very new players always seem obsessed with having clothing.  To them, clothing is a sign of civilization and status.  I always feel a little weird when I have to say to them, "You don't need clothes, you're better off naked."  But they usually are, because we're usually in the desert.  It does seem sort of counter-intuitive that experience devalues clothing, and that people have to unlearn the desire for it.

Offline

#24 2019-02-08 01:24:54

happynova
Member
Registered: 2018-03-31
Posts: 362

Re: How should clothes work heat-wise?

desertsyd wrote:

Add clothing provides a chance to survive a creature attack and I'll wear it more

As someone who lives in a place where there are rattlesnakes, wearing pants in snake-infested areas is recommended. smile

Offline

#25 2019-02-08 02:17:47

Redram
Member
Registered: 2018-08-16
Posts: 113

Re: How should clothes work heat-wise?

A lot of good ideas here, and absolutely important is the point that it is far too tedious to remove and put on every single piece of clothing to make it practical.  How clothing works needs rethought. 

CLOTHING

You need to have a maximum of 3 temperature affecting clothing items - head, outfit, and coat.  Footwear needs to not affect temperature, especially if you insist on keeping it as two separate pieces.  Footwear can increase your speed a bit - very slight though.

Your outfit constitutes your shirt and pants (they are one item though - 'a rabbit fur outfit' for instance).  Your outfit always stay on, even in a desert.   It, along with a light hat, keeps you from getting 'sunstroke'.  Naked outdoors in hot climate equals sunstroke, with outfit mattering more than hat.    Sunstroke could have many potential affects.  Better (higher tier) clothing lasts longer.

If you're going on a cold trip you need to put on a coat and hat, NOTHING MORE.   You already have your outfit on all the time; the coat goes over the outfit.   

Then give us a coat rack that is built on building walls.   One click puts your coat and hat one the rack, the other click takes them off.   ONE CLICK!!!!!!!!!!!!!!!!!!  Perhaps clothes on the coat rack remain yours as long as you live.  Nobody else can take them.   If you die, they fall on the ground - free game.  You can always place them one the ground manually, or give them to others.   This obviates the theft problem.    The coat rack for a given section of wall can hold multiple coat/hat sets, with the possibility that each can be owned by a different person.

BUILDINGS

Buildings, as has been suggested I think scores of times, need to have the benefit of allowing stuff to be built inside that would otherwise decay.  Once you've enclosed an area in walls and doors, with floors, it becomes a building, indicated by the floor tiles becoming a darker shade.  If you want you could require roofing material be added to each wall section, and once they all have 'thatch' or 'shakes' or 'asphalt shingles' or whatever, *then* it becomes a building. 

Regardless, an enclosed building should allow things like coat racks and shelves to be built on the walls.   Things like furniture and machinery can be built regardless of building or not, but if not in a building they decay rapidly.  A building protects you from the sun.  If the biome is cold, the building is warmer, and with a fire warmer still.  The fire can only heat a building of a maximum area.   Beyond that it does nothing. Later you can make better stoves to heat larger buildings.   If buildings were require to have better storage and higher tier machinery, that alone would drive people to build them regardless of heat affects or lack thereof.

BIOMES

Now, think outside the temperature box.  Start thinking about biomes and how you can make them support the behavior you want.     

Right now people cluster in deserts, for the pips.  You need to make deserts have more drawbacks if you don't want people settling there.   For instance, crops in a desert need to be watered *twice* before they will grow.  Now you've made farming in a desert have pluses (lower food drain) but minuses (heavier water use). Or take it further.  Deserts need 3x the water, plains take 2x the water for plants that are not native to plains.

Next, make swamps NEVER appear next to desert biomes.   Now there will be no ponds near deserts, so that double plant watering becomes more onerous.   Make biomes consistent.   Get rid of these tiny pieces that pop up here and there.  and make sure that each biome is sizeable.  What you're doing here is trying to prevent swamps and desert from being so close that a town can straddle them and whatever biome is between.

Now address the clothing-mosquito problem a bit.   Make mosquitoes despawn in any biome other than jungle or swamp.  This obviates the problem of people getting ninja-skeetered in off biomes.  So then they might be more willing to wear warm clothing in areas they know mosquitoes cannot live ever.   If they can still 'overlap' into swamp, fine, they might be there occasionally.  If biomes can't overlap because of previous changes, then give swamps a lower chance for mosquitoes.   And maybe make the two mosquitoes give different effects.  Jungle mosquitoes give malaria (green tinge), which becomes the deadly one.  Yellow Fever is swamp mosquitoes, and it does not have the heat component, just forces you to drop your stuff.

If necessary, keep going and give other biomes more disadvantages *aside from temperature* that will make people reconsider settling there.  When all this discussion just focuses on temperature, the solutions have to become very complicated to get all desired results.   But if you bring other factors into play, you can give each biome its own distinct advantages and disadvantages that don't have to be as complicated as they do if you try to divide the biomes based on one vector alone.

Along the lines of what a previous person said, I think this obsession over 'realistic' heat calculations is muddling the forest for the trees.  Stop agonizing over how to most accurately calculate heat - work backwards from the behavior you want.   I don't think you need heat calculations at all.  When you're in a given biome, you are at the heat level of that biome, modified by clothes, buildings, and fires, but trending toward neutral.  You should not be able to overheat in cold biomes outside of something truly extraordinary, like if you have a blast furnace or something in the game.  It's very easy for animals to deal with heat, outside of certain very extreme environments, and even then it's mostly the lack of water that's problematic.  That's why the tropics are so teeming with life.   Cold always has been the far, far more severe threat to life. 

In summary, think outside the temperature box.   Examine the behavior you want or don't want, then think how the many factors of the game can be brought to bear to change that behavior.

Last edited by Redram (2019-02-08 02:26:00)

Offline

Board footer

Powered by FluxBB