[1.0] Hauling issue (has happened multiple times to me)

Started by XghosT7, July 05, 2018, 05:53:07 PM

Previous topic - Next topic

XghosT7

Hello!, i have encountered this issue multiple times and in the specific scenario it makes things even harder, in the video i posted i play naked scenario randy hard so i cannot afford any wasted time, this components were on the bottom right of map and my base was top left (fully), i'm really glad i managed to haul both stacks somehow because otherwise my pawn would haul 42 and then come back to haul 8 more and that was gonna be wasted time as the distance was huge, have in mind i'm playing 1.0 so can i somehow fix this by a mod or maybe Tynan can implement a "Haul this also" while you are carrying X amount of same resource? for example my pawn had 42 components on him and he was going back to haul but then u can right click the 8 and there will be an option "Haul this also" and pawn goes there and takes the 8 making it 50 and then hauls back.

The Video: https://streamable.com/5gohu

Canute

Mosttimes the pawn try to fill up existing stack. Thats maybe why the pawn only haul the 42 and come back for the 8.
Yep it would be more effective when he pickup both stack, since they are less then a full stack (i assume he isn't damage and still can carry 75). And then fill up the stack at the stockpile and drop the remain next to it.

But this is more a topic for Bug and/or suggestion.

mndfreeze

I believe there is a small radius in which a pawn looks for things when carrying them back or not, because if you do exactly what you did there and get the 2 stacks close enough together the pawn will grab them both, but if they are too far apart they try to do it in separate stacks.  IMO, it would make sense to add some sort of clickable option to tell a pawn "NO. YOU DO BOOOTTHHH EVEN IF ITS A FEW EXTRA TILES AWAY GOOD SIR!"


jerronnimo

Quote from: mndfreeze on July 06, 2018, 05:13:21 AM
I believe there is a small radius in which a pawn looks for things when carrying them back or not, because if you do exactly what you did there and get the 2 stacks close enough together the pawn will grab them both, but if they are too far apart they try to do it in separate stacks.  IMO, it would make sense to add some sort of clickable option to tell a pawn "NO. YOU DO BOOOTTHHH EVEN IF ITS A FEW EXTRA TILES AWAY GOOD SIR!"


it's a little finnicky, but i have found a good way to do that.  you order the pawn to pick up the further one, and when he walks by the closer one, you order him to pick that one up.

now, he'll drop the first one near the second one... here comes the finnicky part.

Before he picks up the second one, you right click and order him to haul one of them, he will then pick both of them up!

vzoxz0

With the new queue system, it might be feasible for there to be a calculation that re-determines whether you make a new stack of (new amount) or jam it into an existing stack.

Snafu_RW

Quote from: mndfreeze on July 06, 2018, 05:13:21 AM
I believe there is a small radius in which a pawn looks for things when carrying them back or not, because if you do exactly what you did there and get the 2 stacks close enough together the pawn will grab them both,
in vanilla 1.0 this radius has been increased (or a similar mechanic effect has been introduced)
Don't forget that objects have mass as well as volume when explicitly hauling, hence pawns (having a CC of 35Kg when unburdened) will only haul 35 units of steel if explicitly told to do so: half the stack's max volume. Strangely this doesn't always apply to 'natural' pawn hauling behaviour (hence single pawns hauling muffalo/elephant corpses around after hunting)
Dom 8-)

mndfreeze

Yeah. Perhaps it needs to be increased a little more though.  OP's video shows how close he got them and was still struggling to get the pawn to register both stacks and join them and carry them both home.   Hauling logic has always been a bit weird in these sorts of games.  Dwarf Fortress has some silliness too when it comes to stacks and hauling.  However in Rimworld at least we can directly control/interact with our pawns somewhat, so adding in some sort of right click menu or interaction functionality would definitely be a vast improvement on the current system of haul close, tell pawn to grab other one so he drops current, and flip back and forth until both are close enough for the games internal logic to register and the pawn grabs and stacks them.

We can combine stacks when its inside a stock pile, does anyone know if we can right click and combine stack when it's not?  That might also work as a simple low cost solution.

