Airtight but not airtight with round window blocks

Wilhelm shared this bug 20 days ago
Investigating

Odd bug. I built an airtight small space with the round window blocks and catwalk floors, around a square foundation. The air vent shows four green that the space is airtight, and if I stand directly in front of it, it is indeed airtight (normal oxygen). Move one block to the left or right, or anywhere else in the base and the o2 starts to drop as though I were in deep space.

Replies (2)

photo
1

And to clarify, it is the normally airtight catwalk floors.

photo
1

Also, in the 'sealed' part of the station with a door, if I open the door, there is no gust of air that comes out, the air vent still shows green (airsealed) and if you stand in the block in front of the air vent the oxygen stays at 100% (and the block on either side, I made a few changes that the 'airtight' part of the inside of the base expanded to the block directly in front and to either side of the front of the vent.

photo
1

This is not a bug. This is normal behavior in SE1 for many years, the round window blocks (and sloped windows/armor panels) are considered airtight on all sides in a rectangular prism around the blocks. "Airtightness" is decided by individual block faces, and the slopes happen to be airtight on all sides of the grid cubes that they occupy. If your character's head enters this space there is no oxygen to breathe. It's a tradeoff for allowing the rest of your grid to be pressurized. The important thing to understand here is that O2 is not dropping in your grid, you are just occupying a space where there is literally no air (next to a sloped or round panel/window).

For more information, if you are on PC, use a mod like BuildInfo and press Ctrl + to visualize the airtightness of these blocks to further understand.

photo
1

Yeah, I love buildinfo and this isn't 'normal behavior' :)

photo
1

Hello Wilhelm,


Yes, this is normal behavior. You see, airtightness is decided per grid cell. Atmosphere will flow between faces that are not airtight. In your pictures, the only grid cells that can possibly be pressurized is the cube directly in front of the Air Vent. The rounded window blocks will never have air pressurization, because if you use BuildInfo Overlays, you will see that it is not possible for atmosphere to flow into their grid cells. They will always have zero oxygen in outer space. You cannot pressurize the entirety of the interior space in this design, the oxygen will not even flow to the cube occupying the Refill Station nor the cube with the Transparent LCD.

You prove me right by opening the door to your station. The grid cell where the Refill Station is cannot be reached by the oxygen coming from the Vent, because the curved window blocks are airtight on all sides. That is why the Air Vent is still displaying "green" despite the door being open. You essentially have 3 completely separate "rooms" that are blocked off from each other.

This is "normal behavior." Hope this helps.

photo
1

If your definition of 'normal behavior' is that there is a bug that's been around for a while so people have normalized this behavior, then no issues with that as a description. If you're saying that this is how you think space and airtight should work, I'm puzzled.

In any case, looks like they're investigating it. I'll rely on their assessment as to whether it's how they intended, or a side effect of something and certainly whether they want to fix it.

As for the buildinfo data, the statement that the curved windows are completely airtight on every facing and thus the air can't move farther around inside the confined space doesn't quite ring true. In the picture, I'm standing in the middle of that space inside the curved window block 'grid cell' and air is getting to that point just fine so that vent-side portion of that grid cell is certainly not airtight. Moving closer to the door this switches to be outside, so I think in reality the 'airtightness' of the block isn't on the perimeters of that grid cell, but there may be some invisible logic-only airtightness along the axis of symmetry of the windows' parabolic curve. (i.e. a line from the middle of the curve to the inside corner of the grid cell).

As a test, I made a simpler version where it was a 3x3 rounded ball of sorts, with a door on one side and an air vent/o2 tank/battery on the other. The middle faces were flat windows. Vent worked normally, responded normally (air rushing out) when the door was opened and closed and almost every spot inside was airtight and showed normal o2 and temps. I say 'almost' because in that configuration I could move around and there would be tiny spots where suddenly the air pressure would briefly flicker to 'vacuum' and then you move a few inches to either side and it's back to normal. I didn't measure it, but memory seems to tell me that those spots were crossing that same axis of symmetry of the various rounded windows inside their grid cell. If I managed to stop right on that line, then I'd be in 'space' but only in that tiny region.

(more data for the investigators anyway)

Appreciate the conversation, cheers.

photo
1

"If you're saying that this is how you think space and airtight should work, I'm puzzled."


It's not that this is "normalized", and it's unfair to move the goalposts and characterize my explanation that way. My intention is to simply convey that this is a limitation of the game engine, and build styles must adjust, just like in any other sandbox-style game.

I will reiterate: airtightness is defined by cubical grid cells and whether or not oxygen can flood-fill into a space to add it to the definition of an "oxygen room" as the sandbox file understands it, or out of it into vacuum to define an unpressurized room.

The reason these curved windows' airtightness is defined this way makes it possible for grids to have these attractive windows while still allowing pressurization. It's essentially a compromise that allows complex, curved and sloped windows to be built while still abiding by the cubical grid pressurization system the game engine uses.

In fact, many builders use it to an advantage by making doorless airlocks that allow players to enter and leave pressurized spaces without complex airlock mechanics.


"As for the buildinfo data, the statement that the curved windows are completely airtight on every facing and thus the air can't move farther around inside the confined space doesn't quite ring true."


You are not utilizing the the overlay feature. Press Ctrl + = to enable it.


Here are images below to help you understand better. Hope this helps.


"I say 'almost' because in that configuration I could move around and there would be tiny spots where suddenly the air pressure would briefly flicker to 'vacuum' and then you move a few inches to either side and it's back to normal."


This is explained by looking at explanation2 below. You are walking into the boundaries of the unpressurized cubes represented by the red blocks.

photo
1

Not sure how that's moving goalposts, but fair point. At this point, I'm not entirely sure what point you're trying to make, buildinfo = good (agree) and you're saying it's a limitation of the game engine because that excellent mod displayed the airtightness a certain way. How do we know that's not a limitation of how buildinfo displays airtightness, since it's focused on facings? I don't have access to the source code of the game engine to know if it's a limitation of the engine or not, maybe you do and have analyzed the code to a detail and with enough skill that you can confidently say it couldn't be fixed. I can't say. Either way, it is a bug and it's up to the devs to decide if it's worth spending time trying to fix, including taking into account that (as you say) many engineers of space have utilized this bug as a 'magic airlock' feature, and fixing it would break something for them.

I'm going to rely on what the devs decide regarding if this is a limitation of the game engine and not a mod created by someone who doesn't work for Keen. It's an amazing tool and I hope genuinely that its functionality is either included in SE2 or that the same mod is created there. However, the airtightness overlay in your explanation1 doesn't match actual game observations and so I wouldn't call it the definitive arbiter of how the air flow in that block works. I did a rough paint overlay of your explanation2, this is the actual behavior of air in that block, which obviously buildinfo would have no way to displaying since it's only focused on facings.

In any case, it doesn't really matter, the devs will look at it and we'll get what we get (stays the same or maybe they figure something out) depending on how hard it is to fix it. Appreciate the discussion in either case, especially taking to time to build a similar layout in your environment to demonstrate. I always enjoy hearing different opinions about things, and had no idea people were using this bug as a magic airlock 'feature', haha.

photo
1

At this point, I'm not entirely sure what point you're trying to make"

I will explain more carefully then. Please look again at explanation1. If you use BuildInfo's overlays, you can see that there are 6 blue airtight faces on all sides of that round window block. Extrapolate that complete airtightness on all of the round windows on your build. (I've done it for you in explanation 2, you can substitute the round windows for solid blocks with regards to airtightness).

