Jump to content

[Suggestion] Add Priority to the Jobs


Recommended Posts

Aye, I agree. I liked how RimWorld implemented this (2 modes — normal — what we have now — and advanced, with priorities), and it can't hurt anyone — yet it will be very helpful for people who like to micromanage everything.

Link to comment
Share on other sites

The question is how should that work with priorities on jobs that are already in the game.

When a dupe goes looking for a job, you can assume all other dupes are busy doing something. At present he sees a bunch of jobs out there that have each some base priority (1-9) and sub-priority depending on type of the job (e.g. they go first mop and then build). The dupe selects accessible job with highest priority and sub-priority. How should your priorities be added to that system?

Link to comment
Share on other sites

51 minutes ago, Kasuha said:

The question is how should that work with priorities on jobs that are already in the game.

When a dupe goes looking for a job, you can assume all other dupes are busy doing something. At present he sees a bunch of jobs out there that have each some base priority (1-9) and sub-priority depending on type of the job (e.g. they go first mop and then build). The dupe selects accessible job with highest priority and sub-priority. How should your priorities be added to that system?

It could be based on interrupts that would happen if

1) I have higher priority than you at this job 

2) We have same priority on this job but you have higher than me on other job.

3)You have higher priority than me but you are supposed to go to massage bed or other regeneration building and I have no higher priority job. 

Spoiler

 

Link to comment
Share on other sites

That sounds like exact opposite of improvement. Most of the time, if a dupe is doing something, it's better to let him finish it rather than telling him to go look for some other job in the middle of what's he doing. For hamster wheels it could make sense but for others it's just more time spent on dupes traveling to their job sites.

If anything, it a dupe is standing right next to a job site and other dupe is somewhere far away coming to do that job, they should switch jobs based on proximity. "I'm already standing here so let me do it because I can be done before you arrive". But that doesn't involve priorities.

Link to comment
Share on other sites

2 hours ago, Kasuha said:

The question is how should that work with priorities on jobs that are already in the game.

When a dupe goes looking for a job, you can assume all other dupes are busy doing something. At present he sees a bunch of jobs out there that have each some base priority (1-9) and sub-priority depending on type of the job (e.g. they go first mop and then build). The dupe selects accessible job with highest priority and sub-priority. How should your priorities be added to that system?

I don't see how it would be all that different from RImworld. You have your natural job priority list where stuff like mopping goes first, but then we could set stuff for build/dig/deliver etc, that is specific to the dupe only. So you can still set an overall priority on jobs for all your dupes that they follow with the natural order, but then if you have a dupe that is good at digging, but not so much at building, you can set a priority that says, hey, only go and build if there are no other digging requests currently available, instead of just a yes/no option atm.

I'm assuming here that something like digging and building is weighted about the same in the current job priority. It still works with the in game priority system, it just acts as a subsystem. So if there are a number of priority 7 tasks, and a number of priority 5 tasks, the priority 7 are done first, where each dupe working on them will tackle them based on their own priorities (good builders build first/good diggers dig first) and they will complete all the priority 7 tasks before going back to the priority 5 tasks.

I don't think a dupe should ever "interrupt" another Dupe working on something, but with the current system, i often see dupes finish say a digging task, and then go off across the screen to something else rather then starting the next digging task that is right next to them, maybe because its been "grabbed" by another dupe already. Its very frustrating and inefficient.

Link to comment
Share on other sites

7 hours ago, asmallrabbit said:

I don't see how it would be all that different from RImworld.

I didn't play Rimworld but I watched a few playthroughs and if I understand it correctly, it does not have priority of jobs when you place them. It has job priority per character. ONI went slightly different way with job priority in place and went pretty far with that. Merging the two is not easy and is not guaranteed to improve the result.

