Jump to content

Proposal for Elimination of Mass-Energy Deletion in Edge Cases of Strict Confinement


Recommended Posts

  

On 4/23/2021 at 6:05 PM, EricKlei said:

I'll start by explaining the life cycle of a liquid particle in this scenario. Ask if anything is unclear.

1. A liquid particle is emitted from a Liquid Vent. The particle is purely visual and does not interact with the sim. In fact the liquid is removed from the sim while it's falling and re-added when it lands.

2. The particle falls and determines when it should re-add itself by checking the current cell it's in.
    - if cell = gas: continue falling
    - if cell = vacuum: continue falling
    - if cell = liquid: 
      - if cell's element = particle's element:
        - if not much liquid: continue falling
        - otherwise: add to sim
      - if different element:
        - if particle's molar mass > cell's molar mass: continue falling
        - otherwise: add it to the sim
    - if cell = solid: add to sim the above cell
        
3. Now the sim takes over adding the contents to the cell. There are three parts to it.

  a. If cell is the same element simply combine them.

  b. If the cell is solid (uncommon case) try to find an orthogonally adjacent liquid/gas/vacuum cell to use instead for part c. 

  c. Try to displace the contents of the cell.
    - if cell = vacuum: it already is displaced
    - if cell = gas: try to displace
    - if cell = gas and failed to displace AND the cell above is liquid: swap contents with the above cell (bubble up gasses)
    - if cell = liquid: try to displace
    
    If after trying all of the above the contents cannot be displaced we still need to place the liquid somewhere. Ideally we would try recursively displacing elements further away but that would have performance implications so instead we handle this by deleting the cell's mass.

      example 1: cell is 3kg oil, liquid is 1kg water. Cell becomes 2kg oil
      example 2: cell is 1kg oil, liquid is 3kg water. Cell becomes 2kg water
      example 3: cell is 2kg oil, liquid is 2kg water. Cell becomes vacuum.

    This is what is happening here.

In your example of a water-steam turbine setup this is unlikely to occur every tick in the worst case scenario. I could happen in @sheaker's case with oil in the steam chamber.

In reading over the liquid displacement code I noticed we stop displacing liquid when it's below a minimum liquid mass (0.01 kg) even when it's possible to distribute it into adjacent cells. I plan to change this so it will try to distribute everything before deleting that tiny amount. However, this would account for at most 30 kg loss in a cycle if every tick it occurs and you're seeing well over that.

There two other cases where mass deletion occurs:

  1. Gas cell is less than 1 microgram (0.000000001 kg)

  2. Gas cell is less than 1 gram (0.001 kg) AND all it's orthogonally adjacent neighbors have more than 1 kg mass. This is to help remove stray amounts of gas.

Once we figure out a way to somewhat reliably reproduce this bug we can examine whether any of the above is relevant. It could also be an issue with saving/loading the falling water but it sounds like you tried that.

Have you seen this happen when the steam turbine is not disabled?

 

On 4/23/2021 at 6:05 PM, EricKlei said:

      example 1: cell is 3kg oil, liquid is 1kg water. Cell becomes 2kg oil
      example 2: cell is 1kg oil, liquid is 3kg water. Cell becomes 2kg water
      example 3: cell is 2kg oil, liquid is 2kg water. Cell becomes vacuum.

@EricKlei This solution makes the first law of thermodynamics and Emmy Noether weep. Without considering the game balance implications and speaking just from a toy theoretical physics point of view, I would be inclined to conserve the mass-energy over anything else.

The fact that you can use falling liquid as a negation to obliterate mass in a cell seems very problematic to me. From a game play perspective, I am interested in trying out what would happen if the (SHC_oil)(Mass_oil)(Temperature_oil)
and (SHC_water)(Mass_water)(Temperature_water) in the above examples resulted in some kind of strict equivalency.

All the examples as given destroy energy in the system. The 2 Kg - 2 Kg = 0 Kg example which basically treats the interaction as a non-conservative total annihilation operator particularly concerns me for all kinds of interesting thermodynamic engines I could otherwise attempt to build. Particularly various kinds of magma machines like smelters and especially crude oil to petroleum boilers.

Example 1 with modification mod: 3 Kg oil at 300 °K in the cell ends up in a deletion of the liquid particle of 1 Kg water at say 300 °K; the result is either 3.824260355 Kg oil (temperature stays the same in the transformation) or 3Kg of oil at 322.13139053 °K (mass of the oil stays the same in the transformation). Either of these solutions conserve the energy of the system; the version where the oil heats up due to the deletion of the water makes it harder to exploit a conversion of water into oil or some arbitrary liquid into some arbitrary other liquid while still conserving useful quantities for play. I actually favor the option which heats the cell by the destroyed liquid's/gas' energy because it is somewhat more thermodynamically believable; irreversible processes generate heat.

An alternative proposal for these edge cases would be that the most massive/energetic material type wins the cell, so if it is an oil cell of 3 Kg at 20 C and a water particle of 1 Kg at 20 C then the resulting cell is oil in one of the two states described in the example modified above. If it was 1 Kg of oil at 20 C in the cell and a water particle of 3 Kg at 20 C then the resulting cell would transform into water in one of the two equivalent states described in the example modified above. 1 Kg of oil at 100 C would win the cell against 1 Kg of water at 20 C.

These strict confinement cases should be sufficiently rare that this proposal would be interesting without breaking mechanics and might even introduce a new form of play that would be of interest to players.

Link to comment
Share on other sites

In the end, this is a game and it has to use pragmatic solutions, unlike the physical universe which seems to (mostly) simulate everything to the bitter end. Sure, liquid deletion should normally not be an issue, but there really is no problem with it happening in special circumstances.

