Sign in to follow this  
cblack

Late game dupe stutter solutions?

Recommended Posts

cblack    53
Posted (edited)

I've been in late game for a long time with only 4 dupes, and for the most part, everything was working fine.  Then I got to a point where I needed more dupes, as there's no point in having 6 rockets when you don't even have that many to pilot them.  So I took on 6 more dupes for a total of 10, but I'm in that awkward part where you can't yet put your new dupes in the rockets because they don't have the skill points.

You'd think with more dupes you would get things done faster, but no.  Even though I scaled up all necessary components (exosuit dock, food supply, etc.), dupes now get stuck in this infinite stutter loop.  They'll literally stand there next to a pneumatic door and open/close it repeatedly until I manually order them to move.  Other times they'll just stand around and think for what seems like an eternity.  Now my base acts like I have the workforce of two dupes, and there's not much I see that I can do about it.

Does anyone have any recommended fixes or workarounds?  When I eventually get them able to pilot rockets, can I just stick them in a rocket indefinitely, or do they need food/bathroom/etc. while in rockets now?  If so, maybe I'll just suffer through til I get the skill points and then put them in there forever.

Edited by cblack

Share this post


Link to post
Share on other sites
Artorias36    10

My workaround is to put the new dupes inside a room with food, beds and toilets and some hamster wheels with battery. Find a way to deplete the energy they produce so that all they do is running on the wheels. You will eventualy earn skill points but more important it may boost their agility.

The problem with new dupes is that if they use the atmo suits, they are super slow without the atmo suit skill set (which costs 3 skill points).

Share this post


Link to post
Share on other sites
Lafara    28

pathfinding trouble.

 

in my oasis asteroid case , it happen to Pip. Pips just stutter there without moving , it repeatly do/cancel a task such as foraging/plant seed.

I fix it by Save , return to title , Load.

Share this post


Link to post
Share on other sites
storm6436    61
Posted (edited)

I kinda wondered if it was pathfinding, but... I've seen this happen repeatedly in my game around cycle 800 with construction tasked folks doing a chain of tasks, like, say building or pulling down a long pipeline.  They'll hang in whatever pose they were in, not animating and then instantly jump to the next block, no animation, perform task with no animation.  rinse, wash repeat, 1 block per second until done even if they could do 3-4 blocks per second unstuck. 

 

 This only seems to be happen (or is at least most noticable) with chained jobs where it's one task after another, same task, but one tile over.  I'm around cycle 830 and don't remember having this happen to any of my dupes earlier than around... maybe cycle 4-5 hundred-ish.   And it's intermittent as well. I can run other tasks in the general vacinity and no stuttering. 

 

 Specific for the dup in the example, it's a build task that's already been supplied and build is their highest priority and the only task on that priority level. 

Edited by storm6436

Share this post


Link to post
Share on other sites
cblack    53
Posted (edited)

Alright, I've messed around a bit.  Save/restart/load does not fix the issue.  I also tried locking as many pneumatic doors open as I could, as that keeps the room boundary, but they still sit there and ponder.  I know they're slow as sin until they get suit wearing, so I was training them on hamster wheels until they at least got that far, but even my dupes who are over 2700 cycles old will sit there and ponder.  Ultimately I was able to get the base to a point where I could lock the dupes inside, and let it run AFK for a few hours to get the new dupes' skill points up.

But now that I've read Lifegrow's suggestion I think I may know what causes it.  I've had my dupes sweeping up the surface (i.e. the boundary between space and the asteroid) as well as all the stuff meteors drop, which means I built a lot of storage.  So they have a lot of potential "stuff" to pick up and a lot of potential places to put it, which is what I think may cause the ponder issue.  I'm trying to empty my existing storage but we're talking thousands of tons that all needs to get loaded on a conveyor and dropped into infinite storage.  Once each storage container is empty, I'm removing it so they don't fill it up again.

Once that's done though, I'll report back on if things are any better.

Edited by cblack

Share this post


Link to post
Share on other sites
Stoned    13
Posted (edited)

What hardware are you running?

10 dupes seems an awfully low figure for AI stutter. It will happen at some point, more dupes will lower efficiency, but 10 seems very little.

My observation in my previous monster base (95 dupes, >1,000 critters)

- Transport tubes help, pathfinding is better

- Jet suits are a killer, they slow the game down very much

- automation helps a lot

Edited by Stoned

Share this post


Link to post
Share on other sites
TLW    56
Posted (edited)

It appears as though ONI's pathfinding works roughly like this: if the pathfinding thread hasn't come up with something by the time the main game wants to do a game tick... you get dupes pondering.

I can reproduce this behavior by kicking off <num cores - 1> (singlethreaded) sat solvers in the background while running ONI. Reasonable framerates but lots of dupes pondering.

