Better Temperature modeling

Started by lorebot, August 20, 2016, 11:40:38 PM

Previous topic - Next topic

lorebot

One of my biggest gripes about the game so far is how the the temperature of a tile is determined. I'm still trying to figure out exactly how it works, but from my observations any square that's considered 'outdoors' is the same temperature regardless of what objects or effects are in the area.

Middle of the winter thunderstorm start a raging forest fire blanketing half the map? Your pawns can still get hypothermia while trying to fight it.
Middle of summer and you built a cooler facing outdoors? Your pawn will still get heat stroke standing right in front of the cold side of it.

The game already has a reasonable temperature model for tracking indoor temps, or so it seems. Why isn't this model applied to the entire map and have the weather adjust the 'outdoors' temperature by changing the temperature of the first 2 or 3 tiles at the edge of the map and then letting that temperature propagate through the area. This would allow things like outdoors campfires or geothermal vents to provide some heat for freezing colonists and make temperatures outside an inadequately insulated and over powered freezer cooler for the first 1 or 2 tiles just outside the walls. It would also make living near geothermal vents on desert maps more hazardous since they would just make things even hotter than the weather already does.

Pax_Empyrean

Modeling the thermodynamics of the outside world would be ridiculously CPU intensive for basically no gain. If there are to be temperature variations outside, it would likely work best to implement them as localized adjustments to the outside temperature baseline.

chaotix14

Quote from: Pax_Empyrean on August 21, 2016, 01:55:33 AM
Modeling the thermodynamics of the outside world would be ridiculously CPU intensive for basically no gain. If there are to be temperature variations outside, it would likely work best to implement them as localized adjustments to the outside temperature baseline.

I was going to maker a similar point in how CPU intensive it would be to even just store and track the individual heat value for each tile(even on a 100x100 map that's 10000 tiles that each need to store and track a heat value individually) instead of looking at it in a room by room basis. Even just that would force a lot of players to step down a notch in map size, let alone model some basic thermodynamics in the outside area.

SpaceDorf

Quote from: Pax_Empyrean on August 21, 2016, 01:55:33 AM
Modeling the thermodynamics of the outside world would be ridiculously CPU intensive for basically no gain. If there are to be temperature variations outside, it would likely work best to implement them as localized adjustments to the outside temperature baseline.

This should work well.  I would imagine temperature being calculated about 3 tiles around a temperature changing tile located outside. ( cooler exit, fires )  maybe more if the temperature varies strongly from the main map value. And yes I am aware that way a big fire could be a challenge to your FPS. But also made it a threat to fight.
But combined with a general direction of wind on the map ( as mentioned elsewhere ),  it could give fires direction and make them a more realistic threat. Especially on hot and dry maps.

Also the addition of Wind would have influence on the local temperature. I mean it is allready in the game somehow for the wind generators.
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

chaotix14

Quote from: SpaceDorf on August 21, 2016, 12:10:12 PM
I mean it is allready in the game somehow for the wind generators.

Yes, as a global abstract something. At the moment it's basically just a number that goes up and down as RNG dictates, nothing more and nothing less. Nothing more than something to indicate how much power the wind turbines should produce.

SpaceDorf

Quote from: chaotix14 on August 21, 2016, 12:37:59 PM
Quote from: SpaceDorf on August 21, 2016, 12:10:12 PM
I mean it is allready in the game somehow for the wind generators.

Yes, as a global abstract something. At the moment it's basically just a number that goes up and down as RNG dictates, nothing more and nothing less. Nothing more than something to indicate how much power the wind turbines should produce.

And it never has to become more than this to be usefull. Add the eight cardinal directions and we're done with wind.
Every display of the value would be just another interpretation of the power production of one windmill.
( it is not a turbine :) )
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

chaotix14

Quote from: SpaceDorf on August 21, 2016, 01:20:21 PM
And it never has to become more than this to be usefull. Add the eight cardinal directions and we're done with wind.
Every display of the value would be just another interpretation of the power production of one windmill.
( it is not a turbine :) )

Actually it's not a windmill(Unless it somehow mills/grinds/saws something into electric energy), it is a windturbine.

SpaceDorf

Okay, I used my google-fu to check up on definitions before I insist on talking BS. Also I am not a native english speaker, some word definitions don't survive translation :(

So in my head the definition of a turbine is rotation in an enclosed flow ( plane engine )
a free hanging rotor is a propellor or mill for me. 
I checked the definition and both can be called turbine. Even in German. But it is rather unusual to call it that. In German it is called a Windrad ( wheel ) which is also the name of the propulsion system ( lol ) for a windmill. hence the connection.

So, after a lengthy word definition by two knowitalls. What about the point of the cardinal directions for wind ?
Should it be enough for a model in rimworld, or should there be more ?
I would love to see stuff flying around and hitting the windmill ;D
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

chaotix14

Adding cardinals to the RNGesus system currently implemented shouldn't be too hard. The more annoying part would be the turning of the windturbine to recognize which area it should search for obstructions. Personally I would just say nope to that and change the turbine to this kind of design, but that kind of defeats the purpose of the directions.

SpaceDorf

*LOL* I would do the same, or at least give the turbine a rotating head.

It would make a huge difference in the layout of your windpark, because now you need a circular area around the MILL instead of two rectangles.

But the option of the wind driving fires in a specific direction and not only having wildfires burn everything down would be worth it.

Also wind has a great impact on the felt outside temperature, which gives the glacier dwellers even more !!FUN!! while freezing their balls off.
And it opens the doorway to better storms. Sandstorms, Snowstorms, Hailstorms and Damage to Stuff outside.

Well look at all those fuzzy critters seeking shelter in that warm mountain cave of yours :)
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

CannibarRechter

#10
> I was going to maker a similar point in how CPU intensive it would be to even just store and track the individual heat value for each tile(even on a 100x100 map that's 10000 tiles that each need to store and track a heat value individually)

This can be controlled by limiting the heat assessment epoch to something sane, like once per few seconds, although the challenge would be making certain that every few seconds there wasn't a noticeable pause in the game.

Another possibility would be to do a volumetric heat calculation, but limit it to something LIKE the home area. I.e., your built areas plus maybe 4 cells. There are some added things you'd need to do for caves, though.
CR All Mods and Tools Download Link
CR Total Texture Overhaul : Gives RimWorld a Natural Feel
CR Moddable: make RimWorld more moddable.
CR CompFX: display dynamic effects over RimWorld objects

SpaceDorf

Creating virtual rooms could be a solution.
Because rooms are the way the game keeps track of "internal" temperatures right now, and calculates the difference.

To stay with fire as example. The game would create a 3x3 or 5x5 virtual room around a burning tile. The fire is the main heatsource of the room and heats the room up accordingly the borders of the room equalize with their surroundings as per the usual game rules.
If the room is outside, or open to the outside the temperature in the "room" is also effected by the cardinal direction and speed of the wind.
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker