Skip to content

ΔP#1949

Open
AutumnalModding wants to merge 7 commits into
HardLightSector:masterfrom
AutumnalModding:ΔP

Hidden character warning

The head ref may contain hidden characters: "\u0394P"
Open

ΔP#1949
AutumnalModding wants to merge 7 commits into
HardLightSector:masterfrom
AutumnalModding:ΔP

Conversation

@AutumnalModding

Copy link
Copy Markdown
Collaborator

About the PR

Ports Delta-P from space-wizards/space-station-14#39238

PR recreated due to GitHub issues.

Why / Balance

Atmospherics can have a little suffering, as a treat.

On a more serious note, plasma/tritium fires and TEG/reactor meltdowns are nowhere near as scary as they should be, and are almost always localized to Engineering. This is.. pretty mediocre, and doesn't really invoke the sense of "oh fuck oh no" that such meltdowns or fires are supposed to invoke. Tritfires already aren't scary because you can just place 1 directional fan.

Technical details

From space-wizards/space-station-14#39238:

This is put up primarily for code review on the processing side - the constants are not tuned yet and other misc stuff like CVARs and AtmosTime modifications are not implemented yet (though easy to do, I just wanted to write this).

Entities that want to take pressure damage need to have a DeltaPressureComponent that defines the damage and at what pressure, as well as the scaling type.

A new processing mode has been added, DeltaPressure.

Atmospherics will process entities that need to be calculated via a queue.
Entities will automatically add and remove themselves from the hashset that stores these entities on the GridAtmosComponent for processing.

When an entity is dequeued for processing:

  • The entity's tile indices position is retrieved
  • This is used to get the TileAtmospheres around the entity
  • The pressures of these TileAtmospheres are split into anti-directional pairs and loaded into a span to do SIMD calculations using helper methods in NumericsHelpers
  • The delta-pressure is then computed from this and damage is done from the entity based on that

A good chunk of the slowdown is from the retrieval of elements from the dictionary, as well as retrieval of the actual pressure from the tile (as we have to call a GasMixture get method). I might take a crack at implementing a proper cache however my last attempt at this yielded no measurable performance improvement, though I might try again.

How to test

Place a tritium and O2 miner in an enclosed, windowed area.
Invoke your inner pyromaniac arsonist. Watch the windows shatter.

Media

image

Breaking changes

Changelog

🆑 Illumos

  • add: Ported ΔP from Wizden.

@TeliaRS643

Copy link
Copy Markdown

I thought this PR vanished into the abyss (where it belongs) because of the discussion last time.

For starters, this is DEFINITELY the kind of thing that needs to be discussed in a community meeting before it's thought of being introduced, given any ship that runs atmos could already be in the realm of 'explodes hull' when saved. It's not like gasses are reset on ships every time they're loaded.

Furthermore, the thresholds for bursting and pressure deltas need to be referenced against the high-pressure devices that exist on this server to make sure that simply using high-pressure devices won't certainly break shit.

Also I don't like Delta P. It makes the simple act of TEG operation take 10 times longer to set up safely because no map is set up with Delta P in mind - I think Core even, the most common map voted, bursts no matter what you do if you ignite its burn chamber as-is.

I ALSO believe this will cause a metric fuckload of server slowdown in general, given it's not just calculating a burn chamber and various storage tanks on a station, and maybe a shuttle anymore. It'll be calculating for the station, its burn chamber, its storage tanks, any rooms' pressures that're getting high, the DOCKS, and AAAAALL the shuttles will now be part of the calculations as well, ESPECIALLY if they too have atmos work happening on them - which many of the larger shuttles do.

There are other bugs to squash before more features are piled on, is my take, and this isn't even a GOOD feature.

@NatusExVacuo

Copy link
Copy Markdown
Collaborator

@ratkingnyxu-lgtm

Copy link
Copy Markdown
Contributor

Against this. Especially since we are in a "content freeze". Bugfixes and balance please

@moosfire22-cyber

Copy link
Copy Markdown

I thought this PR vanished into the abyss (where it belongs) because of the discussion last time.

For starters, this is DEFINITELY the kind of thing that needs to be discussed in a community meeting before it's thought of being introduced, given any ship that runs atmos could already be in the realm of 'explodes hull' when saved. It's not like gasses are reset on ships every time they're loaded.

Furthermore, the thresholds for bursting and pressure deltas need to be referenced against the high-pressure devices that exist on this server to make sure that simply using high-pressure devices won't certainly break shit.

Also I don't like Delta P. It makes the simple act of TEG operation take 10 times longer to set up safely because no map is set up with Delta P in mind - I think Core even, the most common map voted, bursts no matter what you do if you ignite its burn chamber as-is.

I ALSO believe this will cause a metric fuckload of server slowdown in general, given it's not just calculating a burn chamber and various storage tanks on a station, and maybe a shuttle anymore. It'll be calculating for the station, its burn chamber, its storage tanks, any rooms' pressures that're getting high, the DOCKS, and AAAAALL the shuttles will now be part of the calculations as well, ESPECIALLY if they too have atmos work happening on them - which many of the larger shuttles do.

There are other bugs to squash before more features are piled on, is my take, and this isn't even a GOOD feature.

As a atmos main who has done the TEG on just about every map, NO the TEG burn chamber will not pop if you dont fill it with 9000pka worth of gas. Put in a 3% mix at less than 800pka and it doesnt burst. I genuinly dislike people who say stuff like this as it shows you dont put thought into your TEG mixes. Dont put in thousands of pka of burn mix and it wont blow up. I have made setups that produce mass amounts of power without going over 100 thousand pka in the burn chamber. it is not hard. -Sincerly, the average atmos enjoyer

@Fasuh

Fasuh commented May 29, 2026

Copy link
Copy Markdown
Contributor

I like delta-p, its a nice feature, and makes currently very simple atmos at least a bit engaging.

@fenndragon

Copy link
Copy Markdown
Collaborator

I want to state. The content freeze we currently have is specifically for major game changing/systemwide stuff such as this

@AutumnalModding

Copy link
Copy Markdown
Collaborator Author

(this PR has been open for a while - see #1643 - it got reopened because github jank)

@TeliaRS643

Copy link
Copy Markdown

As a atmos main who has done the TEG on just about every map, NO the TEG burn chamber will not pop if you dont fill it with 9000pka worth of gas. Put in a 3% mix at less than 800pka and it doesnt burst. I genuinly dislike people who say stuff like this as it shows you dont put thought into your TEG mixes. Dont put in thousands of pka of burn mix and it wont blow up. I have made setups that produce mass amounts of power without going over 100 thousand pka in the burn chamber. it is not hard. -Sincerly, the average atmos enjoyer

Yes I understand how Delta P works. Thank you. This is 'very informative', average atmos enjoyer. Please post your tutorials to people who need them, and who asks for them.

@moosfire22-cyber

Copy link
Copy Markdown

As a atmos main who has done the TEG on just about every map, NO the TEG burn chamber will not pop if you dont fill it with 9000pka worth of gas. Put in a 3% mix at less than 800pka and it doesnt burst. I genuinly dislike people who say stuff like this as it shows you dont put thought into your TEG mixes. Dont put in thousands of pka of burn mix and it wont blow up. I have made setups that produce mass amounts of power without going over 100 thousand pka in the burn chamber. it is not hard. -Sincerly, the average atmos enjoyer

Yes I understand how Delta P works. Thank you. This is 'very informative', average atmos enjoyer. Please post your tutorials to people who need them, and who asks for them.

Sorry i was very irritated at the time, i didnt mean to come over this agressive. Sorry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants