Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Job automation through dwarf experience/observation  (Read 1214 times)

nopretentious

  • Escaped Lunatic
    • View Profile
Job automation through dwarf experience/observation
« on: June 08, 2007, 12:08:00 am »

(I have searched the posts in this forum and I have seen automation ideas before. This post, I believe, is one way to accomplish automation in a way that makes sense in the DF world.)

Job automation through dwarf experience/observation.

What I mean by this is simple. As a given task requiring multiple steps is completed that task becomes eligible to have its steps automated in the user interface so that next time the task may be executed in fewer steps.

My rationale is as follows: The first time almost any task is done in a given game it makes sense that a dwarf would not know how to do it and need to be "shown" (by the player). Over time and with experience the dwarf gets to know the ins and outs of performing that task and is able to handle the details on his own. Thus as the game progressed the dwarf(s) would need less direct supervision on those repetitive tasks and the player should be able to entrust, as it were, a dwarf with the desired task and be reasonably sure as to its completion.

Another way of putting it is that automation becomes "unlocked" upon successful completion (or perhaps multiple completions) of a task. I say "task completion" instead of "item creation" because I think that it could be used for more than just creating a given item. Take farming for example; Once you build and operate a successful farm you have, in effect, shown the dwarves how to farm. I don't think it would be unreasonable to then be able to tell the dwarves to build another farm of the same type (quality, crop, location, productivity), show them where, and then expect them to complete the job, complete with support pillars, flood gates, and mechanisms (again, provided a farm of this type had been successfully built previously, maybe more than once). So task means anything from "make a sack" to "construct a farm" or anything else that an intelligent, experienced group of dwarves should reasonably be able to handle.

I see the advantage of this being twofold. First it reduces the repetitiveness in the game overall, but does it in a way that makes sense and can still bite the player in the butt if they aren't careful and rely too heavily on it. The first time a player discovers how to make an item or how to successfully perform some other task can be very engaging and interesting; the sixtieth - not so much. Second it allows the scope of the game to scale up and the player to focus on ever larger projects as time progresses. Thus in the beginning you're very concerned about getting enough food to survive the first winter... but later on you've mastered food production and are perhaps more worried about the supply lines to your armies and your relations with the nearby elves (as I envision might be the case in future iterations of DF).

Some additional points:
- This could be made optional for folks who prefer more direct control.
- How well a player "shows" the dwarves the task should definitely play a part in how well they may expect the automation to work.
- A player could also redo the automation at a later time if they think they can do it better, or if the dwarves have made some key advance that makes doing so advantageous.
- The knowledge of the automation could take a physical (virtual?) form in the game. For instance, perhaps the dwarf is able to write down his knowlege of the task for future generations and thus a new book on, say, farming is created. Any dwarf reading it would be able to gain that knowledge and make the automation available even after the first dwarf dies, provided that the reader could make sense of what was written (i.e. was a skilled enough farmer). Once the knowledge exists in the game it can be passed to other dwarves of similar skill through reading or conversation. Once the knowledge exists in a given WORLD useful books containing automation knowledge might just show up on a passing caravan and at that point the player might decide to pay for a particularly useful bit of that knowledge from a previous game.
- The dwarves themselves could improve the efficiency of their tasks as they gain skill.
- Some of the things above are likely more easy to implement than others. The farm thing would be cool, but even just the unlockable automation of item creation would be pretty nice.

I have no idea how possible this is, but I think it's worth giving thought to. I think this automation scheme could be an elegant and sensible solution to some of the repetitiveness that a player occasionally encounters. If implemented right such automation could allow interface simplification (at least as the game progresses) as well as some degree of abstraction of the tasks thereby freeing up computer resources and enabling them to be directed toward those larger scale late-game things like armies and kingdoms.

Cheers, all.

Logged

Draco18s

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #1 on: June 08, 2007, 08:03:00 am »

