Jump to content

Will dupes ever just deliver to nearest container (all other factors being equal)


Recommended Posts

Sort of sick of dupes traveling halfway across the map to drop off a few chunks of granite in a compactor, then come back... get more... and then off they go again...

 

There's three newly built ones right by ya buddy!

its based on where they are when they start the task so the compactor they are near when they drop the granite off is the one that gets the next delivery as well. A cheap way of limiting access across the map is to gate it behind multiple exosuit transfers, I don't think delivery tasks work past 1 or 2 exosuit checkpoints

uh... do you realize how ridiculous your solution sounds?

 

I mean I know the game is ripe with cute idiosyncrasies that I am all for, but...

 

So... that's an explanation you've given which is widely known... but perhaps when deciding the task, then deciding the object to pick up, once it's picked up look for a NEARBY container ffs...?

2 hours ago, dearmad said:

I mean I know the game is ripe with cute idiosyncrasies that I am all for, but...

This is not one. Planning tasks is very expensive CPU-wise. Hence as long as the plan can still be executed, the game does not calculate a new one.

It wouldn't task the CPU any more than it currently does, if it picks a storage container near the target instead of the duplicant. It's literally no different except changing the search location.

43 minutes ago, PhailRaptor said:

It's true, this entire conundrum could be solved by simply waiting to queue up the Storage task until after the Dupe has picked up the item it is currently Sweeping.

Not until. As you would probably get situations where a dupe go take a debris and then no compactors would be available.

You have to search for the container and make a "reservation" right at the start of the task to avoid this problem. Xuhybrid implied that I think.

