# Air flow, not just diffusion, and resolution of space

## Recommended Posts

This game does a great job of simple "flow", by the use of just pressure alone, however, it defies logic at times.

Because it uses only diffusion (going from an area of high-concentration to an area of low concentration), many oddities occur. Most notably, heat doesn't rise and actually falls. On a similar note, cold tends to rise.

If you actually include "pressure", besides just being a number, then things would get real wonky, but be more realistic. Pressurizing liquids and gasses will result in heating. If that heat is cooled-down, while it is compressed, and it decompresses, it should result in cooling as it expands.

You also need "Pressure", since you have "Gravity". Gasses, in a gravitational field, compress as they get further from the upper-atmosphere. When they compress, they get hotter and transfer heat faster. Also, a true "vacuum", has 100% thermal resistance, better than the best physical insulation of anything. Here, a vaccum seems to be almost irrelevant. (Also, insulated tiles, for some odd reason, end-up 10-20F hotter than the surroundings, which is impossible. At the most, they would be 100% equal to the greatest temperature, on one side. Though, they should be a perfect gradient from hot/cold, indicating thermal resistance. As opposed to thermal transfer, which would make the block a solid color. Both would be, when equalized, the average temperature of all surrounding blocks, at the most.)

Eg, I put an insulated block between a 100F and an 80F surface. The block is constantly 110-120F, when it should be HALF of (100+80=180)/2=90F. Instead, it seems to be generating heat, as it is 120F instead {Math/science fail}. (Given that the nature of all elements is absolute zero, and all heat "comes from something", that is impossible, unless it is radioactive insulation. It is not, it is just volcanic rock. If that is by design, then remove that rock, as it is not insulation material.) On the opposite end, I occasionally get a tile that is -20F more than surrounding tiles. Again, another impossibility.

Without convection, (heat rising and cold falling), the diffusion will carry HOT CO2, down and COLD Hydrogen up. Totally against reality. (Because CO2 is "heavy" and hydrogen is "light".) This also ends-up with odd things like polluted air floating in the middle of clean air, instead of rising. Not so apparent in a small area, but the "error" in your code shows well in a large room, in modest pressure.

There is also no real "flow", no momentum to gasses as they move. Again, you depend on diffusion, moving from a high-psi to a vacuum, which fails when pressures are nearly equal, due to the slow process you use. (A solution to some above issues, I am sure.) If air flowed, and sustained flow until it was equalized, it would help without the need, and with the use of an air-handler system. Water flows, why not gasses? Gasses should flow 10-1000x faster than liquids, but here, they move at 1/100th the speed.

Heat should speed-up diffusion, which it may, or may not do here. If it does, it is not real clear. However, for this to really be effective, you need to expand how "air" and possibly "water" is managed. You need more resolution for them, or you need to "stack" elements. One block should hold at-least two to four elements. A mixture of color to indicate the contents, or play the "domination" game, randomly showing only the most persistent one for a few ticks. That will give you more chances for air and water to "flow" or "diffuse" or thermally transfer. Provided that you fix the fact that ladders and poles restrict air-flow unreasonably. Of all the structures, those two structures should be almost equal to "empty" space, but they restrict space, as well as many building structures. (Assume a 3' space is needed for a human to pass, and you have, essentially, zero flow restriction. Again, water isn't restricted by them, but air is? How? We all need holes in our floor, not flow-tiles, to allow CO2 and other gasses to actually move freely, which, due to the inability for one gas to occupy one space, makes "flow" impossible, killing us along the way or demanding that we all build annoying holes all over our bases, and/or unneeded air-handlers that don't actually function as expected.)

How do you get more resolution, per tile?

1: A larger database of "gasses", and possibly "liquids". One block being four (2x2)=4 or (3x3)=9. But the larger it is, the more complex blending and data-handling may get. 2x2 would not break the bank and can be "faked" without much coding issues.

2: A simple "stack", which is only needed IF another value is needed to occupy the same space. A simple list that says THIS block has CO2@TheseValues and O2@TheseValues, while a standard block would just have one element in a stack, in a solid volume of gas/liquid.

Both of the above, possible solutions, would ALSO help the ghetto diffusion system. Provided that air diffused faster than water, instead of diffusing slower. Making it seem like it flows at 1/100th the speed of water. (Though, diffusion is actually slower, "flow" is not. They are two individual properties of gasses and liquids. The only thing that uses diffusion in water is germs. Unless that is also just diffusing too, but just faster to "simulate" flow.)