Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Pile Behavior Suggestion  (Read 1431 times)

Granite26

  • Bay Watcher
    • View Profile
Pile Behavior Suggestion
« on: June 10, 2008, 05:20:00 pm »

I've actually got a lot of suggestions, Hopefully I will cut them up sufficiently.

In my experience, piles are separated into three types
 Input Piles: Are designed to take the output from buildings and store it until something can be done with it.  Basically you want an Input pile by every workshop so that your producer dwarf doesn't have to walk far to put it down, and the workshop doesn't become cluttered.  This pile needs to be emptied regularly, because you always want free space, but you don't need anything in it.

 Storage Piles:  Are designed for long term storage of items like excess stone and furniture.  You don't care if there is anything in it or not.

 Output Piles:  Are designed for distribution.  They are the sources of material for workshops as well as the food bin in the corner of every dining hall.  You actively want the Output pile to be filled with items in order to minimize travel times.

-----------------------------------------
That's the three kinds of piles I've built, seen on the forums, or seen on the wiki.  My suggestion?  Implement these pile types in code.  Input piles would be used by dwarves carrying items they don't want. (items they don't have hauling turned on for, for instance)  Output piles would actively fill from storage or Input piles without you having to manually set up a switchover.  Input piles being filled would naturally lower their priority the closer to filled they are, aiding your hauler dwarves in prioritization.  What would happen is an emergent AI system for managing your piles, based purely on telling the system what you want to do.

Here are a few behaviors that would be possible with just that switch:
Garbagemen and trashcans.  Turn off refuse hauling for all but a few, and put small one unit refuse Input piles around.  People will throw out the garbage, and the garbagedwarves will pick it up and haul it where it needs to be.

Waitors.  The cook makes food and places it in his Input pile.  The waitors will haul the food around to the various dining rooms, ensuring that each dining room always has a small stock of food and drink.

Furniture Warehouse.  Masons build beds and place them in the input pile right outside the door.  Haulers take them to the large warehouse.  Months later, you decide to build an apartment expansion.  In the hall outside, you place an output pile for beds.  When the expansion is complete, the furniture is already queued up outside waiting to be moved in.

I think the beauty of this particular system is that it doesn't involve tedious tweaking of routes, or designating this pile be moved to that pile.  It handles both the output of a workshop and the input in one simple step.

Thoughts?

Neonivek

  • Bay Watcher
    • View Profile
Re: Pile Behavior Suggestion
« Reply #1 on: June 11, 2008, 06:07:00 am »

Alright last one... I said Id comment... and I kept my promise


Alright lets see...

Your piles can be done with Custom Stockpiles... Overall I like the current piles especially since many resources require MUCH more room then others. For example an Output Pile would be OVERWHELMINGLY full of finished meals.

Waitor: You made them WAY too much like a Hauler. If they served people in dining rooms (in which most dining rooms should have a food stockpile in them) that would be perfect.

Furnature Warehouse: Don't we already have a... Furnature Stockpile? I don't understand what the point of this is.

"I think the beauty of this particular system is that it doesn't involve tedious tweaking of routes, or designating this pile be moved to that pile. It handles both the output of a workshop and the input in one simple step"
-But you added an even LARGER problem which is over-dominance of specific resources. You would have to have 100 by 100 piles and larger to get the use you wanted out of it.

Logged

Idles

  • Bay Watcher
    • View Profile
Re: Pile Behavior Suggestion
« Reply #2 on: June 11, 2008, 07:17:00 am »

This seems like it might fit within the current goal of burrows, in that burrows allow for increased micromanagement of your dwarves.
Logged

Granite26

  • Bay Watcher
    • View Profile
Re: Pile Behavior Suggestion
« Reply #3 on: June 11, 2008, 09:08:00 am »

quote:
Originally posted by Neonivek:
<STRONG>Alright last one... I said Id comment... and I kept my promise

Waitor: You made them WAY too much like a Hauler. If they served people in dining rooms (in which most dining rooms should have a food stockpile in them) that would be perfect.

Furnature Warehouse: Don't we already have a... Furnature Stockpile? I don't understand what the point of this is.
</STRONG>


Errm, maybe I didn't explain this well..  Waitors would be people with the food hauling task turned on.  It's an emergant behaviour, not a new skill or job.  Haulers with food hauling turned on would naturally become waitors this way.

In the same way, furniture warehouse wouldn't be a new pile, it would just be a way things would work.  The warehouse I mentioned would be a simple stockpile.  

Those are just quick examples of the kinds of behavior that would emerge as natural side effects of the change.

The only code change would be to make some piles want to be filled or not want to be filled.  With the custom stockpiles, my understanding is that you have to set them to transfer between specific areas, which is a lot of logistics work.  What I'm suggesting would allow you to just say 'this is an input pile, things can be put here, but haulers will still come and take them away', and the current job creation system would handle where it actually went.

Everytime I create a dining room (think burrows here) I don't want to have to tie it back to the kitchen, especially if I've got three kitchens, two stills, a food warehouse and 10 other dining rooms to scroll through.  That's assuming the pile transfer is smart enough to cull to just food piles.