I'm a super big fan of making more intelligent logic in the game to minimize the amount of micromanagement on menial tasks.  The more intelligent Tynan can make hauling, cleaning, etc the more I can use those systems and tools given to me for a fun and rewarding experience dealing with the aspects of the game designed for it like raids or building. Nobody wants to have to manually force a pawn to do a single haul job, or build a roof tile by tile, or clean the kitchen one square at a time (or have to shift right click and queue up each individual square).  These are all things that ideally the internal logic should do efficiently so we manage our task list, not each pawns tasks.

KalterEntzug

I'd like to see it go the way of Terraria, where the main developers are not actively working on it anymore but some other ambitious people still work on balance patches and updates.

XghosT7

Hopefully tynan sees this and thinks of a decent solution, if not then i bet if someone made a mod for this issue it would be loved, as i said it affects the gameplay in a bad way, i was playing naked scenario there and i really cannot afford time wise to travel from one side of the map to the other just because my pawn cannot stack the 42 with 8 and then haul it back.... however i did get lucky in the video and pawn managed to stack them together, however many times i have failed and it was not possible.

fritzgryphon

#9
In the Development Mode tweakvalues there are a bunch of settings for opportunistic jobs and opportunistic hauling.  I don't know what they do individually, but increasing them all might help.

Maybe the difficulty is that opportunistic hauling uses a radius around the target stack at all.  Really, the cost of opportunistic hauling should be relative to the distance of the stack to the stockpile.  I propose this procedure would be almost optimal, correct me if I'm wrong.

A: My job is to haul.  I target a thing to haul (say, a steel stack).  I pick the nearest stack.  Add it to my pickup list. 

B: Is there another opportunistic steel stack that is nearer to the targeted stack than the distance of the opportunistic stack to the stockpile?  Am I able to carry all of the steel in the two stacks?  If so, I should pick up the opportunistic stack while I am here.  Even the opportunistic stack is pretty far from my target stack, it would be a greater distance to make two trips.  Add the opportunistic stack to the pickup list. 

C: If I can't pick up the entire opportunistic stack, is it nearer to a line segment formed between the target stack and the stockpile than 1/2 of the distance of the target stack to the stockpile?  If so, the opportunistic stack is either close enough to justify visiting, or is roughly on my way home to the stockpile, and I should pick up as much as I can from it. 

D: The opportunistic stack now becomes the targeted one.  Repeat A and B until either the pawn runs out of appropriate steel stacks to add to the pickup list, or the pickup list reaches the pawns carrying capacity.

E: Mark all the stacks on the pickup list as reserved and go pick them up in a simplified travelling salesman fashion, then deliver them to the stockpile.  Maybe put a limit on the total route length so a pawn doesn't starve while collecting 40 small stacks.

It sounds expensive as heck, but it only needs to be done once at the beginning of each haul job, or again if the haul is interrupted (stack on haul list is destroyed, etc).  Even if it took 3 milliseconds it would be fine.

edit:  Opportunistic stacks would need to be considered in order from nearest to furthest from the target stack.  So, pick target stack, get distance from it to stockpile, get distance to every other opportunistic stack for comparison, sort opportunistic stacks by distance, pick nearest eligible opportunistic stack to become added to haul list and become new target stack, repeat.  If there were 50 steel stacks on the map, there'd be less than 8000 distance or line-segment distance calculations and 49 49-item sorts, which is reasonable.  If too many stacks, clamp the number of allowed checks, or clamp the allowed radius around the original stack to consider.  Even if the stack count for an item was insane, most of the haul job computes would complete in less than a dozen opportunity checks anyway, and most in just 2 or 3 checks, because the pawn would be fully laden by that point.   Even if 50 pawns were doing nothing but hauling, there is still almost no chance of two or more haul job computes happening on the same frame and getting a noticeable stutter.





carewolf

Normally when I see suboptimal hauling it is because I have a higher priority stockpile they are trying to fill first and which doesn't have room for a full load.

For instance if you have feeding stock piles with high priority, colonist will constantly be trying to refill small parts of it when the animals feed. When you are bringing home a harvest that can completely wreck the hauling, though usually you can move the animals elsewhere for grazing during that period or lower the priority when they have other ways of feeding themselves.