This shows that there is no airflow from the single cube in front of the vent to any of the other cubes, because they might as well be solid blocks (that you happen to be able to walk through).


I can further explain that your "air/no air" is inaccurate as well. That entire block is actually "no air". You are just witnessing a lag in the update of the oxygen status as you move, but if you enter that block very slowly, you will see that there is truly no O2 anywhere inside that grid cell.

I'll provide a hint, the simple solution to your build is really to just expand it in radius by one block...


Thank you.

photo
1

In an attempt to verify the 'lag' you're describing, I performed a number of tests that continue to validate completely my diagram above with the green and red portions of that block. i.e. the colored parts of 'explanation2a are 100% correct.

Experiment 1: I moved from in front of the air vent (block adjacent) to the corner depicted in 'explanation2a'. In the block (as stated before) directly in front of the air vent I have 02 and heat as if airsealed. I step left into the corner into the green space in 'explanation2a' and it remains o2: High/warm. I stood in that spot for ~20 minutes and it continued to remain o2:high/warm, so if this is 'lag', it's pretty lengthy, or my statement and diagram is correct (more likely) even if it disagrees with the cherished display in buildinfo.

To further verify the diagram in 'explanation2a', the remainder of the test I stood entirely and only in the rounded block in question. I took a couple steps left and into the red space in the diagram and I'm no longer in atmosphere (which yes as you say it takes a second or two for the status to change). I waited for any 'lag' to see if there are any changes in status, then I took a few steps to the right back into the green part of 'explanation2a' and within a second it returns to o2: high/warm. At no point do I leave the confines of the grid block of the rounded window, and in fact I can find the precise line as drawn in the 'explanation2a' and simply step left and right and appear in and out of the airsealed space.

I'll stand by the drawing in 'explanation2a' as verified experimentally and repeatedly in this space. In fact as I've been typing to you, my space buddy continues to stand in the green space of that block in full o2 and temp.

(and yes I can make it bigger and work around it, that doesn't mean it's not a bug) My only concern here is to make sure the Keen folks have enough data to duplicate this and hopefully find a real fix.

photo
1

There is nothing particularly remarkable about your finding and it is not a bug. I think if I explain it the following way, you may understand.


SE1 does not model "air" as a fluid of particles that are contained by the physical hitboxes of the blocks we build. To do so would be computationally expensive, yet this is what you are insistent upon in your modelling of how you expect the game to work since it is intuition based on real life, and I implore you to drop this assumption to make progress in understanding.