No.  Just no.
I couldn't care less about how to build a bloody bed.  And I most certainly would never want to do it more than once, EVER.  Starting a new fortres: means starting all the bloody "how can you be so clueless!  Tab A into Slot B!" all over again.
Logged

Grek

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #2 on: June 08, 2007, 08:22:00 am »

quote:
Originally posted by nopretentious:
<STRONG>I have no idea how possible this is,</STRONG>

I'm 98% sure that this is not possible to program.

Logged

Zhentar

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #3 on: June 08, 2007, 09:23:00 am »

Actually, I'm 100% sure it is possible to program. There are a number of machine learning techniques that could be used, that would do pretty much that. There are a number of problems though. First, performance- We've already got a huge number of complicated things  using up a lot of processing power and memory. This sort of thing wouldn't go light on either of those points. The second is that the computer can't always distinguish the intent or relevance of my actions. So, it might think that making 10 steel high boots is a step in farm building just because I did that while I was waiting for the flood to clear. Or, the computer doesn't understand that I lock the doors to keep dwarves out of the farm area, locks the doors with a dwarf inside, then floods the room and drowns my legendary siege engineer. The only way around the imperfect machine learning is to hard code the steps, and that's got it's own flaws since it will only match some play styles and other techniques won't work and it becomes a huge pain to maintain.

Plus, for tasks like crafting, the manager is already good enough. It would be nice if the dwarves making those steel high boots knew how to make steel automatically, but I can still queue up 10 iron, 10 pig iron, 10 steel, and 10 steel high boots in the manager screen and as long as I've got the raw materials they'll get done. Automating the steel bars only would've saved a little bit of typing.

Logged

Veroule

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #4 on: June 08, 2007, 12:44:00 pm »

I think Zhentar has hit the nail on the head.  It would be more useful for us to have simple automations by way of the manager.  You order 10 steel bars, the manager checks and sees you have no pig iron so the manager automatically orders the right number of pig iron first.  Then he finds you have no limestone and justs puts the whole thing on hold.

Other simple things like ordering up some shirts.  Again it checks for materials and puts in orders for what you are missing.

The deepest recursion required would be for doing adamantine stuff.  I mean who really wants to remember just how many bars you need to make an anvil.

Logged
"Please, spare us additional torture; and just euthanise yourselves."
Delivered by Tim Curry of Clue as a parody of the lead ass from American Idol in the show Psych.

Elshar

  • Bay Watcher
    • View Profile
    • http://www.cheekan.org
Re: Job automation through dwarf experience/observation
« Reply #5 on: June 08, 2007, 03:22:00 pm »

Yea, I can see this with the multi-step crafting. I mean, it'd be nice to just queue up 10 steel crossbows and have them just make iron -> pig iron - > steel -> crossbow rather than having to queue all that stuff.

Although, I do tend to use leave my smelter on repeat for the whole steel producing process anyways. Along with make silver/gold/plat bars.  

I really never ever want to see the dwarves make their own rooms. Ever. Considering how complicated some of my setups get, I would hate to see some "dabbler farm constructor" decide that a 10x10 farm should have 6 floodgates, no supports and a crazy channel connecting all of them. Even if they just had the normal 2 floodgate setup, I still wouldn't trust them to not create world-drowning floods or to properly setup the backup overflow channels.

Now what WOULD be cool is if they could coordinate the currently existing farms. Ie, first year I have a farm that grows plump helmets, pig tails, and cave wheat. Next year they should clear the room out, flood it (safely), plop down the fields, fertilize them if there's lye around, and then re-queue the crops. And after the crops grow, then the manager kicks in with what to do with them (brew, cook, turn into thread, etc)

[ June 08, 2007: Message edited by: Elshar ]

Logged
arr!

Grek

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #6 on: June 08, 2007, 07:46:00 pm »