I am also sure Emmy Noether would have understood that and would have had no problem with it. (Yes, I know who she was. One of the things I studied is term-rewriting and Noetherian Induction is a quite nifty technique to be used there. However, Noether was a mathematician specialized in Abstract Algebra. Maybe you are confusing her with Madame Curie or Lise Meitner who were Physicists?)

Link to comment
Share on other sites

2 hours ago, DaClown said:

Example 1 with modification mod: 3 Kg oil at 300 °K in the cell ends up in a deletion of the liquid particle of 1 Kg water at say 300 °K; the result is either 3.824260355 Kg oil (temperature stays the same in the transformation) or 3Kg of oil at 322.13139053 °K (mass of the oil stays the same in the transformation). Either of these solutions conserve the energy of the system

So, you propose either direct element to element transmutation or direct matter to energy conversion?

I think that cure may be worse than the disease. ONI is pretty comfortable with a lack of conservation of mass at this point. It happens everywhere (geysers, plants, space, ...). And I can think of one bug which allowed transmutation between gasses which they fixed by making it delete mass instead.

Link to comment
Share on other sites

4 hours ago, ghkbrew said:

So, you propose either direct element to element transmutation or direct matter to energy conversion?

I think that cure may be worse than the disease. ONI is pretty comfortable with a lack of conservation of mass at this point. It happens everywhere (geysers, plants, space, ...). And I can think of one bug which allowed transmutation between gasses which they fixed by making it delete mass instead.

The alternative is that we have significant deletion of heat AND material in cases like steam/water or oil/petroleum/sour-gas in the edge cases where total confinement occurs and *something* has to be deleted because the performance cost would be too high to conserve everything that should ideally be conserved OR because the game would crash/act-erratically cause the cases are unhandled.

Quote

This is an example of liquid destruction. There is a puddle of polluted water, covered by water. Crude Oil is dripping into this puddle. 

Expected behavior: Crude Oil would collect at the bottom of the puddle, pressing polluted water and water upwards. No mass lost.

Observed behavior: Crude Oil does not appear at the bottom, disappears. The volume of polluted water is reduced with each drop.

484794897_Screenshot2021-02-1422_11_54.thumb.png.5fb8a39461d49eb1306ddf66f7180b98.png

This is from the linked example that demonstrates a very practical case of what the current situation looks like.

7 hours ago, DaClown said:

3. Now the sim takes over adding the contents to the cell. There are three parts to it.

  a. If cell is the same element simply combine them.

  b. If the cell is solid (uncommon case) try to find an orthogonally adjacent liquid/gas/vacuum cell to use instead for part c. 

  c. Try to displace the contents of the cell.
    - if cell = vacuum: it already is displaced
    - if cell = gas: try to displace
    - if cell = gas and failed to displace AND the cell above is liquid: swap contents with the above cell (bubble up gasses)
    - if cell = liquid: try to displace

In 3c what is failing and resulting in the total confinement condition is that the polluted water can not displace up with respect to the water. If there was already even a tiny amount of oil at the bottom of this then the expected behavior would progress without issue, but the absence of the oil under the polluted water or sitting on top as a liquid cell prevents the expected situation.

As a result, the loss of material is effectively being doubled. You lose both oil AND water rather than losing one or the other or neither.

My preference is not to transmute the materials at all without some kind of nuclear mechanics involved.

My stated preference is that what would otherwise be deleted be conserved in the form of heat energy in the remaining substance. So yes, matter to energy conversion of a sort but that makes no less mechanical sense than mutual annihilation of the oil and water when their mass happens to be equivalent. I think that is far more mechanically interesting and entails far more interesting thermodynamic contraptions than what can be produced by exploiting the heat and mass/material deletion mechanic that is currently in place; current solution is more of a bug that most players aren't going to intuit and which will result and does result in reliable confused bouts of players tracking down where all their resources are just vanishing from. Like a slow drip into the wrong kind of liquid sandwich.

I want to note also that my preferred solution would eventually cause the water and polluted water to boil in the linked example which would ameliorate the issue by undoing the conditions that caused the total confinement in the first place.

In real physics, the proton number AND the potential mass-energy of a molecular system would be strictly conserved in non-nuclear mechanics but the space-time would distort and the kinetic energy would change non-conservatively. ONI has this problem because the notion of proton number is not well-defined and critically the space-time model is strictly invariant. Which makes the matter-energy conversion actually rather natural for the actual physics of ONI; we have no issue with dirt becoming food that becomes polluted water and heat; why should we have a problem with water turning into oil in some rare edge cases or vice versa or them turning into heat instead?

Also, I've stated before elsewhere in these discussions about mass and heat deletion that my preferences are that no mass or heat deletion occur and that substances in general do not spontaneously transmute, so hydrogen doesn't just become oxygen without a very involved nuclear process. I realize that is not the priority and accept that. In this case, I have also said that the problem is the total confinement conditions which are unphysical and an artifact of the way the grid system works and the mutual exclusivity of cells; if hydrogen could displace downward into denser materials or polluted water could displace upwards into water then we wouldn't be having this discussion. The perfect in-elasticity of mixed cells is the root cause of this; I want to note that not rigidly enforcing these confinement conditions on the degrees of freedom of substances isn't even really about doing something less optimally. Conservation of fundamental quantities is one of the essential conditions for the principle of least action which in computing terms translates to doing the fewest operations possible to achieve the effect of motion.

The proposed mechanism is basically analogous to compressing a substance to generate heat.

Link to comment
Share on other sites

Well, although I have no problem with deleting the mass as we have done until now, I would be very excited to be able to reach 4700K by using the proposed compression technique isobaric annihilator.

On 5/22/2021 at 7:07 AM, DaClown said:

3 Kg oil at 300 °K in the cell ends up in a deletion of the liquid particle of 1 Kg water at say 300 °K; the result is ... 3Kg of oil at 322.13139053 °K (mass of the oil stays the same in the transformation)

1kg of 300K water represents 1.25 MJ, which is 247ΔK in 3kg oil terms.