Amusingly, if I load all cores and run ONI, I get worse framerates but much less pondering - my guess is that the game running slower gives the pathfinding more time to find a solution.

It may be possible to bump the priority of the pathfinding thread; I haven't tried this myself.

 

This is terrible default behavior for a game like ONI. Most of the things you're doing are directly tied into dupe pathfinding, whereas most challenges aren't. You have a game tick where a dupe is pondering, that doesn't affect how much O2 it uses, or how much heat flows, etc... but it does affect how much that dupe can get done.

I would much prefer the game tick taking longer, personally. At least that way it's obvious that the system is overloaded.

Edited by TLW

Share this post


Link to post
Share on other sites
cblack    53

Yeah, I've finished sweeping up most of the regolith, destroyed a ton of storage containers, and swept almost all of the mess into infinite storage.  That helped some, and now I always leave at least 2 (though usually 4 to 6) of the 10 dupes in rockets.  Things are finally back to normal, and it's playable again.

Share this post


Link to post
Share on other sites
bobucles    335
5 hours ago, TLW said:

I would much prefer the game tick taking longer, personally.

A second is already 5 ticks of the game sim. Max speed is a mere 15 updates per second, which is frankly not very high. Dupes can only perform a finite amount of actions every few seconds of sim time, so the actual amount of work that goes into their decision making does not need to be very high. There is clearly a whole world of room for optimization here.

Share this post


Link to post
Share on other sites
avc15    416
Posted (edited)
On 8/21/2019 at 11:16 PM, Lifegrow said:

It's seemingly nothing to do with pathfinding, may want to check your "ponder" stat in your reports (work time). I find my late game bases fluctuate between 10-15% ponder time, with spikes upto 20% if I do a lot of compound jobs (for example a huge insulated pipe - delivering tons of materials to numerous sections of piping, or a long heavy watt wire, etc).

If you're correct and the job search is what's bottlenecking late game (I suspect you might be on to something), there would be something ironic about that.

If you know much about this kind of search algorithm - the existence of a yellow alert "do this first" list substantially inflates search complexity.

In other words this one tiny feature that people were begging for, for ages, could be a major contributor to the current slow state of things. And more ironic, you don't actually need yellow alert, it's for when you've tangled your other priorities beyond reason.

Edited by avc15

Share this post


Link to post
Share on other sites
SamuraiJones    87

This might be a silly question, but what speed are you running at? i find decreasing speed sometimes gets things done faster since they stand around less.

Other than that, idk. Do some of the lag reduction tricks, keep fewer jobs in the queue... that's all I got. I'd love to see more optimization or more cores used to combat this issue.

Share this post


Link to post
Share on other sites
cblack    53
11 hours ago, SamuraiJones said:

This might be a silly question, but what speed are you running at? i find decreasing speed sometimes gets things done faster since they stand around less.

I always play at the fastest speed, because some things will only go so fast.  Rockets in particular take forever to get to the further planets, so playing on normal is :(.

To test it though, I did try playing on normal and things seemed a little better.  FPS went up slightly ponder time went down, but it was hardly a scientific test.  Maybe some day I'll mess around in creative and figure it out more precisely.

Share this post


Link to post
Share on other sites
TLW    56
1 hour ago, bobucles said:

A second is already 5 ticks of the game sim.

Let me rephrase.

I think it would be preferable for the game to prefer slowdown of the main game sim over dupes pondering.

Still keep 5 ticks/second nominal.

54 minutes ago, SamuraiJones said:

i find decreasing speed sometimes gets things done faster since they stand around less.

Again, makes perfect sense.

Decreased speed -> less load on the pathfinding thread.

14 hours ago, avc15 said:

the existence of a yellow alert "do this first" list substantially inflates search complexity.

No more so than the rest of the existing priority system.

Share this post


Link to post
Share on other sites
avc15    416
Posted (edited)
8 minutes ago, TLW said:

 

No more so than the rest of the existing priority system.

It's an extra lookup that almost always returns nothing, in a process that should normally take 5 or 6 lookups on average but runs many times per game tic.

Yeah, it's going to be a significant increase in search complexity, and 99% of the time it's not even used.

Edited by avc15

Share this post


Link to post
Share on other sites
TLW    56
Just now, avc15 said:

extra lookup ... 5 or 6 lookups on average

... significant increase in search complexity

Not really, even if they are doing it in the naive fashion.

You shouldn't do "always check from top priority down". You should do "look from the top priority that actually has something to do".

Share this post


Link to post
Share on other sites
Cilya    44

I have the perfect solution for late game stutter. This is what i've been using for a very long time now. The solution is debug enabled and ctrl+f5. I see no stutter at all, and the number of tasks completed every cycle is roughly multiplied by 3. Well, okay, cycles now take three hours... I let it run during the night. Works fine.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this