Jump to content

Critter overpopulation -- action slowdown


Recommended Posts

1 hour ago, KittenIsAGeek said:

The algorithm may be something like this: "Can move left?" "Yes? OK, pick left. Done. No?  Evaluate for movement right.  Yes? OK, pick right.  Done.  No? Evaluate for movement up by jumping/floating/flying..." Etc. 

I interpret what you said more like this: #1 pick (random?) critter from movement queue #2 try moving random direction - yes? remove from queue - no? return to queue #3 return to #1. So if all critters need to be "processed" before the next round starts (and/or get pushed back to queue at every tick), then I could see how a critter unable to move might keep getting added to the queue indefinetely and slow everything down to a halt. On the other hand, if no critters were 'blocking' the queue, this would result in a fairly random and sporadic movement patterns rather than straight lines.

1 hour ago, Zarquan said:

I would also argue that if trapped critters take significantly more computation than non-trapped critters, this is a bug and it should be fixed.

On the other hand, exactly this. If critters with nowhere to move (as opposed to 'trapped in a tile') take more computation than non-trapped critters, then the computation should be adjusted coz that can't be good.

55 minutes ago, KittenIsAGeek said:

A possible way to test would be to make your single-tile farm a three-tile farm instead.   With three tiles of movement, there ought to be a movement map.  If performance improves, then the drag on the system is the test for a possible movement map.

Yeap, this would be a way to test it. A two-room farm might even be sufficient (after all, in a 3-tile, the situation improves in only 1/2 cases, as the critter will always move from a corner tile (with only 1 movement choice) to the middle tile (2 movement choices) and then to a corner again (same or different one), so improvements should already be visible in a 2-tile room). Any chance you could modify your design to try this @Zarquan, with a 2 or 3-wide room instead of trapped in one tile? I would but the Bug-Solar is just a big ball of 'Intensely bright' that I navigate on the materials overlay and using the screenshots I took when it was empty, so I don't see a way to modify it with the critters still inside (and I'm not an expert user of debug mode either...). Besides, after my little lights out cull, I believe you are now left with more critters on your map/tile :)

Link to comment
Share on other sites

1 hour ago, riwenna said:

Yeap, this would be a way to test it. A two-room farm might even be sufficient (after all, in a 3-tile, the situation improves in only 1/2 cases, as the critter will always move from a corner tile (with only 1 movement choice) to the middle tile (2 movement choices) and then to a corner again (same or different one), so improvements should already be visible in a 2-tile room). Any chance you could modify your design to try this @Zarquan, with a 2 or 3-wide room instead of trapped in one tile? I would but the Bug-Solar is just a big ball of 'Intensely bright' that I navigate on the materials overlay and using the screenshots I took when it was empty, so I don't see a way to modify it with the critters still inside (and I'm not an expert user of debug mode either...). Besides, after my little lights out cull, I believe you are now left with more critters on your map/tile

I guess, but I will need to determine metrics for such an experiment.  The best measure I can think of is the average number of critters groomed by a single rancher at max speed over 10 cycles or so, where more critters on average means the critters think faster.  But this isn't precise.

Can anyone think of a better metric?

Link to comment
Share on other sites

On 9/16/2020 at 3:54 PM, TheMule said:

IMHO this is a case of "Doctor, it hurts when I do this. Then don't do that". I'm sorry, this is what I think, honestly.

Totally agree.

Let's just say it's the diminishing return of ranching because we do too much of it.

I have butchered my Hatches, Slickters, and Pips for better critter performance because I think too much effort for them that not really benefits me.
And now on 4616 cycles I have about ~80 wild Voles and ~400 Pacus both in a single tile for my main Surf'n'Turf production that requires no dupe interaction. I also have ~100 (Glossy) Dreckos with shearing stations for plastics and fibers. And lastly, ~80 (Dense/Prince) Pufts for slimes and oxylites. I might be butchered the Pufts too later.

Link to comment
Share on other sites

9 hours ago, Zarquan said:

I guess, but I will need to determine metrics for such an experiment.  The best measure I can think of is the average number of critters groomed by a single rancher at max speed over 10 cycles or so, where more critters on average means the critters think faster.  But this isn't precise.

It's not precise, but if we're just answering a yes/no question (do cirtters that can not move take up more processing power than the ones which can), you don't need that much of a precission.

A bit more finnicky way to do it but possibly more precise as it would cut down on other actions would be to let all your critters in a single stable go 'glum' (by denying access to ranchers), and then lock a Rancher with them and check how long it takes a rancher to groom a full stable of critters and go Idle?

Another two actions that seem to be slowerd down is calling Dreckos for shearing (I guess could be tested the same way but that sounds a pain, waiting for all of their scales to grow back up), calling critters for a wrangle in stables with autowrangle (this could be a bit simpler as it wouldn't require waiting time - if you have an empty stable, try relocating all critters from a full stable to an empty one and measure how long it takes), but maybe even more precise could be critter dying time (as with grooming/shearing/wrangling, you'll actually be measuring two times; the time it takes for a critter ro register it's being called (which we want to measure) and then the time it takes for them to walk over (which we all accept based on our ranch designs), plus relocation time with wrangling. I've noticed that when culling my Shine Bugs, all of them died with exactly the same delay.

10 hours ago, riwenna said:

then I could see how a critter unable to move might keep getting added to the queue indefinetely and slow everything down to a halt.

Actually I go back on this theory (and here I am doing exactly what I said I wouldn't and guesstimating how the game works based on a code I never saw)... Since mass murdering a bunch of critters on a single tile (which are in no way "consecutive" - you can try this by randomly attacking 10 of them rather than the first 10 in the selection queue) causes them all to die with exactly the same delay, it would seem that order of processing cirtter commands is somehow "fixed" rather than chosing which critter/action to process at random). The same is true when printing a pack of Pacus from the pod, they all hover in the air for exactly the same amount of time, before realising they should fall down, and similarly which direction to flop to get to water (although since they are printed together those could be in many ways "consecutive" critters in memory).

3 hours ago, Deardevilz said:

And now on 4616 cycles I have about ~80 wild Voles and ~400 Pacus both in a single tile for my main Surf'n'Turf production that requires no dupe interaction. I also have ~100 (Glossy) Dreckos with shearing stations for plastics and fibers. And lastly, ~80 (Dense/Prince) Pufts for slimes and oxylites.

This seems like an approximately the same amount of critters I have at the moment (actually, it seems to match my number of movement restricted/free moving critters very closely). My map currently reads about 420 tame critters (about 380 movement restricted), plus about 130 wild ones.

And you Dupes seem to be interacting with critters as well. Drecko shearing is done less frequently than grooming, but I'm only grooming about 40 rather than ~100 critters. How are your delays with shearing, do they seem responsive to the Rancher calling them?

In your case, it seems to be a bit of a case of "Doctor, it hurts when I do this. - Than don't do that. - But I like doing that. So I'll tell others not to do it and continue to do it myself." :D But considering cycle ~5000, seems like you might have a machine that gives you a bit more leway, so good on you.

You seem to like your ranching-based economies as well (I though I was the only one doing Oxylite with Pufts, designing that to auto-regulate prices and breeders was a nightmare and then the update ruined my savefile...), I would think you could relate to people trying to run different parts of their bases on critters.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...