GTNewHorizons / GT-New-Horizons-Modpack

New Modpack with Gregtech, Thaumcraft and Witchery
https://www.gtnewhorizons.com/
Other
945 stars 295 forks source link

[RFC] Disable Pollution and re-work the mechanic #7341

Closed basdxz closed 3 years ago

basdxz commented 3 years ago

Read as above.

Pollution is a horrible mechanic as of right now, which has only been worsened by the addition of pollution to blocks outside of GT5u.

The issue arises when the user builds a base of sufficient size, the pollution from EBFs in particular making parts of the base unlivable and ruins the terrain.

There are three ways of dealing with it right now:

The gameplay that the pollution brings forces the user to make a block that just sucks it up in a cheaty way, be unable to watch their factory work unless they wear a full hazmat suit at all times and kill their crops if they are nearby.

As I see it, pollution should be disabled until the mechanic can provide more gameplay value than forcing the player to put their EBF somewhere else.

A proposed rework is to use pollution to incentivise tps lag efficient base building. Adding more pollution to lower tier machines to lead players into building more efficient setups using processing arrays and other multiblock structures instead.

Houstonruss commented 3 years ago

As someone with a biome of Mega EBFS I really want pollution to be better.

HGLMiddle commented 3 years ago

I still suffer from pollution even when I am inside the cleanroom, really weird.

Houstonruss commented 3 years ago

I still suffer from pollution even when I am inside the cleanroom, really weird.

You haven't overclocked it enough.

NoX-programer commented 3 years ago

Adding more pollution to lower tier machines to lead players into building more efficient setups

Defifintely disagree with that. Pollution is pain-in-the-***, and we have that enough in this modpack. Or you want more players that dropped play GTNH? I suggest to leave as is, to change nothing.

leagris commented 3 years ago

Defifintely disagree with that. Pollution is pain-in-the-***, and we have that enough in this modpack. Or you want more players that dropped play GTNH? I suggest to leave as is, to change nothing.

He was implying get enough pollution from low tier machines to prevent spamming low tier rather than progress to more efficient upper tier machines. But this is not an easy goal really.

I appreciate the effort from this RFC. I'd add that tweaking so many pollution values at so many place is a never ending task with impossible balance.

I am glad the question of pollution get some attention. It need some love for sure and the current state of it is unsatisfying

Cleista commented 3 years ago

To add onto what I said in #github-discussion if we want a rework:


Solving Lag

Tying pollution to "lag" makes no sense since the most laggy things aren't known to emit pollution, and the most polluting things aren't necessarily laggy. I suggest a separate mechanic to deal with it:

Load/Overload = factors correlated to lag. You can profile this somehow on a chunk or machine owner level, we don't need to think about it too hard at this moment. The important thing is having something like LagGoggles to show players what is and isn't lagging so they can fix it themselves without server owner opening Opis.