Hopefully that makes a bit more sense.  I really (passionately!?) believe that this is a small change that will make playing big fortresses a lot easier.

Normandy

  • Bay Watcher
    • View Profile
Re: Pile Behavior Suggestion
« Reply #4 on: June 11, 2008, 09:46:00 am »

By jove, that sounds like a good idea.

Another interesting idea would be to have multiple input piles, each carrying a specific material, which would go to a single-tile large output pile by a workshop (it would work like that, no?), and by selecting which input pile the output pile would take from, you could both pre-haul materials to the workshop and get a fairly high amount of crafting control.

Logged

Granite26

  • Bay Watcher
    • View Profile
Re: Pile Behavior Suggestion
« Reply #5 on: June 12, 2008, 08:12:00 am »

quote:
Originally posted by Normandy:
<STRONG>By jove, that sounds like a good idea.

Another interesting idea would be to have multiple input piles, each carrying a specific material, which would go to a single-tile large output pile by a workshop (it would work like that, no?), and by selecting which input pile the output pile would take from, you could both pre-haul materials to the workshop and get a fairly high amount of crafting control.</STRONG>


Setting it up manually is already implemented.  You can set up the system to haul from one pile to another.  The improvement is abstracting that so that you don't have to say FROM this pile TO this other pile.

You have an excellant suggestion for fixing the specific materials there:  Set up a pile 20ish squares from the workshop that accepts ALL materials, and a pile nearby that accepts NO materials.  Then when you want to use a specific material, turn on the 'right' material for the nearby pile and set up a manual transfer to the close pile, and it all of a sudden, all the jobs will start using the desired materials.  (With little extra hauling time, assuming your dwarves get to it fast)

Qmarx

  • Bay Watcher
  • "?"
    • View Profile
Re: Pile Behavior Suggestion
« Reply #6 on: June 12, 2008, 01:52:00 pm »

Seems like a good idea.  Probably would be a good idea to have an attach to workshop option where a pile gives or takes items to/from a workshop.
Logged

RAM

  • Bay Watcher
    • View Profile
Re: Pile Behavior Suggestion
« Reply #7 on: December 31, 2009, 04:28:45 am »

I like this idea, You could do it with a single 'desired items' setting, it could have a null setting for "Warehouse" stockpiles and the others would just be a matter of setting it to the minimum or maximum value for the size of the stockpile. When a dwarf with the appropriate tasks was free it could check for stockpile with less than their desired items and fill them, and a hauling task could be generated every time something was put on a stockpile that had too many items.

P.S.
 I offer my condolences to anyone bothered by this, but I unlive for necromancy...
Logged
Vote (1) for the Urist scale!
I shall be eternally happy. I shall be able to construct elf hunting giant mecha. Which can pour magma.
Urist has been forced to use a friend as fertilizer lately.
Read the First Post!

Astramancer

  • Bay Watcher
    • View Profile
Re: Pile Behavior Suggestion
« Reply #8 on: December 31, 2009, 06:23:21 am »

The suggestions forum is all about thread necro - people will yell at you if you don't  :-\

In any case, I would would rather see stockpiles being allowed to have more than one 'take from' attached to it, so you can have, for example, a small steel stockpile drawing from your main bar stockpile, as well as a small gold and small copper stockpile also pulling from your main bar stockpile.

Also, allowing workshops to have 'take from' options attached, so you can tell a workshop to pull from this specific stockpile instead of "whatever's closest as the mole digs" and have stockpiles (or other workshops!) pull from specific workshops - so you can more easily manage those crafting chains (and get those bauxite mechanisms you've been trying for).  The workshop should simply not generate the job if the linked stockpile doesn't have the resources it needs to complete the job (so it wouldn't be canceled, and it would go active again once the stockpile was stocked again - and it won't make a random granite mechanism when you really wanted bauxite)

Having general stockpile settings like "This stockpile should be filled from other stockpiles" and "this stockpile should always be full" would be nice, but I would not want to see the 'take from' dynamic removed.

Now to decide what those other settings should be...

"This stockpile should be full" - this would cause the stockpile to have priority when hauling jobs are generated (for stuff not on stockpiles) and should generate hauling jobs for stuff that's on other stockpiles already.

"Full bins/barrels should be removed" - this should make it so that full bins should generate a hauling job to either put it in the nearest stockpile that will accept it (or the stockpile with a 'take from' order, so you can control exactly where it goes if so desired)

"Partially filled bins/barrels should be removed" - the opposite of the above.  Partially full bins/barrels are not permitted and won't be hauled there and will be actively removed if they're already there.  I can see this mostly being useful for things like your Trade Depot stockpile so that you'll always have the most stuff near your trade depot (I hate designating 30 bins to be taken to the depot, only to find they have one or two orthoclase amulets each in them), but I can see a few other things it could be useful for.  I would also say that if the bin has a Tasked item, it shouldn't be moved by this order (that way your rock block stockpile next to your megaproject won't have the full-1 bin of blocks removed, causing cancellation spam).
Logged