spooner139 Posted February 12, 2019 Share Posted February 12, 2019 See my screenshot below, the duplicant which I selected is carrying objects to storage bin, I checked his path, it's long far away from here, but there are many storage bins on the right side, why not go there? Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/ Share on other sites More sharing options...
MorsDux Posted February 12, 2019 Share Posted February 12, 2019 Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154375 Share on other sites More sharing options...
Yunru Posted February 12, 2019 Share Posted February 12, 2019 Because they choose a bin, then find an object, rather than the other way around. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154379 Share on other sites More sharing options...
SakuraKoi Posted February 12, 2019 Share Posted February 12, 2019 27 minutes ago, Yunru said: Because they choose a bin, then find an object, rather than the other way around. Indeed, they choose the closest valid (highest priority, free space and available object) compactor and then choose the closest object to deliver to that very compactor. If I am not mistaken, that logic even applies to sweep tasks so that would not be a work around. Of course I seriously hope they address that very soon if it is not with this very QoL upgrade which specifically targets errands. (At least I did not see it mentioned in the preview notes and it sure is worth mentioning, it wastes a lot of time after all) Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154390 Share on other sites More sharing options...
Sasza22 Posted February 12, 2019 Share Posted February 12, 2019 8 minutes ago, SakuraKoi said: Indeed, they choose the closest valid (highest priority, free space and available object) compactor and then choose the closest object to deliver to that very compactor. It`s more like the compactor is requesting a resource (something it accepts as storage and is marked for sweeping). The dupe searching for a task finds a compactor nearby and looks for the resource it`s requesting. It uses the same system all other buildings use so changing it is quite of a task. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154395 Share on other sites More sharing options...
Yunru Posted February 12, 2019 Share Posted February 12, 2019 6 minutes ago, Sasza22 said: It`s more like the compactor is requesting a resource (something it accepts as storage and is marked for sweeping). The dupe searching for a task finds a compactor nearby and looks for the resource it`s requesting. It uses the same system all other buildings use so changing it is quite of a task. I'm not quite sure it'd be that much of a task. Couldn't they just reuse the proximity system, just based on which compactor has a valid resource closest? So if you've a priority 5 compactor 2 tiles away, and another 20 tiles away, the dupe gets assigned the task for the one that's closest to the item (or internally, the one with the closest item). Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154398 Share on other sites More sharing options...
MorsDux Posted February 12, 2019 Share Posted February 12, 2019 23 minutes ago, Yunru said: I'm not quite sure it'd be that much of a task. Couldn't they just reuse the proximity system, just based on which compactor has a valid resource closest? So if you've a priority 5 compactor 2 tiles away, and another 20 tiles away, the dupe gets assigned the task for the one that's closest to the item (or internally, the one with the closest item). I feel you, it shouldnt be a big problem, but it is, and other games of the genre have this kind of problem too (dwarf fortress for example) Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154404 Share on other sites More sharing options...
Sasza22 Posted February 12, 2019 Share Posted February 12, 2019 8 hours ago, Yunru said: I'm not quite sure it'd be that much of a task. Couldn't they just reuse the proximity system, just based on which compactor has a valid resource closest? So if you've a priority 5 compactor 2 tiles away, and another 20 tiles away, the dupe gets assigned the task for the one that's closest to the item (or internally, the one with the closest item). The issue is that it would require to track distance from each compactor to each item all the time to determine which compactor has the time closer. That`s a lot of extra calculations the game doesn`t have to do now. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154560 Share on other sites More sharing options...
biopon Posted February 13, 2019 Share Posted February 13, 2019 1 hour ago, Sasza22 said: The issue is that it would require to track distance from each compactor to each item all the time to determine which compactor has the time closer. That`s a lot of extra calculations the game doesn`t have to do now. They already do the equivalent though. And the result is the nonsese we live with. This is what happens now: - Dupe evaluates a task. In this case this happens to be a nearby compactor requesting items to be stored inside. - Dupe finds a matching object closest to his current location; not that of the compactor's. A thorough evaluation of distances is done both in the above step and here. - The distance between dupe and task, and dupe and item, as well as the priority of the task are factored in when deciding whether to accept the task or do something else instead. - Dupe goes and picks up item. Since he's moved, there might be closer compactors available to store that particular item, but he ignores those and goes back to the original compactor to complete the task. It's all been decided ahead of time. If that compactor has room for more of the same item, and there's more available where he just came from, he'll repeat this silly long walk over and over, instead of using a compactor close to the item in question. This is all in context of storage, but everything works like this. Every building that needs to be supplied, every construction task, all are first picked based on proximity to the dupe, and the dupe will deliver from whatever's closest to him when he takes the job, even though there might be suitable materials close to the target already., The second step, search for materials, is centered around the dupe. All they'd need to change for all of this to make a lot more sense is to center that search on the target instead. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154586 Share on other sites More sharing options...
Sasza22 Posted February 13, 2019 Share Posted February 13, 2019 1 minute ago, biopon said: - The distance between dupe and task, and dupe and item, as well as the priority of the task are factored in when deciding whether to accept the task or do something else instead. That`s not how it works. Or how i`m pretty sure it works. When selecting a job the nearest compactor with the proper priority is selected that`s true. Then the nearest item is selected. That`s 2 operations total. If you want the dupe to select the compactor with the closest item that`s an extra operation for all the compactors on the map. That can add up quickly. Now if you want the compactor with the closer item to be higher priority for all dupes all the time that`s an extra operation every game tick for every compactor in the game. You can see where that is going right? Maybe we can get away with the extra calculations on task assignment but even that might lag with 100+ compactors requesting extra pathing calculations. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154588 Share on other sites More sharing options...
biopon Posted February 13, 2019 Share Posted February 13, 2019 3 minutes ago, Sasza22 said: Then the nearest item is selected. That`s 2 operations total. The item nearest to the dupe is selected. The item nearest to the compactor should be selected. Same number of operations. Right now both the item-dupe distance and the compactor-dupe distance are factors when prioritizing jobs. (And we keep talking about compactors but it's really every suppy and store job, ever.) Does the game evaluate every compactor and every suitable item for every dupe, whenever they are ready to pick tasks? Maybe. It's one possible reason it runs like dogpoop. All I'm suggesting is that the distance the game looks at is compactor-item instead of dupe-item. It's the same number of operations. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154597 Share on other sites More sharing options...
impyre Posted February 13, 2019 Share Posted February 13, 2019 I doubt it would be a huge change honestly. Leave the current building fetch errand as it is: buildings need materials, higher priority buildings go first. closest matching materials are fetched in order. Then change the following: Compactors no longer create building fetch errands. (Easy fix, even if you have to create a new subclass for storage (which there probably already is anyway... or at least should be)) Allow us to designate "cleaning zones" (or alternatively just default to using player built rooms as clean zones) Zone painting is not that dissimilar from painting any construction job, the code for selecting areas already exists. The biggest hurdle here is creating an overlay to display them. I imagine one could use the room overlay as a template with relatively little work. Any object in the zone left on the floor is automatically designated for cleanup (by priority). (Pretty self-explanatory, in fact you could avoid having to run this check on every item in every frame by simply checking it any time it is dropped or moved (in case it changes zones) and ignoring it otherwise) Allow us to set some objects to be left (such as eggs) (this is also easier if you allow player-defined zones, since you could specify what is allowed to be cleaned in a given area) Managing the zones could be tricky. You could reuse some of the compactor and/or sweeper code, but a lot of it would have to be built without a template, including a new interface. All objects designated for cleanup are kept on a roster by priority, and taken care of accordingly as dupes have time to perform the hauling. (Keeping a list is probably the easiest thing for a computer to do, there are potential memory pitfalls here for players with very large cleaning areas with lots of items in them. But the list only really needs to contain a reference to the item. If you want its priority to be able to be dynamically changed, then keeping that information as well could be useful.) These rules can also be applied to autosweepers, since they would function more or less the same, except some things could be forbidden and you could give priority to others. Not saying this is the way it should be, but it's definitely a way it *could* be. I don't know the inner workings of the source code, so I can't be sure how difficult it would be to implement... but I can't imagine it being too difficult if the code has been well-organized and well-maintained. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154631 Share on other sites More sharing options...
Yunru Posted February 13, 2019 Share Posted February 13, 2019 6 hours ago, Sasza22 said: That`s not how it works. Or how i`m pretty sure it works. When selecting a job the nearest compactor with the proper priority is selected that`s true. Then the nearest item is selected. That`s 2 operations total. If you want the dupe to select the compactor with the closest item that`s an extra operation for all the compactors on the map. That can add up quickly. Now if you want the compactor with the closer item to be higher priority for all dupes all the time that`s an extra operation every game tick for every compactor in the game. You can see where that is going right? Maybe we can get away with the extra calculations on task assignment but even that might lag with 100+ compactors requesting extra pathing calculations. I mean, ideally it'd only be on task assignment (as I'm presuming it currently is), when there's multiple compactors with the same priority and that share valid items. Link to comment https://forums.kleientertainment.com/forums/topic/102794-why-duplicants-carry-objects-to-further-storage-bins/#findComment-1154662 Share on other sites More sharing options...
Recommended Posts
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.