I think you mean 3kg of oil at 547K, or I guess you have different ideas about conservation of energy.

Link to comment
Share on other sites

3 hours ago, nakomaru said:

Well, although I have no problem with deleting the mass as we have done until now, I would be very excited to be able to reach 4700K by using the proposed compression technique isobaric annihilator.

1kg of 300K water represents 1.25 MJ, which is 247ΔK in 3kg oil terms.

I think you mean 3kg of oil at 547K, or I guess you have different ideas about conservation of energy.

1) I did say that I think it is a more interesting mechanic for thermodynamic engines.

2) 4.179 joules per (gram)(°C) implies 4.179(1000 gram)(26.85 °C) joules per (gram)(°C) or 112206.15 joules = 112.20615 Kj. Correct me if I've made a mistake in conversion of DTU to joules when it should be kilojoules? Looked it up in the wiki and in the game though and water's SHC is listed as DTUs not kiloDTUs which the Wiki seems to indicate is joules = DTU.

I suppose you'd get a much bigger value if you were doing the calc for the latent energy from 0 °K to 300 °K available in the water (which I see is implicitly the calculation you've done) whereas the in game default of DTU/[(gram)(°C)] is calibrated relative to near the freezing point of water rather than absolute 0. There are some significant problems from a precise real-world-physics theoretical point of view of ascribing 1.25 Mj to water when ice has a lower SHC and occupies most of the 0 °K to 300 °K band of potential.

2a) I am not aware of anything comparable to E = mc^2 as the limit to potential energy in ONI though I suppose that SHC relative to absolute 0 °K is conceptually close in the simplified physics of ONI. An ONI E=mc^2 equivalent would be necessary for a proper conservation law. Any proposals?

3) I'd love to see someone actually manage to hit 4700 °K using water and oil drips, but I suspect you mean by some arbitrary combination of materials already in the game; in which case, I have no particular objection to players being able to engineer situations where they can melt abyssalite. Can already do that with metal refineries.

Without an E = mc^2 for ONI physics, it is difficult to make objective assertions about the precise quantitative values of the mass-energy of objects in the simulation. I chose a simplified view that didn't require such a deterimination but which assumes an implicit common basis that is more or less factored out as a 1 or subtracted in a zeroing out process and which produces a small change. Notably, my primary objection is to the 2 Kg - 2 Kg = 0 Kg case; it isn't even suggestive let alone representative of a conservation of mass-energy it is straight up mass-energy destruction.

Again, I'll ask you:
Why should we prefer the annihilation of both materials and quantities in this case?
Why would heating or material conversion be any worse than any of the existing well-defined and agreed upon game mechanics that the game already is based upon such as creature metabolism or the various buildings-as-nuclear-chemistry-transformers?
Why is mass and heat deletion considered the preferable choice of mechanic here?

Why shouldn't players be able to "compress" materials together to generate heat or transform water into oil or vice versa? For the water into oil example, the oil well already does pretty much exactly that.

Link to comment
Share on other sites

7 hours ago, DaClown said:

4.179(1000 gram)(26.85 °C)

This is where we differ. This calculation doesn't make sense to me from a conservation of energy perspective. You not only deleted the energy represented by 1kg of water from 0C to 27C, but also from 0K to 273K. If we are going to conserve, let's conserve.

The debug at least thinks in simple terms. If it's water, it has 4.179 J/g/K SHC. If it's 1000g @ 300K, it has 1000g*300K*4.179J/g/K. Therefore it represents 1.25 MJ.

image.thumb.png.f6cab25b7c59389cbf661978fdd78de9.png

If you use 1000g packets, you can bring 300K water to 1K using pipes, so this is not exactly an untrue claim about the heat content of 300K water.

But you are right about 0-273K having a different SHC under ordinary circumstances. Easily fixed - that info is all well defined in game and we don't need to reference reality. It's 2.05J/g/K for ice which begins at -0.65C. So the "purist" energy content could be said to be 674kJ (or 674kDTU if you prefer), which would heat 3kg of 300K oil to 433K.

There is some nitpicking you can do about the 2.5K phasing heat and 1.5K rebound heat, but you can use mechanics to trigger that or not, or even trigger it multiple times, so let's just stick to the spec sheet numbers.

7 hours ago, DaClown said:

I suspect you mean by some arbitrary combination of materials already in the game

Yep, the first thing that came to mind was dripping oil into liquid niobium confined by liquid carbon. Just add oil to create tremendous heat in nearly any liquid combination.

If your liquid vent can withstand the heat, you only need two elements total (vent into a trapped single tile). This would even work with gas up to any temperature until your vent melts. You accidentally had 10kg of chlorine consuming a 10kg water droplet, both at a cool 300K? Well, now your chlorine is something like 2000K.

7 hours ago, DaClown said:

Why shouldn't players be able to "compress" materials together to ... transform water into oil

Step one is converting water to oil. Step two is converting all of the matter in the known universe to supercoolant. Alchemy destroys game balance. Getting extra mass in this process because you preheated the substance is also strange. Deleting the mass is mysterious and unphysical, but that can be said about most of ONI physics and is there to protect game balance when there is no expedient solution.

Also, take the example you posted. With this solution the oil will continue to be converted to polluted water indefinitely, perhaps unknowingly. At least with the deletion method, all of the polluted water will eventually be deleted and the oil will begin to accumulate.

7 hours ago, DaClown said:

Why shouldn't players be able to "compress" materials together to generate heat

Now we're talking. I would have a great time making heat with the isobaric annihilator. It can blow up in your face real quick and gives you something to do with anything you don't want. It could be ONI's own E=mc². But also really esoteric, picky and way too powerful.

Link to comment
Share on other sites

conserving energy alone as described would happen by accident too much, and cause huge instability in the simulation with giant temperatures out of nowhere.

