Next Gen Evolution

by Qon

Nests absorbing pollution causes evolution to increase instead of when it is produced. An improvement to vanilla pollution evolution behaviour. Default values are balanced to allow you to turn vanilla pollution evolution factor off without changing difficulty but everything is Qonfigurable. Doesn't impact UPS. /ngevolution to see evolution factor

Tweaks
3 years ago
0.17 - 1.1
1.74K

b [Resolved] How can I tell if the mod is working?

4 years ago
(updated 4 years ago)

Hi Qon,

It appears I am having difficulties with this mod not affecting my evolution rate. I started a new game with the mod installed, and all of the mod config settings have been left at default.

I'm still in the early game, but my pollution cloud is definitely touching the enemy nests, and my pollution statistics shows the nests absorbing pollution at a pretty mild rate of 150p/m

When I type "/evolution" in the console/chat, the game reports that my evolution score of 0.03 is 100% due to time, and 0% due to pollution.

With this mod installed, is the /evolution command inaccurate? If so, how can I tell if the mod is working as intended? My evolution rate seems much lower than I would have expected.

Thanks!

EDIT: I did some more investigation by reading the control.lua file and I suspect writing a value to directly to game.forces.enemy.evolution_factor would bypass whatever logic the vanilla game uses to track contributions to evolution. I.E. I should not be surprised that /evolution does not provide meaningful data. Furthermore, I set all of the vanilla evolution factors to zero and validated that the evolution factor was indeed increasing with this mod installed, so I guess this thread can be ignored. Sorry, Qon.

4 years ago
(updated 4 years ago)

I have some pollution absorption statistics to share:
Absorbed by spawners: ~180/m
Absorbed by tiles: 152/m
Absorbed by trees: 63.5/m
Absorbed by damaging trees: 20/m
If the mod settings are applied in the way that I would expect, the pollution absorbed by the spawners vastly outweighs the "healthy" absorption by trees and tiles. So shouldn't I see something higher than "Pollution 0%" when I type /evolution?

4 years ago

Yes the /evolution command is inaccurate. Nothing I can do about that.

The absorbtion/minute stats are not that useful if they are not from the "all time" tab. You can't accurately calculate it from the total either, but some approximations can be done from it at least.

3 years ago
(updated 3 years ago)

I came across this after also trying to figure out why my /evolution was showing 0 for pollution and to see how much my pollution is actually contributing so I can pick the right settings.

I think you can approximate the pollution contribution, assuming the "natives increase pollution" isn't in use. You know the final evolution factor and can query the time and kill factors, so if I'm not mistaken you should be able to calculate the missing component.

I think the formula is:
ef_p = 1 - (1 - ef)/((1 - ef_t)*(1 - ef_k))
Where ef = evolution factor and ef_t, ef_k, and ef_p are the time, kill, and pollution components respectively.

In my game, my evolution factor is 0.192756, ef_t = 0.088356, and ef_k = 0.092. Plugging this into my formula, I get ef_p = 0.0247999852, which seems low (because trees were absorbing pollution without being damaged). However, if I use your evo_combine formula with all three subcomponents, I end up back at the reported in-game evolution factor of 0.192756. Thus, my pollution component is really 12%.

So I think the data can be estimated. It then becomes a question on how to surface it. Can mods introduce custom console commands without disabling achievements? If not then maybe a mod setting to show a small UI overlay with the current evolution stats for the three components.

3 years ago

Mods can introduce new nondisabling commands. I'll say more when i have some more minutes

3 years ago

I was initially ignoring the kill factor since it's off by default and I'm not using it, but I think you can derive that too. You have the base game's ef_k, so you could just rerun your kill factor loop to generate the modified ef_k and then derive ef_p from the remainder.

Of course, all of this implies that other mods aren't messing with the evolution factor, but that's something for users of multiple evolution mods to take into consideration.

(I assume you could also just flat-out calculate ef_p from the pollution statistics, but there can be many pollution producing and consuming entities, so I figure it's easier just to reverse-engineer the current value from the evolution factor. But maybe calculating ef_p off the entities would help with cross-mod compatibility?)

3 years ago

I've thought about this some. I think a simple command that at least shows how each factor from the mod have affected evolution should be simple. Adding vanilla evo factors will be trickier but that might be possible to approximate as well.

3 years ago

Thanks, I think being able to relate it to the base game contributions is important so we can put it into context.

At minimum it would be nice to have some kind of /ngevolution command that would show evolution and the % contribution from time, pollution, and kills. Having an additional breakdown of pollution between absorbed by spawners, from corrupting trees, from killing trees, reduction from healthy trees would be helpful too as that helps us tune the mod settings to our playstyle. And for people using the option, kill contribution from killing spawners vs killing natives.

3 years ago

NGE starts tracking factor contributions from NGEv1.1.0 and shows them with /ngevolution :)

Version: 1.1.0
Features:
- NGE tracks evolution factor changes statistics from the different sources from now on.
- New command /ngevolution works like /evolution but shows how much each factor (vanilla and NGE)
has contributed to the total evolution.
The accuracy of the values reported haven't been tested yet, but the statistics collection
exists now at least so I wanted to get that out now.
Thanks to kaldskryke and Solinya for requesting
this feature!

New response