This is how the engine actually works: The game checks the six faces of each 3D-coordinate cube on a grid build, and if that square face is NOT airtight, it will consider the two cubes where that interface is as one "oxygen room". As more faces are checked and more cubes are discerned to have airflow between their faces, the definition of the "oyxygen room" is built upon, block by valid block. The pressurization code scans the grid build for this on every face whenever a block is updated, either added or destroyed. If the player model's head is inside a cubical coordinate that is considered "oxygenated", the HUD will reflect it and the player can breathe.

The game must also account for curved or sloped windows. Think like a real game designer for a moment and ask yourself, "isn't there an edge-case where the player can 'cheat' by placing their head on the outside of a curved window, and 'breathe' even though they are outside a pressurized space, but still within the curved window's grid coordinate? This is true for the most extreme corners of the floor of your roughly circular floor plan, where the rounded windows curve away. Therefore, the game must account for these semi-pressurized, semi-vacuum spaces between curved or sloped windows. It must define an "outside" that is vacuum and an "inside" that is contiguous with the rest of the blocks in the "oxygen room".

This works fine if a rounded window is placed as a sloping edge that joins a "wall" and a "ceiling". The "outside" (top) half of the 3-d coordinate it occupies is considered vacuum, and the "inside" (bottom" half of the coordinate is considered pressurized.

Can you work out why you are seeing this behavior? The rounded windows forming the walls of your build are rotated 90 degrees. You are simply seeing the part of the code that accounts for the desired air behavior for a sloped or curved window, but it does not actually work when the window is oriented sideways. This only applies to these Round Windows that curve in two directions. In fact, if you jetpack up into the Round Window Corners (curving in three directions) of the room, you will always guarantee that there is zero air, because they do not have this code.

Please, this behavior is accounted for and fully understood. You aren't the first player to label this as a bug. If you insist that they fix this behavior because it doesn't match physical intuition of "actual atmospheric fluidics", it necessitates that they change the game engine. Did you know that they are working on this problem already?


...It is called Space Engineers 2 with volumetric fluid. Please support Keen if you want them to develop it. Do you see how it will take an entirely new game engine to remove this "bug"?


By the way, I do not have access to the game's source code! My understanding of pressurization is a culmination of many years of experience and experimentation, which is all about disproving hypotheses and not validating how you feel things should be.


Here is a helpful adage: "When sailing, do not attempt to change the direction of the wind if it is not blowing towards your destination. Simply Adjust. Your. Sails." Cheers.

photo
photo
1

Hello Engineer,

Thank you for reaching our forum with this problem.

Can you please provide us more information?

It would be ideal if you could show the said behavior to us on the video or couple of screenshots.

Thank you in advance.

Kind regards,

Keen Software House: QA Department

photo
1

Hey Ondrej, sure thing.

Simple description of the layout you'll see in pics. This is a space station build on a 3x3 grid attached to a long conveyor from the ground on Titan to orbit. At the center of the 3x3 floor is an air vent and above it a fully airtight conveyor. Looking at 'front outside', you can see how I use the rounded windows as curved walls and then curved windows as a rounded ceiling. It's one of the new doors, I haven't tested with the older door types. The air vent faces to the right of the screen in 'front outside' and there is an airtight inset bed block closing the branch to the right. Just inside the door is the small refill station attached to the air vent. To the left it curves around, there is a transparent lcd (the clock) and another curved window that wraps around to a cargo terminal block. The back is packed with oxygen farms as seen in 'back outside' and 'outside'. You can get a feel for the inside layout from 'front inside' and 'up inside' also. It's using full airtight blocks.

Now if you look at 'problem example 1' you can see that the air vent thinks the room is airtight, but the door is open. Additionally, standing in that position my space buddy's o2 never goes down. Also in the bed that is just to the right of where the 'problem example 1' is taken, you can sit in that bed and your o2 never goes down even when the door is open.

In 'problem example 2' you can see that I'm moving towards the door and my o2 (lower left) is still at 100% and will remain so. Moving one step farther left and then the o2 starts counting down as though I'm in deep space. Also note in this image at the bottom below the hotbar that it still reports that my space buddy is in 'high o2' and 'warm'

In 'problem example 3' I've moved to the other side of the door, which is still open. My space buddy's o2 is now going down and the bottom reports that we are now in a o2: none and 'freeze'

This behavior is the same regardless whether the door is open or not. When you open the door, there is no venting of air as you normally get when a sealed room is exposed to space.

Hope this helps, cheers.

photo
1

One additional (possibly) data point, when I originally built it I had the rounded window corners the same as they are on the front, where the rounded light armor blocks are in the picture ''back outside'. When I swapped the rounded window corners with the rounded armor, the apparent radius of the effect increased. Prior to replacing with the armor blocks, only the empty block space directly in front of the air vent (fan side) could you stand and your o2 was fine whether the door was open or not. After replacing with the armor blocks as seen in 'back outside' that zone of effect expanded one block on either side of the front of the air vent. This is why I pointed at the rounded windows as the possible culprit.

photo
Leave a Comment
 
Attach a file
Access denied