You'd have to limit it to the temperature range of the two materials colliding and remove mass to make it balance out. 

This seems even more stable than the current approach.  Currently if the 3Kg of oil hits 1kg of water that'll flash the temperature to that of the oil, even if oil has been dripping in for cycles slowly reducing the water the temperature never changed at all until it replaces it.  

But it seems tough to get a change to this prioritised by klei, especially with some very annoying actual mass deletion bugs around like the steam turbine one.

Link to comment
Share on other sites

8 hours ago, nakomaru said:

Yep, the first thing that came to mind was dripping oil into liquid niobium confined by liquid carbon. Just add oil to create tremendous heat in nearly any liquid combination.

End game extreme space materials requiring that you liquefy carbon first. I'm okay with this.

8 hours ago, nakomaru said:

Step one is converting water to oil. Step two is converting all of the matter in the known universe to supercoolant. Alchemy destroys game balance.

This is why I favor the heating option over the transmutation option, but I will note that as far as I am concerned Alchemy is the game mechanics. If a player wants to convert all their materials into supercoolant I personally don't see any particular issue with that; I only see an issue with it if everything accidentally starts converting into supercoolant or everything slowly dwindles to vacuum.

If the change allows for an intentional design that exploits the change then I'm not particularly ruffled about it. We already exploit tons of things like temperature differences in bathrooms or electrolyzers or transmutation chains from things like dirt into some end game material.

8 hours ago, nakomaru said:

With this solution the oil will continue to be converted to polluted water indefinitely, perhaps unknowingly. At least with the deletion method, all of the polluted water will eventually be deleted and the oil will begin to accumulate.

This is one of those claims where I'd want to see an example in an actual test before I accept or reject the claim. I get the reasoning behind this claim, but I have a sense from my own reasoning that "convert to polluted water indefinitely" would not play out in practice.

As I said in a previous post, the polluted water would eventually boil and much quicker if we go with heating from 0 °K instead of from 0 °C. This would give the oil the opportunity to establish a cell on the floor and any remaining polluted water would layer properly without annihilation on top of that. Same for the water.

I suppose an example of indefinite conversion might be something that can be setup between an oil well and a polluted water emitter. Convert the polluted water to oil and water. Oil to petrol. Use the water and petrol to power and feed the oil well.

8 hours ago, nakomaru said:

Getting extra mass in this process because you preheated the substance is also strange.

No stranger than nuclear physics generally is. If oil mass can convert into water mass or vice versa then we might as well throw in the weirdness of mass-energy conversions that would theoretically allow for strange situations like using the power grid to heat a vessel that produces mass of some targeted type.

Again, I don't favor that option.

8 hours ago, nakomaru said:

I would have a great time making heat with the isobaric annihilator.

Last night after my reply to you, I was sitting at the kitchen counter when it occurred to me. I believe it is not isobaric but isochoric. All of this arises from the strict constancy of ONI's "volume" mechanics and the existence of the strict confinement conditions due to the strict linear ordering of material displacement with respect to the pseudo-gravity of the game and other materials. This issue specifically arises because the effective surface-area that simulates the volume of the water and polluted water can not change to accommodate the displacement of the oil into the stack of fluids.

8 hours ago, nakomaru said:

This is where we differ. This calculation doesn't make sense to me from a conservation of energy perspective. You not only deleted the energy represented by 1kg of water from 0C to 27C, but also from 0K to 273K. If we are going to conserve, let's conserve.

I think my calc is rough and inaccurate, but I chose it as a starting point in the proposal because it isn't computationally demanding and doesn't result in abrupt phase changes of the materials that melt rock around them.

That said, I think there's plenty of room for refinement.

My reasoning roughly is to subtract out the common contribution.

1) I acknowledge that the mass-energy conservation is imperfect in ONI, and as such, I am not demanding or suggesting a perfect mass-energy conservation solution especially one which would significantly alter game balance in ways like you suggest given the consequences you claim would be the common experience.

My proposal is suggestive of conservation rather than properly representative of it or strictly and precisely conservative; again, we can't have strict and precise conservation of fundamental quantities without some form of the first law of thermodynamics and the scheme of conserved quantities being already established in the physics of ONI in the first place.

2) As such my solution is more about conserving the delta between the water and the oil than strictly conserving the whole of the potential of water by flashing the oil to an absurd temperature.

3) because mass is not strictly conserved in the first place, the usage of terms like "grams" is actually misrepresentative. 1 gram of water in the game isn't the same thing as 1 gram of water in real physics; they're maybe analogous, but they are mathematically and theoretically different in significant ways.

4) the existing solution which can be presumed to remain in place indefinitely if no other proposal is workable and preferable results in strict loss of potential in any of these cases that currently already arise. All proposals then are being compared to that solution; my proposal is fundamentally just "how about we don't have as big of a loss of potential and actual resources in this edge case?"; any solution which is extreme will be rejected. Current solution to me feels like punishing the player.

Reasonable proposals will have to compromise on some number of criteria to be workable and preferable both for the devs and the players. For the players to make a proposal and have the devs actually implement it, we need to present them with a short and easily accessible summary of the changes that would need to be done, and we should prefer solutions which will add a minimum of work and testing for the devs. This favors small changes over big changes. Big changes like rebuilding the displacement algorithm to avoid these edge cases entirely.

To use the energy in the water from 0 K to the actual cell's temperature, we'd have to somehow extract that energy via some thermodynamic process available to us in the actual game mechanics. In practice, this costs us significant amounts of energy rather than giving us energy. There's a tedious point I could make but the summary of the situation is that in some sense the potential energy below the average temperature of the map or below the lowest temperature extreme of the map takes energy and doesn't represent useful potential to us or for the general simulation and may actually be impossible to reach in the mechanics of the game currently.