quote:
Originally posted by Zhentar:
<STRONG> The second is that the computer can't always distinguish the intent or relevance of my actions. So, it might think that making 10 steel high boots is a step in farm building just because I did that while I was waiting for the flood to clear. Or, the computer doesn't understand that I lock the doors to keep dwarves out of the farm area, locks the doors with a dwarf inside, then floods the room and drowns my legendary siege engineer.</STRONG>

This is why I said it was not possible. You could design a program that makes farms, but not one that would understand what you want and do it.

Logged

Entropy

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #7 on: June 08, 2007, 08:08:00 pm »

I have no idea how this could be useful - what are you doing that you do so often?

creating a farming area?  How many farms do you need?  Do you really want dwarfs to automatically decide they want to dig out an area of their choosing and flood it?  I rarely make more than one farm - two at most.  How can it make sense to try to macro farm building?


The only part about that which would make any sense at all would simply be to setup annually repeating farming plots - i would certainly not want the dwarfs to automatically pull the lever at any time of their choosing, but making 'permanent' farm plots would make sense.  Setting permanent farm plots wherein they would auto-plow when it hits spring (suspended if no mud), then follow the perm-set spring, summer, autumn plant schedule.

If you want to make steel - just use the little 'repeat' function on your smelter.  How hard is that?  make iron bars, then hit the letter 'R', then make coal bars and hit 'r', make pig iron and again hit the letter 'r', make steel and, you guessed it, hit the letter 'r'.  Voila! you not have an automated steel making setup that will run for as long as you have hemitite, coal, and limestone avaiable - of course it is up to make sure youve mined out both...  unless you really want the dwarfs to automatically mine the ore too...  what possible reason do you have for trying to get the dwarfs to 'learn' making steel like that?  alternatively, just use the manager to set it to create a number of each iron, coal (or charcoal), pig iron, and steel, then whatever steel item you wanted.  

It really is not hard and probably less work overall than trying to 'train' a dwarf to figure out what you want it to do.  Especially since this 'training' would probably take a few iterations for it to learn it properly, then repeat that for each metalsmith you have...

[ June 08, 2007: Message edited by: Entropy ]

Logged

Veroule

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #8 on: June 08, 2007, 09:47:00 pm »

What some of us were saying is make the manager more useful.  Make him able to take an order from us for 10 steel crossbows and he makes sure all the base items are there to do it.

I just don't want to always have a dwarves making some of the components.  Some I will have extras of, others I may have been hunting for some to mine and that step cancelled.

A few of us (not the original poster) were suggesting that the manager should be capable of putting in orders for all the lower items.  I don't think such a thing breaks the game, it just simplifies a portion of the interface for those of us more concerned with the structure of the fortress.

Logged
"Please, spare us additional torture; and just euthanise yourselves."
Delivered by Tim Curry of Clue as a parody of the lead ass from American Idol in the show Psych.

Entropy

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #9 on: June 09, 2007, 04:48:00 am »

I very much agree with being able to issue an order for an item and the manager automatically, if they are not available, make the components.
Logged

Arnos

  • Bay Watcher
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #10 on: June 09, 2007, 06:42:00 pm »

On a similar sort-of already mentioned line, the player shouldn't have to tell dwarves to rebuild farms every year, or a option that lets the player choose to re-build every year or not.
Logged

axus

  • Bay Watcher
  • Axe Murderer
    • View Profile
Re: Job automation through dwarf experience/observation
« Reply #11 on: June 13, 2007, 05:03:00 pm »

Heh, everyone always asks for more control over their dwarves, not less!  I don't support the idea of player training, it was not fun in Black and White.  Maybe it was interesting, but the fun did not outweigh the effort, and having to repeat it in a new game isn't fun.

I do like the idea of things like farm patterns being saved and callable by a manager.  But then it would be something you could bring from game to game, or trade in the forums, and use when you get the right noble.  Maybe someday Toady can abstract the AI into separate DLLs like cEvo does, or scripting language.  Right around the time he puts magic in ;-)

Logged