# Suggestion: State Transfer Heat and Dynamic Boiling Point.

## Recommended Posts

As everyone know, in ONI, stuff transfer state almost instantly. Anyone who know thermodynamics would know that it is impossible; state change require heat, vaporization consume heat; condensations release heat. Also, this mechanic would remove many cooling system that are commonly used in real world.

So, I suggest some change:

+ When something is at the temperature required to change state (state change point +-3), it should also absorp/release heat according to its vaporization/condensation/melting/ heat x object mass. So, boiling water to 103°C won't create steam immediately, it just change water into a "boiling" state that doesn't change temperature, but will convert itself into steam if it receive more heat( Steam mass = heat input/ vaporization heat of water)

In exchange, a condensing gas should enter an "condensating" state, which will release heat without cooling down futher and turn into liquid.

+ As many know, water does not boil in 100°C unless the pressure is exact 1atm. Liquid boiling point depend on surface pressure, higher pressure increase boiling point and lower pressure lower boiling point. This should be reflected on game, by changing the static boiling point into a dynamic one, which depend on gas pressure in adjacent tiles. High pressure raise boiling point while low pressure lower it. In vacuum, all liquid should vaporize immediately.

##### Share on other sites

What qualitative changes would this bring to the game and what are the negatives of implementing this?

##### Share on other sites

While this would make the game closer to real life physics it would probably negatively impact the playability of the game. It would make it harder to boil and condense stuff which might make the game feel more sluggish during state changes. This might be compensated by reducing the specific heat capacity but will still hinder the readability of the simulation. I can see people constantly asking why is their water not changing into steam when it has the right temperature.

As for the pressure simulation it`s even worse here. ONI doesn`t calculate pressure at all. It just checks how much mass is at each tile and if it`s over a certain threshold it causes popped eardrums in gasses and breaks tiles near liquids. Yet you still get weird interactions like 1 kg of polluted water blocking hundreds of tons of clean water from flowing. Making a dynamic boiling point would require to change the whole gas simluation and even if we do that then we get issues with dupes breathing out less than they breathe in (imagine your water boiling early game beacause you forgot to set up extra oxygen generation). After all is done and works we just get a system that`s hard to understand and does a lot of weird things that don`t really add to the game.

##### Share on other sites

I like the idea of the first part where vaporization energy is taken into account. Perhaps rename it with "Superheated" and "Subcooled" which is the technical term for this behavior, as boiling would imply that the water is "emitting" steam.

The second one, pressure based phase change, might be too computationally expensive/unstable to be implemented.

On 6/6/2022 at 5:09 PM, Sasza22 said:

While this would make the game closer to real life physics it would probably negatively impact the playability of the game. It would make it harder to boil and condense stuff which might make the game feel more sluggish during state changes. This might be compensated by reducing the specific heat capacity but will still hinder the readability of the simulation. I can see people constantly asking why is their water not changing into steam when it has the right temperature.

I agree readability might be an issue, however we already see a sort of fix in game for accounting for phase transition heat, where phase transition happens a 3 degrees past the transition point. We can tweak that such that different elements has a different margin to transition, and post transition the temperature "snaps" back to the transition point.

So say the 3 degrees is roughly how much thermal energy a water need to "boil", so water will only transition to steam at 103, and the moment it becomes steam at 105 is "snaps" back to 100 C.

Same in reverse, where steam need to cool back down to something like 95 degree, it will convert to water and snaps back to 100 degree.

This would also make water boiling a bit more realistic (instead of a mass of water flash boiling instantly, some tiles goes to steam first, temperature "snapback" stops the other tiles from transitioning until they too reach the transition point again).

The difficulties would be in configuration, figuring out various transition points such that you get minimal heat gain/lost (so you don't get into situation where you're losing/gaining massive amount of heat just by phase transitions)

EDIT: I agree that pressure based transition might be a bit hard readability wise, and proper implementation would be computationally prohibitive.