Maybe skimming the energy potential from 0 °C up to the temperature of the cell or particle is not the solution but I don't think that converting the energy potential from 0 °K up to the temperature of the cell or particle is the solution either.

My basic thought process though is that water turns in some sense into oil or vice versa or gases in similar configurations. Worst case to me is that we lose both materials and heat in the process. Bad case is we lose more materials/heat than we start with in the process; The heating option of my original proposal is in this class. Ideal is we lose no materials or no heat in the process. I'll have to come back to this when I have more time.

Link to comment
Share on other sites

In real world thermodynamics, we have three laws that govern the bounds of physics.

Zeroth law is If systems A is in thermodynamic equilibrium with system C and System B is in thermodynamic equilibrium with system C then A and B are in thermodynamic equilibrium.

First law is conservation of fundamental quantities and corresponds in metamathematics to the preservation of invariants in transformations of the system.

Second law is the increase of entropy of a closed system towards maximum.

Third law concerns thermodynamic equilibria.

Quote

If the composite of two thermodynamic systems constitutes an isolated system, then any energy exchange in any form between those two systems is bounded.

The strict confinement condition and the isolated system condition are roughly analogous for our purposes.

The reason I don't propose heating up the oil by the total value of the thermal potential energy of the water from absolute 0 up to the cell/particle temperature is because I assume that some significant part of the system is in thermodynamic equilibrium and we want to conserve the bit which isn't in thermodynamic equilibrium. This is more formally what I mean by "factoring out the common basis".

We're selecting for the part of the system which is relevant to the space of play for our conservation approximations.

On 5/24/2021 at 5:48 AM, nakomaru said:

The debug at least thinks in simple terms. If it's water, it has 4.179 J/g/K SHC. If it's 1000g @ 300K, it has 1000g*300K*4.179J/g/K. Therefore it represents 1.25 MJ.

Crude oil has a SHC of 1.69, so (1.69 SHC)(3000 g)(300 K) = 1.521 MJ.

Total desired output in the transformation is then 2.771 MJ of matter with some mass roughly equal to some proportion of the combined water and oil and some temperature roughly representative of the combined state of the materials.

We are not talking about a system which strictly speaking is in thermodynamic equilibrium.

Quote

Two physical systems are in thermal equilibrium if there is no net flow of thermal energy between them when they are connected by a path permeable to heat.

There is in this case net flow of thermal energy between the systems and they are connected by a path permeable to heat. We want the transformation to tend towards thermodynamic equilibrium for the combining systems.

My original proposal changes the mass or the heat or both because the current solution will delete materials regardless of how hot or cold they are; it does not preserve the state of the system. As I see it this is a problem similar in magnitude to the bug that @Tonyroid discovered where chunks would remain at a constant temperature and absorb incoming liquid magma; it created a significant problem for anyone trying to run regolith melters or use magma smelting or power in a sensible way.

Let's explore a moderated proposal. If all the potential energy of the water is turned into heat then we get huge heat swings. If all the potential energy is turned into mass then we get "easy" ways to transmute one liquid or gas into another.

Only one substance can survive in the situation. The surviving substance ideally will have a energetic value of 2.771 MJ and what we are mostly disputing is how exactly that energetic value should be distributed in mass and heat after the transformation.

If 1 Kg of water was at 2.771 MJ then its temperature would be 663.08 K. About 300 degrees above boiling.

If 3 Kg of crude oil was at 2.771 MJ then its temperature would be 546.55 K. About 150 degrees above boiling.

If water with a temperature of 300 K was at 2.771 MJ then its mass would be 2.21 Kg.

if crude oil with temperature of 300 K was at 2.771 MJ then its mass would be 5.465 Kg.

This is a cross product and averaging problem where the terms or products are weighted by a proportionality coefficient between the contributing substances.

The surviving substance is not necessarily the one which has the highest mass value but the one which has the highest energy value.

And we may want to favor preserving or transforming towards thermodynamic equilibrium rather than trying to hold energy or mass equivalent.

Less ideal solutions would take advantage of subtractions or negations of quantities that keep the solution above the current mutual annihilation solution.

Link to comment
Share on other sites

10 minutes ago, DaClown said:

because I assume that some significant part of the system is in thermodynamic equilibrium and we want to conserve the bit which isn't in thermodynamic equilibrium. This is more formally what I mean by "factoring out the common basis".

We're selecting for the part of the system which is relevant to the space of play for our conservation approximations

So at the end of the day we have to decide to reject something in favor of something else. The devs chose matter deletion. This removes materials (and possibly lots of heat) which is already easily doable in space. Their choice deletes mass but doesn't introduce any new mechanic we don't already have.

Converting matter to heat would be another option. It has it's own implications (which could be extremely fun to tinker with). However, a change like you propose opens a whole new balance issue.

Link to comment
Share on other sites

16 minutes ago, mathmanican said:

So at the end of the day we have to decide to reject something in favor of something else.

I am making a proposal which is up for discussion, and I expect that as with most of the proposals made on these forums the default position is to reject the proposal in favor of keeping the status quo.

The discussion of the merits and flaws of current and proposed solutions is arguably more valuable than the implementation of any particular solution.

16 minutes ago, mathmanican said:

This removes materials (and possibly lots of heat) which is already easily doable in space.

I personally am bothered by the deletion of things in the system. I do not consider this comparable to space because if I don't want things to be deleted in space then I just seal off space from the things that I don't want deleted. Problem solved.

This lurks in any steam turbine system setup, I believe in Liquid Hydrogen or Liquid Oxygen distillers, in many different kinds of mixed liquid magma systems, and a variety of cases that requires an understanding of relatively undocumented displacement and confinement rules.

If you dripped supercoolant into that polluted water then wouldn't you lose supercoolant?

Would it be too much to ask for entries about this mechanic for the in game wiki and maybe a tutorial about these confinement and deletion conditions if the current solution remains?

16 minutes ago, mathmanican said:

