Reika wrote: Sat Oct 20, 2018 5:40 pm
Lyneira wrote: Wed Oct 17, 2018 6:47 pm
It seems biter de-evolution is too strong right now.
...
It is funny you say that considering that the prevailing opinion is that NVDay makes the game far too hard, and alien attacks and evolution ramp up far faster than the player can possibly compensate for. Indeed, I have seen that happen myself, including with my current save.
...
NVDay is explicitly designed to punish dirty technology, not factory size.
I think I'm seeing this because I tend to take my time figuring out designs, expanding the factory somewhat conservatively and focus on teching up rather than scaling up, where others might focus more on scaling up production and causing a lot more pollution in a short time period. And given I'm relatively new at the bob/angel mods. figuring out how to progress takes even longer so the de-evolution has a lot of time to play its part.
I can also give an update about my second bob/angel playthrough. I relied on steam power for a bit longer than I should have. The starting lake got polluted, the offshore pump clogged so I had to replace it, start blowing the pollution away from the chunk and mind my power usage while I worked towards solar. Despite the significant pollution I was now creating, because I had taken quite a bit of terrain and walled it in, the pollution cloud had not gone outside of my walls so I wasn't worried about biters. After a couple hours passed, it turns out that was a mistake. The biters (natural evolution enemies and rampant AI) somehow triggered an attack and they had evolved to level 3, easily breaking through my lightly defended wall. I shut down the entire factory and made several attempts to stabilize but getting close to the wall just triggered more attacks now that they were agitated, so I ended up having to load several autosaves back and shut down the steam boilers immediately to let the biters calm down. They still attacked after a certain amount of time but now they were weaker and I could work on transitioning to solar.
So you're right that dirty technology is punished severely and I'm not asking that to be made harder than it is. Nor do I want to specifically punish factory size. I saw you're working on a mod called Loss Prevention that's intended to use a heuristic to set a cap for biter evolution to address the out of control ramp up you've seen in your games.
My thinking with this suggestion was you could apply the same heuristic to set a minimum for the biter de-evolution so that in a late game where you have a large factory and strong offensive/defensive technologies, you can't shut down power, go afk and come back to level 1 biters for easy nest clearing. Let's say your factory was fending off level 5 biters during normal operation, when you go afk to let the biters calm down their minimum level might be level 3 instead but won't go lower due to your technology level.
Or a much simpler way to do it: Keep track of the highest evolution level seen during the game (X %) and never allow the de-evolution to drop the evolution level to less than for example X - 30%.
Reika wrote: Sat Oct 20, 2018 5:40 pm
Lyneira wrote: Wed Oct 17, 2018 6:47 pm
It shouldn't be possible to filter all pollution out of the air ...
I have wanted to do this for a long time - primarily because I do not want deaeros producing sludge from nothing - but there is no performant way to do this, especially if one places many of them. The best I can do is iterate over all the deaeros every second or so, check the pollution in that chunk, and then mark them functional or not, which is very very slow.
If you have a numerically indexed list of all your deaeros, you could spread out the checks for them to reduce the impact so checking all of them at once doesn't create lag spikes. If you wanted to check each deaero only once every 10 seconds and given 60 ticks per second, you could use modulo math to check 1/600th of all deaeros every tick. In pseudocode:
Code: Select all
t = game time (in ticks)
s = 10 (seconds between checks)
m = 60 * s (effectively check 1 / m of all deaeros every tick)
deaero_list = numerically indexed list of all deaeros
i = t % (60 * s)
while i < deaero_list.length; {
do_deaero_check(deaero_list[i])
i = i + m
}
If there are fewer deaeros than 600, some ticks will do no check and others will only check one machine per update. If there were 1200 deaeros on the map, it would still only check 2 deaeros per tick.
If you mean the process of toggling a deaero itself is very slow, I guess the only way to mitigate that would be to increase the time between checks, perhaps also mark a toggled deaero with the current tick's timestamp as "cooling down" after being toggled (the deaero check loop would skip any deaero that is still cooling down) so it doesn't toggle as often if the chunk is on the threshold.
Reika wrote: Sat Oct 20, 2018 5:40 pm
The intent is that you have far more sludge than can be reasonably processed. Given your earlier comment about very little pollution, it sounds like you have very little sludge.
A fair point given how I tend to progress fairly slowly and cautiously, and also given that I automated the deaeros not to run if pollution was low. I'll keep an eye on this to see how it goes when I get later into the game. I'm not sure once you can process the sludge there is ever such a thing as too much of it though. The pollution processing takes 2 seconds and processes 100 sludge, giving sulfur dioxide gas, nitrogen monoxide and a small chance of carbon. Sulfur dioxide is easily turned into sulfuric acid with some purified water, which was a bottleneck resource in my first angel/bob playthrough. Aside from battery production and the angel's refining ore processing, it can be used in large amounts to process crushed stone, slag and geodes (which can be generated at only a power cost from seawater) into desired ores. The nitrogen monoxide doesn't have much use initially so will likely get flared, but can be used for rocket fuel later.
Reika wrote: Sat Oct 20, 2018 5:40 pm
Lyneira wrote: Wed Oct 17, 2018 6:47 pm
... The base pollution of flare stacks and clarifiers is extremely low so it might deserve an increase.
I can do that. What is its internal name and entity type?
I hope I found the right piece of code for that, here's the Clarifier:
Code: Select all
data:extend(
{
...
{
type = "furnace",
name = "clarifier",
Although looking closer, the Clarifier might not need a pollution increase because it is used only for unwanted types of water such as mineralized water, saline water etc. For example if you need chlorine, you might purify water into purified and saline water, use the saline water to get what you need and clarify all the purified water if you have no immediate use for it. You can't just throw any liquid in here to remove it, it only works on Angel's different types of water.
The flare stack is the more dubious one. This is what lets you get rid of most unwanted nasty chemicals from Angel's petrochemical processing without much pollution. It's also frequently used to vent harmless gases like nitrogen when you're filtering air for oxygen, or excess hydrogen (you can't burn it for power afaik) after electrolyzing for chlorine or oxygen.
Code: Select all
data:extend(
{
...
{
type = "furnace",
name = "angels-flare-stack",