Task Priority -- An important mechanic ignored by many DF-like games

If I understand the current gameplay implementation correctly, the AI is task based.
The player assigns tasks, the AI director keeps a queue of them and selects units capable/compatible and convenient to carry out the task and completes them. Player has no direct control over what the units do.
A common problem with this system is that if you have something that’s urgent, you have to either cancel all other tasks or modify a lot of unit job priorities such that a specific job is done right away. For example, you have an incoming raid and you need to do repairs on your walls. However, your workers are busy making iron bars and chopping trees because that’s their job.
My suggestion is to make a “do it now” button for tasks such that the AI director will extract the job (and its prerequisites and insert it in front of the queue. Or simply being able to assign workers to a specific job would solve the problem, too.
This is just a common issue I have observed in games like Dwarf Fortress and Gnomoria.

16 Likes

Agree with you, there needs to be a way to manage priorities in a comfortable way. We know that this is planned for the crafting professions where we will have a queue and where you can move important orders to the top… that’s why I am confident that we will see something similar also with the standard workers and other professions.

2 Likes

agreed… taking a queue from a game currently being kickstarted (rimworld), the player has the option of interrupting existing orders, and prioritizing a specific job… its all right-click driven, and contextual…

so, clicking on a damaged wall brings up a menu item of “repair this wall”… and the first unit who can repair a wall will have that job jump to the top of his list…

But workers have priorities, no? Do they stop applying that whilst performing a task?

The way I’d thought of it was that if something was urgent, it’d top their priorities and they’d stop what they were doing and go help? Maybe having a job bumps up its priority by like 50 (if it’s out of 100) so they’re not constantly switching jobs and never finish any of them, but if it’s uber important, they’ll know to go automatically?

Certainly if that’s not the case, I’m sure that would be really easy to modify, since most of the coding has been done already for it so you just mess around with the numbers. Radiant could probably easily fix this if it’s not already the case (and unless it’s a flawed system, which it may well be).

However a button to prioritise would be good, for jobs you want done quickly but the game doesn’t consider that important. My system is just for things like guards on patrol in the town have “Patrol” overwritten by “Defend town from invaders” and other obvious important things. Button would be good to have to, I’m just saying they could program in the way to avoid all your workers ignoring super important tasks to craft a chair.

@SteveAdamo and @Geoffers747 I think we’re all kinda curious though, would it be possible to link this to the livestream question bank? I know you just want questions, but this kinda (it might not) needs the context that the first post provides and they might be interested in comments

@Smokestacks I have the same understanding. So far the devs mentioned that there will be a priority list, also for the workers, e.g. just remember the discussion about how sleeping will work. However, we do not have too many details if this will also apply on tasks we assign to them. I would expect we can somehow align it… but so far we know it only related to the crafters for sure.

1 Like

i believe we have the technology… let me see what buttons i can push, and which diodes i can turn… :zap:

3 Likes

I’m pretty sure that in one of the older live streams @Tom talked about the AI priority? Maybe I’m confusing it with how certain things will override a unit’s actions - like the appearance of a titan, or the city coming under siege etc.

An ability to manage priorities like everyone is saying above is obviously needed, the annoying thing about Gnomoria, as much as I love it, is that the priority system isn’t the most intuitive of things and can be confusing.

Having an intuitive AI that knows that the walls are in need of repair and that should override the creation of iron buckets would be amazing, not sure how achievable it is though?

Perhaps it would be something as simple as, if you want your walls to be repaired they are priority X on the scale, and override everything should you choose it?

As I do not have to code it… shouldn’t be rocket science :wink:. Actually you just need to allow the player to add some kind of priority to your activity (as @yuxinma2005 mentioned in the initial post). As much as we know about the priority system, it will support prioritizing one action after the other.

I have an idea. It may be major major feature creep, but I think it could be a cool way to do it –
Make the task queue visible and editable. This is a quick illustration I made.
( Apparently I can’t post images yet, but please the the following link)

1 Like

… what if your empire becomes larger? The list might become quite long and might turn into a painful thing to manage. While I like such a queue for the crafter-professions, I am not sure about workers or soldiers. How about keeping it more simple and just allow to prioritize your activity in the moment you asign it. This would not allow the luxury to “go back in time” and change priorities of older tasks, but you could overcome this by re-assigning the old task you want to have executed with a higher priority.

@voxel_pirate You are right. Queue manager could get out of hand easily without sorting tools. That is too much to ask. I think your suggestion is definitely viable. What about hauling and building?
Hauling example: In DF/Gnomoria, your dwarves haul dirt around while leaving perishable food all over the place.
Building example: In Prison Architect, you lay out building 1 then building 2. You expect your workers to finish building 1 first but they work on build 1 and 2 at the same time. If building 2 happen to be large, the wait becomes annoying.

How about my suggestion of task prioritising? So (on a priority scale of 0-100), dirt hauling is at 10. Perishing food is a problem and has a high priority of 80. So the food is sorted first.

Building 1 has a priority of 30. Building 2 has a priority of 50. However, to make them just finish their jobs instead of potentially constantly flipping back and forth between them, the current task gets 50 added to it so that workers are unlikely to leave a job they’re doing, but if it’s urgent/they’re doing menial work and something fairly important comes up, they’ll switch. The latter was shown in my solution to the hauling example; they hauled dirt because it needed hauling, but when a reasonably important job appeared, they switched.

Of course the numbers would need all sorts of testing, tweaking etc. so just use them as a way to help understand, rather than actual set variable amounts :stuck_out_tongue:

right… we already have that i believe… a unit will prioritize actions based on their level of “importance”… so, if he is sent to chop wood, and he spots a goblin, the “importance” of staying alive weighs more than the “importance” of chopping wood…

the player should have access to these weights, and will be able to adjust the thresholds to their liking…

oh, wait… you’re referring to non modded, in-game unit adjustments (tweaking their priorities as you play)… sorry!

3 Likes

Hello,

i know the Game is still in alpha, but i think this could be a nice addition.
very often it happens that i am farming wood, or wool or what ever and the citizens are not bringing it fully to the
storage.

they go working on other things and then the stuff is lieing around till they need it.
it would be nice if we could tell a citizen seperatly to keep the main focus on bringing all the stuff to the storage.
maybe even a class for it like “Collector”, which is a child set of a Worker, if he dont have to bring stuff to the storage, he acts like a worker.

Greetings
Tepoo

Hi @Tepoo you will find this thread interesting:

I would merge you over but for some reason I’m unable to, so we’ll leave this up for now.

1 Like

Not sure if this has been suggested yet or if it’s already planned for future development, but what I would like to see is a method of managing the task priorities of each worker. So for example, as far as I can see, the standard priority of hearthlings tasks when there are tasks stacked; you have Harvesting as highest priority. Building second. Mining third. Moving items to the stockpile fourth. (Possibly wrong there somewhere, but it’s a general idea)

What I think would be cool is if you could change these priorities per hearthling, so one will prioritise gathering, while another may prioritise building, and another mining. (And when there’s nothing for them to do for that task, they move on to their 2nd priority that you set for them).
An old game I used to play, Startopia, had this sort of thing for the Scuzzers where you could order the priority of their routine tasks. (repairs, cleaning, construction, gathering)

Overall it would lead to a more productive and cooperatively organised community of hearthlings :slight_smile:

Another suggestion on the side: Possibly (similar to the trapping grounds) if you could set up a patrol square where soldiers will guard on their routine patrols (i.e. Manually be able to set up patrol routes/areas). That would be pretty nifty too! :smile:

2 Likes

Kind of like you could adjust the transport priority for your carriers back in the good old Settlers game, but for tasks, yes? (A very quick search didn’t give good screenshot results, so that would need more effort.)

I would definitely appreciate this, especially if you could also change this (slightly) per hearthling. Then (for example) you could temporarily give resource transport & storage the highest priority, when you stare at your ores just sitting in the mine, not being counted by the goblin accountant, while the marauders already sharpen (or dull donw?) their cleavers… :wink:

Sorry, I just realised that I should have provided a visual example of what I was referring to, to make the concept clearer. :smile: Heheh.

Here’s the example of the system of prioritising tasks in Startopia that I was referring to(It’s a basic example):

  • Except in this case it would be (in another basic example):
  • Gather
  • Build
  • Mine
  • Stockpile

Naturally the set up wouldn’t be the same.
The way this one worked was that each of those icons, you could drag to the position you wanted it to be in the order of priority. (Highest priority at the top, lowest at the bottom)

I’d say for location of the function if implemented, it would be most efficiently and appropriately placed in the Hearthling’s character sheet, probably under its own tab, so it could be tailored per hearthling.

Games like Dragon Age also had a similar thing with their tactics setup. You could tell them what you wanted to do in combat and change the order that they used their abilities when they were under AI control. (But that’s a much more complex system than what I’m thinking)

Note - If I’m not making much sense or if I’m hard to follow on this, let me know, I’ll try to reword/re-explain. ^_^;

Edit - I see this has already been suggested.(As shown by the thread merge) Muhbad! :disappointed_relieved:

3 Likes

Once, I had a hearthling spawn in, but I didn’t realize that he spawned on a level above my village. This hearthling started to starve, until it was at half health. I realized this quickly, and got a ladder building, but it took quite a while until it was built. Thankfully, my hearthling survived, but it is slightly annoying for this to happen.

Again, moved you over here @Void_Justice.