Their choice deletes mass but doesn't introduce any new mechanic we don't already have.

The dev's choice in this matter has led to an undocumented mechanic that effects many players without most of the players even knowing that the problem exists but none the less being vexed by its consequences. The mutual annihilation of materials in this condition is as far as I know unique and not because of the deletion of the mass or the heat but because of the mutual annihilation of the materials.

Let's consider another proposal which is much further towards the existing solution. Why should the oil and the polluted water mutually delete in this situation? If 3 Kg of oil drips into the 1 Kg polluted water and water sandwich then why not just delete the 1 Kg or polluted water and leave 3 Kg of oil?

Or the absurd proposal of that. Why not have the 1 Kg of polluted water in the cell predominate and delete all 3 Kg or any quantity of oil that drips into it?

What's the advantage for the developers or the players to have both materials delete each other?

16 minutes ago, mathmanican said:

However, a change like you propose opens a whole new balance issue.

Not changing it leaves open existing balance issues particularly which violate common sense expectations about how liquids and gases should layer.

Link to comment
Share on other sites

From a hardware point of view, in view of compute resources, my experience is that developers tend to favor dropping data instead of accumulating ever increasing values. Game stability and frame rate, game speed, are also two big points in game development to consider. Glitches, bugs or how players play the game could tend to "disturb" a possible simulation equilibrium ( goal aim ), so "playing it safe" would be to aim for a deletion philosophy.

I do not have the expertise on the games simulation side, this presented view is a system resource one. Yet, I know that all the ONI simulation expert suggestions and hardcore simulation expert discussions are probably very valuable for the developer, the quality of the game and the quality of the simulation. So it is great useful input :p

There is a game design philosophy hint in the game: Mining tiles reduces mass.

This quote may reflect the general Klei development philosophy:

On 5/22/2021 at 2:56 AM, ghkbrew said:

...ONI is pretty comfortable with a lack of conservation of mass at this point. It happens everywhere (geysers, plants, space, ...)

