Jump to content

Eliminate Matter Conversion - once and for all


Recommended Posts

Some history:

Spoiler

Matter conversion is a game mechanic that was introduced to get rid of mass loss. People complained that electrolyzers were deleting mass, so the devs came up with the following numerical solution to a fringe case issue. When two gasses race towards vacuum, one wins (which - the one on top).  That's the intended game mechanics in ONI (for now).  It may change someday, but for now it's a real solution that specifically has the game do literally what the game logic samathmanican created a topic in [Oxygen Not Included] - General Discussionys will happen. Here are two posts on the subject which show how to completely abuse this mechanic to create any gaseous matter you want (cheese the game - game breaking).

 

Here's a possible solution to address matter conversion. 

Rather than have the game always choose the top gas to be the one that wins, what if instead the game selects the winning gas at random (maybe weighting the choice based on mass of the interacting gasses).  Then players cannot 100% guarantee which gas will win, which will break any machine design to "exploit" this mechanic.  Mass will be preserved.  If the RNG weights the choice based on mass, then the expected mass should be close to the exact mass.  This will require a random number call for each instance where this occurs, but hopefully that won't kill FPS.

I don't have access to the code, but based off all my experiments, this should effectively kill the bug, implement itself very simply, and leave no other side effects (hah, fingers crossed).  

I hope this helps.  I'd love to see the end of matter conversion.  Liquid duplication is another ball game, that I can't 100% predict, so I'm not sure what/why/how will fix it.  Good luck. 

 
Link to comment
Share on other sites

Well.... An atmo sensor connected to a gas pump could identify the random bursts during which a high pressure gas swaps to low pressure. As such we could still exploit matter conversion, but the rate would be hugely reduced. A bead pump connected to this could suck out huge quantities.

I'm guessing the current game model is deterministic with no random processes. This might be a valid place to introduce a probabilistic model. 

If you prefer to keep it deterministic then continue using the same sequence in the rng used to make the world.

Link to comment
Share on other sites

My best guess as to when matter conversion became a thing is through the update linked below, or something near it. I'm guessing you guys know what code caused it, but if not, then here's some info to help you track it down. 

Forum posts before this date documented hydrogen and oxygen deletion in SPOMs.  After this date we start seeing posts showing total mass preservation, but then matter conversion.  In November we see the first posts that exploit this completely (through reddit). For the devs, please check on @FIXBUGFIXBUGFIX's hidden bug reports, as he had a matter converter in place possibly before this, and his work may help track down exactly when and how the bug began.   

Here is a link to the hidden bug reports (I hope they work for the devs). - The bug was in the code long before this time. 

 

Link to comment
Share on other sites

I believe this also happen naturally @mathmanican, usually on cool steam geyser. When steam condenses, it will create a vacuum. Surrounding gas will enter race condition to that tile. So I always try to dig steam geyser from below and preserve initial oxygen from there (usually 1kg/tile, IIRC). It will overpressure with oxygen (not steam) after a few cycles, and chlorine + CO2 below will disappear/reduced. Not sure how many steam that converted to O2 before they can condense. I call it natural electrolyzer :)

 

Link to comment
Share on other sites

6 minutes ago, abud said:

I believe this also happen naturally @mathmanican, usually on cool steam geyser. When steam condenses, it will create a vacuum. Surrounding gas will enter race condition to that tile. So I always try to dig steam geyser from below and preserve initial oxygen from there (usually 1kg/tile, IIRC). It will overpressure with oxygen (not steam) after a few cycles, and chlorine + CO2 below will disappear/reduced. Not sure how many steam that converted to O2 before they can condense. I call it natural electrolyzer :)

Yep. I'll add my most recent bug report to this as well, where I describe briefly a few other things like this as well. 

Back when @FIXBUGFIXBUGFIX owned the bug report to this topic, I spent a month cataloging places where this bug showed up, copying forum post links to the report, grabbing examples from reddit, etc. The forum if flooded with posts of confusion related to this topic. When he left and hid his posts, I gave up. I've finally decided to stop giving up. 

Link to comment
Share on other sites

What would really fix this is, if gas can actually (temporarily) able to fit in the same tile, because in our atmosphere gas is mixed and your not breathing in 100% of an element rather a combination. no winning really involved.

Link to comment
Share on other sites

3 minutes ago, I_Link_I said:

So you know how much of a mess that would be code,gameplay and programming wise?

Surely it isnt perfect but it is the best we have.

why not just treat gas as a background layer i mean they kinda already fight for dominance why not just allow them to occupy the same tile and then they jettison past each other in the direction they prefer.

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...