Priorities and smarter task-handeling needed

Started by stigma, October 25, 2013, 12:14:38 PM

Previous topic - Next topic

stigma

Hey all,

I've noticed a couple of problems that I want to draw some attention to when it comes to colonist task-handelig and priorities. I know it is early alpha still ;)

This list is a little haphazard and not really organized, sorry. It is just a pile of issues in roughly the same sort of category.

-----------------------------
- Customizable prioritization is really needed. Current system is workable, but there are a lot of situations where you have to do less efficient distribution of tasks just because the priority line is fixed. A really simple example is this: miners and constructors often have skill-overlap (colonists good at one skill is usually decent at the other too). it would make a lot of sense to set one primary miner, and one primary constructor, but still have both of them do both things so that if there is no more mining then the miner helps out with the constructing and vice versa. Instead you now have to either toggle on and off skills all the time, or "bite the bullet" and set your miner to never construct - so that he spends his time when he is not mining not using his skills well and only doing something nonessential like cleaning.... A customizable priority list for each colonist would fix this and is probably not that hard to change coding-wise. For the UI, consider using color-coding? It could be a good way to still be able to see at a glance what things are high priorities.
-----------------------------

-----------------------------
- Repair/maintainance needs to be its own job. It really really really needs to. Why? Because repairing is logistically a completely different job than constructing is, and it makes sense to assign very different people to it.

Currently it is part of constructing which seems to make sense, but when a base grows big and complex the repair job becomes bigger than the constructing job and mostly involves running around more than needing a good constructor. In short - new construction projects (lots of work in a small area) needs a good constructor to finish the job fast. Repair jobs need lots of people to do the job so that someone close to the job can do it, and they don't really need to be highly skilled because it is running to the jobs that takes the most time usually, not the job itself. Repairs would make sense to assign to the same types of people that you have set as cleaners, haulers, maybe even wardens.

If repair is not separated out into its own skill then there will be big big efficiency problems once bases become larger than small-medium because you become forced to enable most of your people to do construction just to be able to handle repairs.
-----------------------------

-----------------------------
- Smarter task handling in general is needed. Everything works fine using "dumb" algorithms as long as everything is small-scale, but as complexity and size of the system grows these sorts of inefficiencies will cripple the system until the majority of the colonists time is spent not actually getting any work done.

There are a LOT of issues that need to be covered under this, and I'm not sure i can list them all here, but here is an example of what I mean:

Something far away needs to be mined, but the colonist is about half-hungry already. The dumb algorithm does not care and sends the colonist on the long walk to the site... and then he mines ONE block and starts walking home again because he is hungry. You yell curses at your colonist but it dosn't help :( Then he goes to eat and has to go back again to mine. When he finally gets back to the mining location he mines ONE block and then starts walking back because he is now tired. You slam your face into your keyboard until your eyes start to bleed...

Instead of course, the algoritm should do some simple checks before heading to a new task to see how far away it is and see if it needs to take care of hunger/sleep and other such needs beforehand, so that if you have to mine or construct something far away then just make sure that you are well rested and fed before you go (like a normal sensible human would).

IF the next task on the colonists priority list is not far to walk AND his bed is also close (typical base work scenario) then go to bed a little earlier than usual so you can wake up earlier. It makes more sense to be well rested and have good energy reserves for later if something important happens. Basically, when you can keep well resed and ready without sacrificing efficiency.

On the other hand, IF the colonist is close to a cluster of work AND that cluster is far from the bed THEN keep working until you are a little more tired than usual. On work projects far from the main base it makes sense to maximize the on-site work time so you don't have to make lots of extra un-needed travels (again, more common sense).

Let colonists know what the others are doing and make smart choices based on that. Let's say that there is a fairly small mining project far from the base, only 10 blocks, and you have 4 miners allocated. Currently, if priorities allow, then all 4 miners will get sent across the map to do the work. very often the first miner will finish before the others even arrive, and because the algorithm doesn't even check again until it arrives at the job the others don't even "realize" that the job is done ages ago until they arrive and try to start working. The correct response would be to analyze the task-cluster, see that it is a small job, and just send one guy to do the job - preferably the one that has the best combo of surplus sleep/hunger and is also highly skilled.
------------------------

I will draw a line here for now. I think this topic probably needs its own thread where people can make more spesific suggestions using pseudo-code for Tynan to tae sugggestions from.

Again, I realize its pre-alpha. I don't expect this stuf to be perfect yet, but in this sort of a game this is really important stuff. Half the fun is to watch your little guys be busy little worker bees after all, and if they become stupider and stupider the larger and more complex the pool of tasks become then that fun quickly turns into frustration instead.

-Stigma

Shaft

Just wanted to comment on the "maintenance" portion of the post.
Couldn't agree more.  I was thinking the same thing.  Repair and cleaning would be great to have as "maintenance" so that I could set one or two colonists to run around and fix things and tidy up.  Let the construction guys work on new projects.  Depending on my base I would have enough janitors to cover a realistic section of the base.

Which brings up my next wish.  It would be great to assign colonists to only service a certain area.  They spend too much time running from one job to the next all over the map.  Hauling that important ore?  Oops, a conduit on the other side of the map needs repaired.

Semmy

Moved the topic to suggestions seems more in place there

I must agree that with long walks it is annoying that the goon forgets to eat or whatever.
Maybe one day we can make backpacks out of buffalo hide and take stuff with us for on the road.
The only thing necessary for the triumph of evil is for good men to do nothing.
Edmund Burke

stigma

Quote from: Shaft on October 25, 2013, 12:21:27 PM
Just wanted to comment on the "maintenance" portion of the post.
Couldn't agree more.  I was thinking the same thing.  Repair and cleaning would be great to have as "maintenance" so that I could set one or two colonists to run around and fix things and tidy up.  Let the construction guys work on new projects.  Depending on my base I would have enough janitors to cover a realistic section of the base.

Which brings up my next wish.  It would be great to assign colonists to only service a certain area.  They spend too much time running from one job to the next all over the map.  Hauling that important ore?  Oops, a conduit on the other side of the map needs repaired.

Cleaning and repairing is much more the same sort of job yes, so it could make sense to have that in the same category. At the same time though, you usually want repairs to be a higher priority task. I think I'd prefer it as a separate category.

Being able to set a work-zone for each colonist would be AWESOME yes! :)

The next best thing would be a simpler toggle of "only work at home" - which makes the colonist never try to do tasks that are outside the homezone. That is "almost as good" while keeping the system fairly simple. Personally I always prefer advanced controls and maximum control, but that is not always the best design as a game designer =P

EDIT: Thanks Semmy, yes this category probably makes more sense.

-Stigma

British

Agreed on repairing as an independent task, and on the "smarter task handling".

Manual priorities are in since build 243, released yesterday.

Ford_Prefect


todofwar

Definitely like the workzone idea, or maybe just more specialized jobs. For example, I try to balance the priorities between growing, cutting, and hauling food in. The AI just either cuts all the harvestable plants and then hauls in food, taking more time, or it begins hauling everything but food. Having a few set jobs, like farmer or miner where they know to haul in the metal, food once its ready and go back (obviously there would need to be two miner jobs, one just digging out a space the other mining for metal).