Make biters spawn faster

Place to get help with not working mods / modding interface.
Post Reply
Kingdud
Long Handed Inserter
Long Handed Inserter
Posts: 76
Joined: Sat Dec 16, 2017 3:23 am
Contact:

Make biters spawn faster

Post by Kingdud »

tl;dr: I've tried various settings to try and make biters spawn faster. I need some explanation of what some LUA properties do, as well as ideas for where I might look / what I might change to spawn biters faster. My ultimate end goal is to make biter attacks more UPS efficient with out resorting to 'leviathan' biters or silliness like that.

Context: Megabase, 10kspm. Biters are my main source of UPS drain at the moment (see: my suite of UPS saving mods). Specifically, if I use console commands to kill all biters and their bases, disable pollution, etc, then my UPS goes from ~27 to a solid 60. I am running on 0.18.17.

What I have realized is that my pollution cloud extends to 38,000 chunks, causing 8000-ish of them to be active, most with spawners. Digging into the game logic, I found a few knobs to turn:

Below where I have "biter-spawner", I make the same changes to "spitter-spawner" as well. For the "map-settings" below, those are changed via console command in my existing save-game for testing purposes.
  1. data.raw["unit-spawner"]["biter-spawner"].result_units Making the result array create only behemoth units at evolution 1.0
  2. data.raw["unit-spawner"]["biter-spawner"].spawning_cooldown = {360,1} Am I correct in thinking this means at evolution 1.0, spawn a biter every tick?
  3. data.raw["unit-spawner"]["biter-spawner"].max_count_of_owned_units It is unclear if units that get spawned, then assigned to a group, count toward this or not. It appears not? Increasing this seems to dramatically worsen performance, with no benefit (no additional biters seem to spawn unless max_friends_around_to_spawn is also increased). CPU busy-wait?
  4. data.raw["unit-spawner"]["biter-spawner"].pollution_absorption_absolute Am I right in thinking this is the maximum amount of pollution a spawner can old? Similar to the capacitance of a laser turret or accumulator? Does it refill per-tick, or at some other interval?
  5. data.raw["unit-spawner"]["biter-spawner"].pollution_absorption_proportional What does this do? My best guess was maybe it scales pollution_absorption_absolute with the evolution factor? What does it do at evolution 1.0?
  6. data.raw.unit["behemoth-biter"].spawning_time_modifier This doesn't seem to do anything? I changed it from 12 to 1 and biters appear to spawn at the same interval.
  7. data.raw["map-settings"]["map-settings"].unit_group.max_group_gathering_time I'm aware the true 'gathering time' is a random value between the min and max of this setting. What is unclear is if a group hits max_unit_group_size before the 'gathering time' is reached, does the group depart immediately, or hang around? My own tests are inconclusive.
  8. data.raw["map-settings"]["map-settings"].unit_group.max_gathering_unit_groups This does increase how fast biters spawn, but at a dramatic performance cost.
I have found a few other knobs (changing how fast groups can move, namely trying to keep them at 1.0 speed as much as possible). Increasing the path-cache size (unclear if this helped or not, but it also didn't seem to hurt). At the end of the day, what I really want is to be able to have the biter bases outside my base be able to spawn massive attack waves (for CPU efficiency; each group is processed as a single unit, right?) as quickly as possible. If I'm under constant assault, that's fine, assuming I'm pumping out enough pollution to support it.

What I imagine is that the pollution cloud only expands out once the spawners within the cloud can no longer produce units fast enough to absorb it all. This already seems to be happening, but I can't make the spawners spawn any faster than I already have. Update: As I wrote this post I realized the limiting factor I've hit is how fast the biters walk away from the spawner when joining the group. The time it takes them to go from being assigned to the group, to moving outside of spawning_radius is the limiting factor.

I really wish there was a setting for 'walking speed to group rally point', because I'd totally set that to like 100x normal walking speed or something. :p Alternatively, if there was a way to tell the AI to just have every spawner create a constant stream of biters at my walls as fast as there was pollution to create them, then I'd be good with that too!

Post Reply

Return to “Modding help”