Lag is quantified as a "Load" parameter and super laggy bases are "Overloaded". Overload kicks in when TPS drops below a pre-configured value (say 10). Chunks experiencing overload will show SFX to the players (like when you enter a region of the Twilight Forest you aren't supposed to) so that there's obvious visual feedback of the problem.

The more overloaded a base is, the higher EU/t consumption of machines become, which will cause recipes to eventually result in machine shutdown (insufficient energy) requiring soft mallet restart, which can fix the lag by itself. This is also not fixable by spamming more machines, so players are incentivized to fix the lag problem


Pollution rework:

Pollution = side effect of machines that we can either ignore (for free), or optionally collect to get useful materials.

This follows the same principle as "Spice of Life: Carrot Edition" which GTNH uses to reward players for doing an optional thing instead of punishing them for not doing it.

For example, you could use a muffler to output pollution into the air (which debuffs players who are directly next to it, a la how steam machine outputs hurt you), or a more expensive Pollution Collection Port that will consume filters/cleaning fluid to get dirty filters/dirty fluid that we can further process to get partial returns.

If there's a lot of pollution in the air, we could bring back the smog effect - but we need to make it so that stuff like launching higher tier rockets don't instantly ruin your base.

Examples of pollution byproducts we could work with:

EBF -> sludge -> processing chain -> some materials

Blast furnace sludge (BFS) is a metallurgical waste generated by the iron-making process. This sludge is a mixture of oxides whose major components are iron oxides and coke fines, in addition to silicon, calcium, magnesium and minor heavy metals such as zinc, lead, and cadmium. LCR -> Chemical pollution fluid -> processing chain -> small amount of desirable chemicals like rare earth/platinum sludge/acids etc. Air Pollution collectors + filters -> used filters -> processing chain -> clean filters + raw materials Volcanus -> Depleted Pyrotheum -> processing chain -> Partial pyrotheum return + metal sludge

If it is technically feasible, can output recipe-specific "polluted sludge" where the metadata stores what you get for processing it, which lets us turn some some lossy processing chains into lossless chains if the player builds additional recycling infrastructure to collect and process the sludge.

basdxz commented 3 years ago

Tying pollution to lag is just one way making pollution a worthwhile mechanic and not just something else that was clobbered together for the sake of having it. Pollution sludge processing is something I've heard a few times, it sounds like it could very much work but doing it right would require a number of re-works.

If we're adding something akin to lag goggles it should be an always-available overlay that can be toggled on or off with a keybind, giving users the information on what's causing lag and how much has no downside.

The overload mechanic is questionable but worth at least trying, it should be disabled by default in the server/client config and only really present on officials or unofficials that wish to use it to regulate "Lag". I think we shouldn't make machines "consume more power" etc, once a chunk passes a certain threshold of 'lag generation' just straight up soft-mallet disable the machines in the chunks with a priority given to generators. The reasoning behind this to prevent item-loss during processing.

It would also be interesting to investigate ways of monitoring and controlling lag sources from mods other than GT, perhaps something that could throttle the ticking of misbehaving TEs?

Regardless of how this is done, I fully believe that pollution in its current state has no place in this pack. Be it turning it into a lag-deterrent or a waste-recovery feature is all within scope, but until there is a reasonable way of regulating it that does not involve having to space out the pollution producing blocks or being throttled on the size of own's factory, it just doesn't fit.

dvdmandt commented 3 years ago

I rather enjoyed pollution in early game. I greatly overestimated the importance and impact of pollution and as such went to great lengths to counter it. Now that I'm a bit further in the progression, I think of it a bit different.

I think the status effects are just straight up annoying. Running around in a hazmat suit gets really old really fast. I would much rather tie it to the environment and have it much less local than currently. Like lowering crop yields, slowing down bees, possibly lowering plant tick rates, .. Something. But it would have to be much more distributed in order for that to work at all.

For power generation, I wish we could tie pollution more to the actual fuel used, so that we could have more trade offs between high energy fuels and low pollution fuels.

For processing, I'd also like to see more ways to capture and filter. Maybe just straight up chimneys?

A part of me wishes there were two things. One more local smog thing with fast dissipation and perhaps hazardous effects and one more long term environment thing with significantly greater distribution. The smog would be pretty easy to deal with, for example by chimneys, while the other thing would encourage you to do more filtering and make more conscious choices about power production and similar.

basdxz commented 3 years ago

With any non-local effects, do consider the consequence on the public servers.

dvdmandt commented 3 years ago

I'm not proposing global effects, but less local than the single chunk that is basically where it's at right now, at least up to LuV tier. How close are peoples bases on the public servers? I'm thinking more like 5x5 - 10x10 chunks.

Dream-Master commented 3 years ago

I not agree with the title. Disable is not a way i like to go. Sure a rework is urgent and necessary. So let's do a record and put it into the next major update

General-Ike commented 3 years ago

Just spitballing here, seems hard to implement:

What if there was a higher tier muffler hatch, MV tier for point of this discussion, call it a "Flanged Muffler Hatch". It has a fluid inventory, generates "Pollution", and the multiblock won't run if the hatch is full. "Pollution" can't be voided, and breaking a pollution containing block adds pollution to the environment.

To get rid of "Pollution", you have to send it to a "Smokestack" multiblock (maybe a tall brick/something tower with some pipes in the center). The "Smokestack" could be upgraded at higher tiers to further mitigate pollution, maybe with filters/catalysts in the control block. Make a T2 version with metal walls and scrubber pipes in the center. Pollution reduction increases with height. T3 has larger diameter and active scrubbers, it consumes energy, but drastically reduces pollutants, maybe recovers particularly rare elements.

Give 'em a cool smoke animation, maybe flare every once in a while. Interesting infrastructure, and a cool visual addition to your factories.

alphaNOVAircraft commented 3 years ago

can´t be voided

will be intresting how you want to make sure noone just voids it xD i dont think that is reasonable

General-Ike commented 3 years ago

can´t be voided

will be intresting how you want to make sure noone just voids it xD i dont think that is reasonable

Two ideas, whichever is easier to implement: -If "Pollution" is ever voided, it generates gibbl -Blacklist it from all fluid voiding things (trash cans, overflow covers, etc)

Remember, regular mufflers are still an option. This would just be an additional solution that the player can use.

0lafe commented 3 years ago

If pollution collection was costly, and processing it into non pollution was beneficial, it wouldn't matter if we allowed players to find ways to void it as it would end up being detrimental more than beneficial

GTNH-Colen commented 3 years ago

-Blacklist it from all fluid voiding things (trash cans, overflow covers, etc)

Stopping people from voiding fluids is virtually impossible, just put it in a drum and leave it to despawn, or shove it in a compressed chest/AE cell/backpack etc the list is basically endless and we'd constantly just be fighting to keep up with new methods to destroy it.

McFrugal commented 3 years ago

Right now pollution happens from EBFs even if the recipe involves no carbon or raw ore at all. For instance, the aluminum recipe accepts pure aluminum dust and gives aluminum ingots, but the EBF produces pollution from this somehow despite running on pure electricity. Similarly, other recipes which have no or little carbon or volatile gas should not produce so much pollution. Other machines should be investigated as well-- why does the Pyrolyse Oven pollute so much compared to coke ovens? Optimally pollution would be tied directly to waste products emitted into the air, and the biggest culprits there would be solid fuel boilers/generators. Burning coal(or charcoal) for power, in other words. Burning most types of oil to produce energy would be bad as well, and methane (that's what "natural gas" is... would other gases pollute less than liquid fuels too?) would be relatively clean by comparison. Once a base transitions to nuclear power, pollution shouldn't be a problem anymore. Tying pollution to recipes would also make voltage/time requirements stop scaling up pollution of the EBF so much, which is a huge problem with mega blast furnaces.

An alternate suggestion is to abandon realism and aim straight for the problem you're trying to fix. Associate pollution with CPU usage, naming it something else, like ambient entropy. Should be easy to assign appropriate values to problematic blocks. Or someone could go around on the servers and punish players for having laggy setups by removing the offending blocks? I've seen server admins do that with other modpacks. Then SSP players would not be affected at all.

On a side note, why is there an iron to steel recipe for the EBF that requires no carbon? Steel production always involves carbon in real life, and I wouldn't expect the EBF to extract it from ambient air.

allenelectronics commented 3 years ago

I think pollution is a very generic term, there's no indication as to what "pollution" is. Perhaps considerations could be made to different types of pollution depending on what you are doing. Carbon Dioxide, Carbon Monoxide, Methane Gas etc. I also like the comment about cleaning the pollution up and if there was more definition this could be done to reduce the players pollution footprint.

I don't think it should be removed 100% but give it a better purpose than debuffs and ruining terrain.

Dijon ETA Server

Viktor-KN commented 3 years ago

Remove pollution effects. Make pollution to attract hordes of hostile mobs, like in Factorio.

Dream-Master commented 3 years ago

Remove pollution effects. Make pollution to attract hordes of hostile mobs, like in Factorio.

good idea.

Ethryan commented 3 years ago

Remove pollution effects. Make pollution to attract hordes of hostile mobs, like in Factorio.

I would suggest to limit Creepers if this is implemented, it is no fun to cause a chain creeper explosion.

leagris commented 3 years ago

Remove pollution effects. Make pollution to attract hordes of hostile mobs, like in Factorio.

good idea.

While it sounds fun and all, it would cause massive lagg issues and annoy new players only.

boubou19 commented 3 years ago

make the monster repeller work against the summoning of mobs via pollution 😄 . No seriously this sounds like a bad idea TPS wise.

Cleista commented 3 years ago

Mobs are just terrible for endgame servers on a tech pack, I constantly get asked to /cofh killall to restore TPS from 4-5 to 20.

General-Ike commented 3 years ago

Maybe I'm being crazy here, but if my "Smokestack" pollution multiblock idea from above is interesting (feel free to critique), and the problem is that making a "Pollution" fluid is too easy to delete:

What if a new "type" of fluid were coded. Copy/Paste the existing fluid code, but define it in the class "fluidpollution" (you might even be able to make multiple types of pollution if free time isn't your jam), and program the only blocks with compatible fluid inventories to be "Flanged Muffler Hatch", "Exhaust Pipes" (of varying sizes), and "Pollution Intake Hatch" (for use with the "Smokestack").

Teykn commented 3 years ago

As I’ve suggested on another issue thread, lower tier mufflers should cause maintenance problems, with higher tier mufflers lowering the chance of such. Should be a low chance, but a lot higher than the maintenance issues that people rarely (if ever) encounter on, say, an EBF

please do rework other aspects of pollution though, holy crap is it bad as hell...

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 3 days

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 3 days