Rampant Evolution

by Veden

Changes evolution mechanic to allow for green play. All evolution parameters are configurable and retroactively work on-the-fly. Tries to balance evolution level with number of nests covered by pollution. Killing units reduces evolution. Sets vanilla map evolution factors to 0 in new game settings and can change existing save map evolution factors in mod settings. If you want the vanilla options still, use the mod settings in Rampant Evolution. Has stats for displaying evolution in game.

11 months ago
1.1
21.8K

i Decrease evolution when player's buildings are destroyed

2 years ago

I had this idea of dynamic difficulty which would try to keep the power balance between the player and biters from getting out of hand, in particular preventing a save from becoming unwinnable if defenses are overrun. For me at least, unless I've seriously neglected my defenses, I usually can't bolster them enough to prevent biters from getting through again and again, and then I end up spending so much time and resources on repairs that my progress falls even further behind the enemy evolution and eventually I lose the game.

I like having a threatening element in the game though. Designing and building defenses and arranging the transport of supplies is interesting. But finding settings which result in a good balance is hard. I don't want to lose a game after tens of hours just because I wasn't able to accurately predict my rate of technological progress when starting out. On the other hand, I don't want the biters to be so easy that I can completely steamroll them all the time.

The basic idea is that if biters destroy the player's buildings, they've become too powerful and evolution needs to decrease to prevent the save from becoming unwinnable. I think there should be a few different categories depending on how much damage different types of buildings are expected to take. Walls should have the least effect, if any, since they're the first line of defense. Things like military buildings and railway infrastructure should be low to medium since they're typically used at outposts close to the front line. Actual production buildings are the highest value targets and should cause a significant reduction in evolution if biters manage to reach them.

A few specific buildings could have special values. Solar panels are usually built in huge numbers and individual panels are less valuable. By contrast a nuclear power plant is very valuable and causes destruction in a wide area, so the evolution decrease should be commensurate.

There should also be some mechanic to prevent cheesing the system by building sacrificial assemblers outside the walls and having biters destroy them. The game tracks the number of products finished by production buildings, so that could work. It could be a linear ramp where a building that hasn't produced anything yet doesn't grant any decrease, and above X products finished it grants a full decrease when destroyed. 100 or so should be a good enough threshold to indicate that the building is part of an actual production line. For turrets, their kills or damage dealt could be used in the same way. Chests could be valued based on how many items are in them, maybe also the "tech level" of those items if there's a reasonable way to calculate that.

2 years ago
(updated 2 years ago)

This mod is using the kill, pollution, and build stats to perform the evolution calculations, so none of the entity specific information would be available.
Using the on_death event would allow tracking the products made, damage, and chests inventory, but this has the downside of if evolution is recomputed on-the-fly, the particular entity stats wont be available for the calculation. The result is you would end up with an approximation and a proxy value for the effect on evolution would need to be used for any of those entities.

None of what you are asking is unreasonable, but I'm curious what you would consider to be acceptable approximations on recomputing evolution for assemblers and such?

I have also thought about providing options to limit evolution based on science produced, or number of technologies research as different ways to control evolution.

1 year, 11 months ago

Would it be possible for the mod to internally track the kill stats for player entities using the on_death event? It doesn't need to remember individual entities, just keep fractional counts for entity types (for example using a production threshold of 100, an assembler which has made 50 products would count as 0.5 kills). Entities killed by the player (such as driving into power poles or pipes) should not count.

When the mod is being added to a save, I think it would be acceptable to initialize the internal stats from the game-provided stats using a fixed weight. I'm not sure if it should be 1.0 or something slightly lower to account for the probability of accidental kills by the player. If someone wants to go to the trouble of removing the mod, racking up some destroyed assemblers, and adding the mod back to reduce evolution, then so be it. The anti-cheese mechanic isn't critical anyway and it doesn't significantly reduce the value of the balancing feature even if it turns out that part can't be implemented.

1 year, 11 months ago
(updated 1 year, 11 months ago)

The first pass of this will just be a flat amount that is configurable in the mod settings for each prototype

Any thoughts on the following:

local lowValuePlayerStructures = {
"ammo-turret",
"electric-turret",
"fluid-turret",
"artillery-turret",
"electric-pole"
}

local mediumValuePlayerStructures = {
"solar-panel",
"accumlator",
"radar",
"storage-tank",
"container",
"logistic-container",
"lab"
}

local highValuePlayerStructures = {
"assembling-machine",
"furnace",
"roboport",
"beacon",
"boiler",
"generator",
"mining-drill",
"reactor",
"rocket-silo"
}

1 year, 11 months ago

That seems mostly in line with what I was thinking. I'm a bit undecided of the categorization of lab and mining-drill. Drills are commonly used at mining posts and attract biters with their pollution, so they have higher than average risk of getting attacked, but on the other hand the production of ores is important to the player. Labs are generally located at the main base and well protected, but on the other hand losing them specifically is often just a nuisance, since most research is not immediately helpful in defending the factory and at least in my games there's long stretches of time where no research is going on.

1 year, 11 months ago

Are recommending a change of lab and mining-drill to move down one category to low and medium?

New response