I think it wouldn`t be hard to make the dupe plan the delivery to the compactor nearest to the picked up debris. This might also fix some of the scenarios where dupes deliver ingredients to cooking stations from afar ignoring the ones right next to them or my favourite scenario where dupes craft microchips at 2 power stations far from each other and then carry them from one to the other and vice-versa.

2 hours ago, Christophlette said:

Not until. As you would probably get situations where a dupe go take a debris and then no compactors would be available.

You have to search for the container and make a "reservation" right at the start of the task to avoid this problem. Xuhybrid implied that I think.

Yep.

Quite easily fixed by changing the priorities on the storage compactors.

Thats why there are 9 different priority levels. I've never even had to use all 9 priority levels yet.

Just change everything in your base to priority 1 when you start the game and start adding to it as problems arise. I usually have my main storage area at a low priority and the dupes only deliver stuff there when theres nothing left to do.

9 hours ago, ChickenMadness said:

Quite easily fixed by changing the priorities on the storage compactors.

Thats why there are 9 different priority levels. I've never even had to use all 9 priority levels yet.

Just change everything in your base to priority 1 when you start the game and start adding to it as problems arise. I usually have my main storage area at a low priority and the dupes only deliver stuff there when theres nothing left to do.

And then they start emptying nearby compactors to fill up the higher priority one. :?


Really, people it takes no more calculations to: decide task- find debris- FIND NEAREST compactor to that debris and reserve, then to: task - debris- reserve nearest compactor to where you are currently standing.

 

Unless Klei is not admitting they have no way of knowing where the debris is located for that calculation, and only calculate Dupe positions in that sort of algy.

2 hours ago, dearmad said:

And then they start emptying nearby compactors to fill up the higher priority one. :?


Really, people it takes no more calculations to: decide task- find debris- FIND NEAREST compactor to that debris and reserve, then to: task - debris- reserve nearest compactor to where you are currently standing.

 

Unless Klei is not admitting they have no way of knowing where the debris is located for that calculation, and only calculate Dupe positions in that sort of algy.

The argument is completely invalid.

 

If a Dupe looks for debris then a location to put it, it would search all debris and find no location to put it, that would be extra work for the program.

 

Since the programming knows all resources, it's much easier to find a job destination that most likely has a resource to supply.

Folks, there is a lot of things that need to be decided when implementing something like this. Klei made a choice to not bog down the game by replannings (which can snowball) and having less optimized plans in a changing situation as a result. This is route-planning and Queuing-Theory and it is really hard to get even a sub-optimal solution right, e.g. free of deadlocks ("dancing" dupes, e.g.). Klei already does try some on-the-fly optimization from what I see, but keep in mind there is only so much CPU per time unit and only the spare CPU can be used if the game is to run smoothly. What is worse is that a lot of things cannot be done in parallel here. My take would be that smooth running is more important than optimal paths and destinations. Sure, sometimes this forces the player to "optimize" manually (e.g. lock dupes in a zone with the materials to do something). But overall, my impression is that the planning system is pretty good.

I am not saying to stop complaining, I am saying that probably not much can be done.

Seems logical to me that the decision about what storage compactor to put a chunk of granite in could be made after the duplicant picks up the chunk of granite as opposed to when it gets assigned the task. I do use the priorities on the storage compactors to control where a duplicant puts stuff that is swept up, but sometimes I forget that I cranked up the priorities on certain storage compactors and then future sweep operations end up putting stuff in a far away storage compactors.

On 1/1/2019 at 5:11 AM, Kabrute said:

its based on where they are when they start the task so the compactor they are near when they drop the granite off is the one that gets the next delivery as well. A cheap way of limiting access across the map is to gate it behind multiple exosuit transfers, I don't think delivery tasks work past 1 or 2 exosuit checkpoints

It's worse actually: the dupes will actually try to do the tasks with 2 exosuit checkpoints between them, fetch a thing, either realize there is no exosuit available at the first checkpoint and immediately drop what they have, or walk to the first checkpoint, dock at the other point, and realize there is no exosuit available at the second checkpoint, and drop their content there.

Last night this got to me to frustrating heights as I wanted a glossy drecklet, bred inside my base, moved to my specialized ranch, outside the base with an exosuit checkpoint with a single exosuit dock inbetween as dupes can't breath hydrogen. That went like this: drecklet gets wrangled, dupe comes over to bag it, bags it and then immediately drops the drecklet back onto the ground, unwrangled. Even when the docking station had an exosuit! I had to wrangle the drecklet for 5 times until finally a dupe got to bring it to the ranch, only for dropping it halfway again because dear Otto was at the end of his shift. I almost alt-q'ed him into space.

21 hours ago, dearmad said:

And then they start emptying nearby compactors to fill up the higher priority one. :?

There is also 'sweep only' on top of that which adds another layer of control.

If you want the granite in a specific area to be sent to a storage compactor close by then just change it to sweep only and drag a sweep box over everything.

9 hours ago, ToiDiaeRaRIsuOy said:

Last night this got to me to frustrating heights as I wanted a glossy drecklet, bred inside my base, moved to my specialized ranch, outside the base with an exosuit checkpoint with a single exosuit dock inbetween as dupes can't breath hydrogen. That went like this: drecklet gets wrangled, dupe comes over to bag it, bags it and then immediately drops the drecklet back onto the ground, unwrangled. Even when the docking station had an exosuit! I had to wrangle the drecklet for 5 times until finally a dupe got to bring it to the ranch, only for dropping it halfway again because dear Otto was at the end of his shift. I almost alt-q'ed him into space.

lol I've had a similar thing happen in my game where I wanted to take a wild puft that I wrangled across the map to a infected oxygen vent.

I had to build a bunch of small rooms with critter drop offs along the way. Because the dupes didn't want to carry it straight to the end destination in one go.

use sweep only on all compactors - this will prevent dupes to take debris from compactors and move it to ones with higher priority.

when you want dups to move debris to some compactor - raise its priority (and btw this priority might flow - i mean when you move to different area - change priority of recently used compactors to standard - whatever you have - and raise priority for new compactors

If you have time you can set compactors for different materials next to each other - not drop all debris to one compactor. after that when you destroy compactor you will have all debris sorted tile by tile - easier to pickup lol

ah and most important - don't give dupes too much to do - they will go crazy and will be running across the map to fullfil random tasks and everything will just be much much longer.

i use above system and have very little problem with dups - if i have one i build door with debris and compactor on one side, and rest of the world on other , send one dupe there, limit the door access and give him work (just don't forget to release him for night time)

This is stupid, it would require way less CPU time to find path to nearest container it can deliver to. Pathfinder usually works like that. Unless it generates path to pickup location and uses cached path to return back and search storage from there.

Can we get multithreaded path calculations? I mean it's not like pathfinding can ruin much if it runs concurrently right?

11 minutes ago, cpy said:

This is stupid, it would require way less CPU time to find path to nearest container it can deliver to. Pathfinder usually works like that. Unless it generates path to pickup location and uses cached path to return back and search storage from there.

Can we get multithreaded path calculations? I mean it's not like pathfinding can ruin much if it runs concurrently right?

Stop with this silliness.

 

You can't pickup and item and THEN decide where it needs to go.

 

The game is based on HAVING a destination and finding the item to deliver, you can't make it work the other way around.

3 minutes ago, Miravlix said:

Stop with this silliness.

 

You can't pickup and item and THEN decide where it needs to go.

 

The game is based on HAVING a destination and finding the item to deliver, you can't make it work the other way around.

Yes you can! 1.st solve path to destination if you can reach it then allow task, if task is allowed compute path to destination, and if all results are ok then do that task. Simple!

2 minutes ago, cpy said:

Yes you can! 1.st solve path to destination if you can reach it then allow task, if task is allowed compute path to destination, and if all results are ok then do that task. Simple!

 

So you want dupes to pick up random items and drop them again in an endless loop because the item doesn't have destination?

 

The GAME knows what items is in the game, look at the list on the right of the screen.

 

So it can easily search containers and machines for jobs, then go find an item.

 

There is no way it can be as cost effective to pick up items and then try to find a destination.

2 minutes ago, Miravlix said:

 

So you want dupes to pick up random items and drop them again in an endless loop because the item doesn't have destination?

I bet you're a player who doesn't use logic gates much. It's an AND task. You should play with logic gates more, it's really good way of seeing how basic programming layer works.

Just now, cpy said:

I bet you're a player who doesn't use logic gates much. It's a AND task. You should play with logic gates more, it's really good way of seeing how basic programming layer works.

I've been a programmer for almost 40 years, tough myself C when I was 14.

1 minute ago, Miravlix said:

I've been a programmer for almost 40 years, tough myself C when I was 14.

Are you sure about that? Maybe you just don't do much game code. It's really nasty thing to deal with. I read factorio blog and they explain a lot of things and often get to technical aspect of game programming.

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...