The main issue is indeed dupes running all the way around the map to do one thing, then running back to do something else. It is either caused by another dupe reserving the adjacent digging job, or by another high priority job appearing somewhere else. There are many ways how that can be handled, with job priority decreasing over distance (but the higher the priority the lower the decrease), with rearranging dupe priorities within levels (only helps within the priority level), with adding some weight to the job priority per dupe (may cause dupes neglect priority 9 jobs because it's low on their priority list). But I actually believe the proximity job switching (i.e. switch a job with a dupe that's still on the way to the site if you're closer to the place) would be the best solution as it is relatively simple and deals with both the cases when another dupe stole the job right next to you, or when you're going to do a high priority job on the other side of the map and another dupe is closer.

Link to comment
Share on other sites

Kasuha is correct, Rimworlds works because their job priority is Linear, going from left to right or if you change it whichever order you like. But all jobs in Rimworld in the same category are the same priority,

If you were to implement that into this game then if you marked a Building as 9 Priority but it is the last thing in a duplicates Job Priority then that duplicate will never go and build it until its Job Priority list reaches the Building Category. That would mean that a repetitive task would stop a dupe ever reaching some tasks marked as a 9 in priority. This is only an example, why someone would put building as the last priority on a dupe is beyond me but it served as a perfect example.

Ideally i would love for it to be proximity based to some degree like mentioned previously, because I always have 10 or so dupes dig something and then walk away and another 10 come build where i just dug out and then the previous 10 come back and come back and do some more digging. I watch my wee travel time counter go so high. 

Link to comment
Share on other sites

This aspect of the game definitely needs work.  As for the basic use of the OP's example, left-click checks and unchecks the box, right-click cycles through the 9 priority levels for that job.

This most often comes up for me with regard to building and digging.  These quite often go on in the same areas, at the same time.  I want my dupes with high building skill to preferably be doing the building, and want the ones with high digging skill to prefer to do that.  BUT I do want them to either job, if their preferred one isn't available.  Similarly, I want artists to be available to do construction and digging when there's no art, BUT when an art job comes up I want them to prioritize that.  Now, the way you do this is by using the same prioritizing numbers for the top-most job bar, in the gray area.  So no more 'built-in' priorities.  Let the player select the relative priority of each job type.  Then it becomes a simple additive system, that the player has control of at three levels (general job, queued job, and dupe-specific).  They can make the generic priorities all the same, but put mopping and energy at +2. 

So, dupe Gary has a construction skill of 7.  He's on my build crew so I have all his jobs at default priority 0, except digging and construction.  digging is +3, and construction is +4.  So I queue a priority 7 dig/construction area.  Most dupes, with individual job priorities of 0 in dig and build, go about their normal priority 8 jobs, which are higher than 7.  But for Gary, the dig jobs are 7+3=10, and build is 7+4=11.  So he will strongly prefer to do those jobs over even jobs queued at priority 9.   That is, assuming the general job priority is 0.  For mopping and energy, a job queued at 9 becomes 11, due to the general job priority rating of 2.  So in that scenario gary will drop digging for energy and mopping.  But building will be equal priority, so he may or may not stay on that.  This doesn't seem like it should be that hard to implement.

Now regarding dupes doing idiotic job switches that was their travel time, that's another matter.  But it seems to me the job prioritization could easily be made much more responsive to player needs, AND more transparent.

And NOW I'm going to go beyond that, and say that any building that has dupe delivery or interaction NEEDS to have an allowed dupe list.  Right now the job descriptions are so generic, they're almost useless, except for art, research, and power.  Delivering can involve absolutely anything anywhere in the base.  Composting?  That's what, specific to 2 buildings that are only used in the early game (the tool tip is not helpful in letting me know)?  And it has it's own job?  What about things that are used the entire game, like farming?  Or slime refining?  Why don't those have their own jobs?

The specific problem I've been dealing with recently is my foray into slime refining.  I want those slime balls dropped by pufts to be picked up and stored asap, so they're not offgassing.  Right now it seems the only way for me to do this without micromanaging is build a priority 9 locker that holds only slime.  Well guess what?  Half my dupes are constantly hauling slime balls - either storing them in a locker or delivering them to a distiller.   I want to have ONE dupe that does primarily this.  I want storage lockers, distillers, and any other building that has delivery or tasks (cooking machines, science stations) to have an allowed dupe list.  I could assign my distillers and slime lockers all as priority 9, and allow only the one single (in the future, probably disease resitant) dupe to use those buildings.  Then my other dupes can go do other stuff, while this unfortunate dupe acts as the puft-daddy.

Similarly, another job that really annoys me with wasted trips - farming, and specifically fertilizing.  I want my farms to be fertilized and harvested ASAP.  But I don't want every damn dupe in the base doing it.  I want to assign a small team of dupes.  They will be primarily responsible for harvesting and fertilizing farm tiles.  Now I can currently toggle the harvesting job, fine.  But I have no way to assign fertilizing and any and every dupe will waste time every time the fertilizer make drops a ball.  If I could assign a dupe to a locker,  I can make a fertilizer/seed locker, and have no other lockers accept fertilizer or seed.  I will set up farm tiles and the fertilizer locker so no other dupes but my farmers be able to access them, and this way I won't have every single dupe wasting time running to pick up fertilizer nuggets every time the fertilizer maker drops them.  Picking up the harvested items may still waste some trips.  I could set up a farmer specific food locker for sleet wheat and other foodstuffs that dupes don't eat directly, to at least prevent others from storing those foods.  Then the farmers would also be responsible for dleivery to cooking station, which is fine by me.   Meal lice would be a bit harder since dupes can (and do) eat them direct, so I can't really limit that locker access.  But eventually they're kind of obsolete anyway.

And for god's sake make plants themselves at LEAST have a copy settings button, if not just straight up inherit the priority level of the tile they grow in.  It's so annoying having to individually micromanage plants.

For me, being able to assign dupes to buildings would probably eliminate most of my need for being able to set dupe-specific job priorities.   But both features would just make the job situation so much more sane, and it doesn't seem to me like these changes should impact AI speed.  As opposed to the topic of better, more efficient job choosing, which might.   Having 3 tiers of priority (queued, general, and dupe) may be a bit complicated for some.  So I'd rather have assigning dupes to buildings, over the priority tiers, if I had to choose.

Link to comment
Share on other sites

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.

×
  • Create New...