ldtteam / minecolonies-features

This is a repo only to discuss minecolonies features (requested and planned)
10 stars 3 forks source link

Make it so that the workload for the Couriers is more balanced. #831

Closed SomLuzur closed 3 months ago

SomLuzur commented 6 months ago

Prerequisites

Context

Is your feature request related to a problem?

Right now, The warehouse distributes tasks evenly between couriers, but doesn't take into account how long those tasks will take. For example, there's a warehouse with 2 couriers. Courier 1 has two orders and Courier 2 has one order. A new order comes in, so the warehouse assigns it to Courier 2. However, Courier 2's singular task will take twice as long as Courier 1's two tasks combined, so Courier 1 ends up standing around, doing nothing, when they could be doing Courier 2's second task. ## Enhancement or Change description I would like to see the Warehouse have a task list similar to the build task list in the Town Hall, where the Couriers will be able to accept a new task after they've finished with their previous task. ### Notes or related things

Viewers

YumatanGames commented 5 months ago

I support this change and would like to suggest an additional, straightforward strategy to streamline the courier assignment process. Assigning tasks on a first-come, first-served basis could be more efficient. As couriers become idle at the warehouse, they can pick up available tasks. To enhance this, couriers could handle multiple tasks simultaneously, up to a maximum correlated with their hut's level (e.g., up to 5 tasks for a level 5 hut).

To avoid any backlog, all uncompleted tasks could reset at nightfall, returning to the queue for redistribution the next day. This would ensure that couriers affected by unavoidable delays won't cause a hold-up in deliveries, as their pending tasks would be reassigned to available couriers the following day. This system would also benefit from a fallback where couriers unable to work for any reason could relinquish their tasks back to the pool for redistribution, maintaining efficiency in the face of unpredicted downtime (like sickness or mourning). This dynamic assignment would maintain a steady workflow and accommodate the unexpected events in a courier's day-to-day life.

Thodor12 commented 3 months ago

Implemented by ldtteam/minecolonies#9969