I would compare it with operating a big water dam. There is a heavy rain forecast, but you don`t know exactly how much it will rain. As protective preparation ( against overflow ) the order is given to release water before the weather event ( getting rid of resources ), as it may be hard to achieve or maintain water level equilibrium. In ONI the weather event is calculating all these values against each other and carrying them around in memory...and then new values come in to the simulation ( from player actions ).

Link to comment
Share on other sites

1 hour ago, DaClown said:

Not changing it leaves open existing balance issues

Agreed. Known by few. Documented in dark corners of forums and discussion boards.

1 hour ago, DaClown said:

If 3 Kg of oil drips into the 1 Kg polluted water and water sandwich then why not just delete the 1 Kg or polluted water and leave 3 Kg of oil?

It actually used to delete all of what dripped in. You could delete hundreds of kg of liquid in a second. The "absurd" proposal is exactly what did happen. They fixed that problem with the current system. 

1 hour ago, DaClown said:

What's the advantage for the developers

As @babba said, simplicity.  It's far from realistic.

1 hour ago, DaClown said:

The dev's choice in this matter has led to an undocumented mechanic ...

Welcome to Klei games. :snarlingspider:

Aside from decompiling sim.dll, there really isn't any way to fully know the physics sim. Klei doesn't publish manuals at all.

The wiki is a step in that direction, but far from having all the details.  Some things on the wiki are flat out wrong. Unfortunately the way things actually work is sometimes contested as exploiting the game, and so watered down "how the game is supposed to work" is what gets spread as information, rather than "how the game actually works." I applaud those who are working to fix this.

1 hour ago, DaClown said:

I personally am bothered by the deletion of things in the system. I do not consider this comparable to space because if I don't want things to be deleted in space then I just seal off space from the things that I don't want deleted. Problem solved.

If I don't want mutual annihilation of material then I design around it. Problem solved. Sometimes I design now with it in mind.

Link to comment
Share on other sites

2 hours ago, mathmanican said:

If I don't want mutual annihilation of material then I design around it. Problem solved. Sometimes I design now with it in mind.

I only design so fast. These mutual annihilations are ongoing throughout the sim from generation on-wards. Anywhere that bad liquid or gas sandwiches happen to occur materials may be destroyed.

Within my deliberate structures and thermodynamic engines, it is controllable if taxing mentally to have to work out and memorize the weirdness that will make my engines stop or wind-down prematurely or not even work in the first place.

My concerns about this are far more about the general wilderness of the maps from sim start on wards. Sometimes I dig out the wrong tile and water and polluted water mix in a pond I didn't design or intent. Shame for oil or super coolant to be destroyed because of that. With the introduction of mud and polluted mud and the messy start of the Swamp asteroid, I became acutely more aware of this kind of situation and more concerned about it.

I've long been trying to build a magma-fueled or volcano-fueled smelter, but the best designs for that are going to involve multiple layers of different molten metals and materials. Not being able to trust that my niobium or tungsten or iron or copper is going to remain during processing significant complicates the design to the point of making it even more impractical than it already is if not impossible.

This argument amounts to the "if you don't like it then don't use it" strategy that is commonly used on the forums when people speak up about bugs and exploits in ONI. Many of which end up in the long run patched.

2 hours ago, mathmanican said:

It actually used to delete all of what dripped in. You could delete hundreds of kg of liquid in a second. The "absurd" proposal is exactly what did happen. They fixed that problem with the current system.

Which is to say that the devs recognized it as a game-breaking bug and replaced it with a slightly less game breaking bug. The current solution is an iteration in fixing a long standing issue that arises from the fundamental basis established in their alpha physics engine.

I recognize that I may not see this fixed or resolved until ONI 2 comes along and they have an opportunity to rebuild the engine from the ground up. I may only see this issue resolved when someone comes along and takes all the notes written in these forums and in the forums of physics toys like ONI and Space Engineers and implements their own physics engine like John Lin.

3 hours ago, babba said:

From a hardware point of view, in view of compute resources, my experience is that developers tend to favor dropping data instead of accumulating ever increasing values.

I appreciate this as a computer and physical theoretician; I understand the limitations of the simulation. While I am bothered by deletion, I am also bothered by creation within the game sim proper. I understand that the devs need to be able to create and destroy in their metaphysical system in order to be able to hand us a semi-working sim world at all, and I understand that over time the player feedback has been such that they have put in more and more methods of generating arbitrary quantities of stuff. From the root, they have implemented a mechanic that allows a potentially infinite number of dupes and creatures.

If they have systems of arbitrary creation that are running without theoretical bound in the simulation then they must have systems of arbitrary destruction that are running without theoretical bound in the simulation to attempt to have a simulation that self-regulates and achieves some kind of semblance of a thermodynamic equilibrium. Commendable.

3 hours ago, babba said:

This quote may reflect the general Klei development philosophy:

On 5/21/2021 at 5:56 PM, ghkbrew said:

...ONI is pretty comfortable with a lack of conservation of mass at this point. It happens everywhere (geysers, plants, space, ...)

I would compare it with operating a big water dam.

The sum total result of that is this:

  

On 5/8/2021 at 4:30 PM, nneko25 said:

5000kg/s Super Coolant Geyser:

5000.thumb.png.2384e37c22295dd9476fec48e6bde033.png

1.Stacked Liquid Escher Waterfall with Door Pump

video:

  Reveal hidden contents

 

The throughput of the escher waterfall is limited by viscosity. I need parallelized escher waterfall for my liquid duplicator. Stacked liquid escher waterfall is useful for parallelized input. Stacked liquid don't break with door pumping. Multiple inputs work with a single output.

door.gif.9da546b25235c530b5d2b2b296078dc6.gifdoor2.gif.c57a25de39ff988151b31a9abc8caa83.gif

 

2. 5,000kg/s Duplicator

@mathmanican's stable high throughput duplicator module makes my liquid duplicator 139x faster. (Thank you very much!)

This is high pressure version. Salt water limits input to prevent beads become waterfall. This chained module duplication rate is 90-100kg/s. My 5,000kg/s duplicator has 56 chained modules.

module.gif.277a23a0f9e71d94f6583c6ce4a83c69.gif

When beads become waterfall, doors reset module.

module1.thumb.png.53300ce983e5ab433c0b21eb8a159fd7.png

 

3.Ultra High Pressure Exponential Duplication

After stable duplication, we can use ultra high pressure duplication. Over 500-1000t liquid starts self duplicating. It seems that ultra high pressure liquid upper diagonal flow sometimes causes duplication.

 pressure.gif.ffc1026cfcc5c4c4ad53ea6b607b0fd2.gif

Stacked liquid escher is useful for duplication.

 

ExtremeLiquidDuplicatorMk2.sav 450.32 kB · 0 downloads LiquidEscher.sav 153.12 kB · 0 downloads UltraPressure.sav 157.2 kB · 2 downloads

I would love it--and I know this is unreasonable to ask for or to demand or to expect from ONI this late in its development--if the metaphysics of the metagame were more clearly and consistently delineated from the game sim proper. The ideal that I would like to see these physics toys tend towards is conservation of resources. My interest in conservation of mass-energy is not to amplify towards infinity as that is no more conservative of the resources than regulating to 0 totality. My interest in that from a computer game playing physicist side of things is that a game sim that strictly conserved fundamental quantities would also strictly conserve computing resources; the ideal of a game sim that neither creates nor destroys things is that the game state in memory is of or approaches constant size.

The eschewing of having or enforcing some kind of conservation scheme is that they'll slap one bug down only to watch it explode out another bug. The patch fixes they put on to try and solve these problems only proliferate the bugs because they're not dealing with the fundamental cause of the bugs, and they have worked themselves into a situation where they can not logically and consistently satisfy all their own criteria.

Not having conservation laws in their game sim and not abiding whatever conservations laws they may have imposed doesn't simplify the game or their development cycle. No more than an engineer building a machine as if the aether fluid was a real thing and the caloric substance was the truth of heat exchange; we have arrived at the laws of physics as we know them because they are simpler than everything that came before. Nations and armies for dozens of generations tried to build machines that were both wondrous and "simpler" and failed repeatedly because they didn't observe the minimalism of the already existent.

 

Anyway. I would like to see some edge case creation events trimmed as well. And there already exist a lot of deletion mechanics that tend to regulate materials away on a regular basis. This proposal is not aimed at any of them or even at a general elimination of all destruction events as that would be the same as asking that geysers and the printing pod be eliminated.

This is only happening because taking the powerset of all the tiles every sim step would crash the computer and allowing unbounded recursive feedback between tile placement/displacement would result in non-halting conditions that would soft or hard lock the computers running ONI.

Destroying both materials is a choice. One material could be destroyed and the other saved. They could be reduced by a proportional amount to conserve as much of the mass-energy as possible of the surviving substance. There are easily a dozen equally valid programmatic solutions that could be implemented here instead of the current situation. All of them have tradeoffs and few have any particular good justification outside of personal preferences or intended outcomes.

Link to comment
Share on other sites

@DaClown I have read your entire post and do not want to devalue your efforts and great detail answer by providing a rather short comment in comparison. :p

"...The eschewing of having or enforcing some kind of conservation scheme is that they'll slap one bug down only to watch it explode out another bug."

Here is the thing, a "bug" is only felt by a player as a bug if the player:

# Notices and experiences it

# Thinks it is a bug and not a feature

# Feels that the experienced bug breaks his world/game immersion, stops his game progress, ruins the players game fun, the player feels he now has a disadvantage, player feels tricked ( "my resources disappeared" ) etc.

I`ll throw in a number as daft boy, 99% of the things which are discussed in hardcore simulation threads most players do not know about, have never heard of or would not understand ( I would extend this number to 99.99% of players but I don`t want to demotivate ).

A lot of these simulation details crop up in sandbox mode, by drawing stuff and builds "from unlimited resources" in sandbox. Most of the contraptions would take 1000 years to build in survival mode with dupes, especially if its a new design of something.

I love the editor too, its powerful and great fun... I stopped playing in the editor, because I would not play survival mode anymore - My personal choice. This shall not devalue any of the great work you guys do ! :encouragement:

In 3500 hours playing this game, I have experienced "no physics bug" with my own subjective perception. Maybe Klei has "fixed" some things, taking data, opinions and outcomes of the hardcore simulation forum threads...I do not know, I have never met a "physics bug" in the game.

When I see water "climbing up stairs" I just think "Hey, that looks cool!". One could look up why that happens in the simulation in specific situations, but I really just want to play the game.

Its like people getting in to an airplane...If you ask and tell people how mechanics, structural design, electrics, oxygen supply etc. are "done" in airplanes, most will say "Ah ok, I didn`t know that. I want to fly to Italy, great beaches."

BTW I`m a plane noob, I only know stuff from the internet and museums. However, I used to buy diving goggles, hang myself to the runway fence on my favourite island in the Carribean and have my body sandpapered by the A380/747 engines on liftoff. Flying back was joy, often sand used to run out of my suitcase from the compartment above plane passengers on to heads, things where often funny. :lol:

Still have the island recordings, one of my smartphones was blown in to the ocean from the mighty A380 engines. Best time in life ! Holidays to hang in engines - Perfect :cool-new:

The mighty fence...

image.thumb.png.7e3fbc3179ea6d510228f67cb9c9892c.pngimage.thumb.png.6ace38a736e795385812e99b2e6f1fc9.pngimage.thumb.png.dea4eb8fa6e60bba0ef17ad5e3f60315.pngimage.thumb.png.bcb63ae7b4f52f52f7cda13c11ae1105.png

More fuel types and a rocket engine test stand in the game, to optimize future built rocket engines...Would be awesome :ghost: Thanks for making the game simulation better :encouragement:

Link to comment
Share on other sites

6 minutes ago, DaClown said:

it is controllable if taxing mentally to have to work out and memorize the weirdness that will make my engines stop or wind-down prematurely or not even work in the first place.

I completely agree. And so when I see the devs are open to bug fixing, and responding to feedback, I jump in and start pushing bugs I find most egregious. Posts like the liquid duplication shenanigans above are done purposefully to show the sheer silliness of a bug. I prefer to design game breaking machines that are simple to construct for beginners, because if the way to break the game is easy, and breaks the game in the player's favor, then I feel like it gets more attention. Matter annihilation is extremely simple to observe (and happens on every world), but the consequences are not "game breaking" (debatable). 

10 minutes ago, DaClown said:

Sometimes I dig out the wrong tile and water and polluted water mix in a pond I didn't design or intent. Shame for oil or super coolant to be destroyed because of that.

Agreed.  It's rather sad.  I lost several tons of my starting water once (before the current mutual annihilation system) because I wanted to put some water near the bottom of my base, and a blob of chlorine had trapped a 20mg blob of CO2.  After some cycles of waiting for water to arrive, I finally noticed the problem, and was appalled at how much liquid I lost. The mutual annihilation decision now at least stops this. 

12 minutes ago, DaClown said:

Not being able to trust that my niobium or tungsten or iron or copper is going to remain during processing significant complicates the design to the point of making it even more impractical than it already is if not impossible.

Excellent feedback.  @klei.ruby @EricKlei I hope you see this. Many people try to design complex machines and then get frustrated by realizing there are so many tiny thing to plan around that it can become impractical.  On the other side, most people who get to this point of design have already spent hundreds, if not thousands, of hours with the game.  So even if frustration causes these players to thrown in the towel, the devs have provided an excellent source of entertainment, despite the inconsistencies.  I would love to not have to keep track of every little quirk/bug. 

17 minutes ago, DaClown said:

I understand that the devs need to be able to create and destroy in their metaphysical system in order to be able to hand us a semi-working sim world at all,

Amen.  Thank you devs!  The game is truly awesome. 

18 minutes ago, DaClown said:

they have worked themselves into a situation where they can not logically and consistently satisfy all their own criteria.

They have a working game. :)  The game satisfies it's own criteria and runs.  It's just unfortunate that this criteria provides headaches for trying to keep track of intricate details when designing. I forget things all the time.  I love reading designs from others, and appreciate when I see them include a spoiler with the 8 different bugs that the contraption builds around, and how their contraptions avoids these perils. I also see these posts as constant reminder to the devs, "Hey Devs, look at the silly things we have to do to prevent our machines from breaking. Please notice." They took care of the debri stack bug just this month.  The new liquid duplicator should be gone. Will left-to-right flow ever get fixed? Will mutual annihilation be resolved (it's the current fix to infinite annihilation). 

What I'm hearing is that the game could use a fresh relook on conservation laws. It would be really nice to satisfy those.  I also hear others say they would like a fresh pass on gravity, or conduction, or "insert favorite law". An ideal gas law implemented in the game would be awesome. I agree.  Each of these requests sounds great. Who knows what will come of it. You have some great points above. I sympathize with the frustration you feel sometimes when building. 

Devs, sometimes when we want to build cool contraptions, we get let down when we build them and find it doesn't work because of (ONI quirkiness).  But regardless, thank you for the game. Keep making cool things. 

 

Link to comment
Share on other sites

@mathmanican :x Sometimes I look in to these simulation threads, the builds and the passionate dedicated debates between people are often interesting to read. Its like with real world machinery, most users do not know how much phases and redesigns somethings has gone through or what the issues had been ( or still really are :lol: ).

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...