RimWorld

RimWorld

Work Tab
Fluffy  [developer] Apr 4, 2018 @ 3:46am
[BRAINSTORM] Work Assignment UI
Over the years, some users have suggested alternative work assignment UIs, often inspired by other similar games. I'd like your thoughts on how this screen could work differently.

To get started, read up on this thread; https://github.com/FluffierThanThou/WorkTab/issues/65

Now, let's set some of the basic constraints.

dimensions
We need to assign jobs to pawns, with a certain priority. In addition, we'd like to be able to optionally do so for a given time.

definitions
RimWorld has two 'levels' of jobs. WorkTypes (e.g. Cooking, Hunting, Construction) and WorkGivers (e.g. butchering, preparing meals, filling food hoppers).

The Challenge
How can we represent the four dimensions of jobs, pawns, priorities and time in a two-dimensional UI?

The vanilla solution is to use a spreadsheet (a two-dimensional matrix), pawns and jobs are on the rows and columns, and priorities are represented with numbers.

The current work tab basically has the same solution, but adds time to a third 'depth' dimension (creating a three-dimensional matrix), and allows the user to show a 'slice' of the time dimension.

I'd like to spend some time to (quite literally) think outside of this box. Is there any other way we could represent dimensions that would lead to a clearer UI, that is easy to use and understand?
< >
Showing 1-15 of 17 comments
Fluffy  [developer] Apr 4, 2018 @ 3:51am 
I'll start with my own thoughts on a better(?) work UI.

Gnomoria / Gantt charts
Inspired by (my memories of) gnomoria
I've long been toying with gnomoria style work assignments. Note that I haven't played that game in ages, but from what I remember, gnomoria had certain 'profession' pre-sets, that included a number of related jobs. The work types in RimWorld are similar, but unlike those of gnomoria, the user can not edit the work types, nor can a job appear in multiple types.

I'm thinking of a UI where work types and specific jobs can be assigned to 'professions' and priorities within the profession, and these professions can then be assigned to pawns with a certain priority. Professions could be saved (and exported), and each pawn could have one or more professions.

This would make the initial setup more complicated (I'd probably provide some defaults based on work types), but allow for the quick and detailed assignment of priorities once set up.

This would all be possible because using professions instead of worktypes/jobs essentially removes one dimension. We would no longer need columns for worktypes, as professions could be identified with a label/color/icon, and priorities could be represented by the left-right position of professions.

Essentially, we'd be moving the job dimension to a new UI screen (profession setup), that should ideally be used much less often (e.g. initial setup and occasional tweaking).

For the timed mode, I'm envisioning a form of Gantt chart, which would actually be similar to the way Prison Architect assignments work. Allowing for overlapping professions (multiple professions in the same time slots) would allow the same flexibility that we have now. Time would then be represented on the horizontal axis, so we'd need a different way to represent priorities. Numbers could work, or we could display professions below each other, where the topmost profession has the highest priority.
Last edited by Fluffy; Apr 4, 2018 @ 3:54am
xrogaan Apr 5, 2018 @ 7:24am 
Dumb suggestion of the day: More windows. If a job has 20 sub jobs, open a new window with just those sub jobs. The idea being that too much information kills the information.
Litcube Apr 5, 2018 @ 8:59am 
Fluffy, professions would absolutely be the way to go. If you use that as a starting point, the development of the UI becomes easier, as one of the dimensions goes out the window.

(I just now realized you just said the exact same thing).
Last edited by Litcube; Apr 5, 2018 @ 8:59am
Gun_Shy Apr 9, 2018 @ 3:15am 
I like the professions idea a lot. With custom professions created by the player, and named whatever you want. It then becomes possible to edit entire sets of priorities on the fly, in addition to giving people hilarious professions such as "Puke Scraper" or "♥♥♥♥♥".
cstoneburner Apr 9, 2018 @ 9:58pm 
Player designed professions could be interesting, especially if savable. It would permit making some generic professions, like, say "invalid" for when you want the idiots to stay in their hopsital beds and then easily reassign their regular work once they are healed up. Putting the design in a seperate window is good, especially if it could be a floating one so you could look at it as the same time as the main assignments.

As an amusing bonus (maybe toggled by mod options?) it would be fun if the pawns primary profession was what was shown by default for pawn titles a la Rainbeau's Editiable Pawn Titles. It would hhave the advantage or reminding you want you have a given pawn set with.
StStep Apr 23, 2018 @ 6:29pm 
Oh yeah, I do like the professions idea. Since you're already working with time, what about bringing in some of the Restrict GUI? You could overlay the restrict scheule, or something similar, on your gnatt chart.

I personally give the same schedule to pretty much everyone but offset it for some, assuming nothing crazy is going on. You could make restrict schedules based off the time of the profession assignments. Or maybe choose one of a couple premade schedules that you can define similary to professions. And then you could offset them, so like create different work shifts by dragging someone forward/backward a couple of hours.
Casualgamer May 9, 2018 @ 1:41am 
Hi,

(Don't know where you're the more active here or on Github so I'm reposting this here)

I just saw your thread and I tried to do something... I kept as much as I could what already exist in the game, so here the first "draft"

https://user-images.githubusercontent.com/6094831/39788828-8d62cb58-532c-11e8-8caf-2a4a78ccc2f3.png

The picture feature a condensed main menu for professions that player will be able

- to name himself. He can > add > rename > delete
- Options tab feature shortcuts to: worktab (re-organized) > Schedule (will use Restrict menu features) > Assign.
- Workers: list of assigned pawn for that profession.

For now I only worked on the wortab "presentation". I will to do more tomorow.

Take care and thank you for your hard work.
Fellow Foe May 20, 2018 @ 7:35am 
I'd like to point out 3 things I'm missing for the work tab to be greater:
* ability to make a job temporarely higher priority, without fiddling around with the rest of the job priorities
* ability to change priorities on a group without overriding the subpriorities that are disabled
* ability to select multiple prirorities/groups and change the priorities of them (by steps)

I don't know if these hold any value to you, but I think these would be very good.

I would be also glad to help as I'm a programmer, but I'm not sure where to start :)
Casualgamer May 20, 2018 @ 9:10am 
Originally posted by Fellow Foe:
I would be also glad to help as I'm a programmer, but I'm not sure where to start :)

Here's a tutorial about how to make a mod for Rimworld: https://ludeon.com/forums/index.php?topic=33219.0

A lot of steps can be skipped now thanks to this tool: https://ludeon.com/forums/index.php?topic=39038.0
Last edited by Casualgamer; May 20, 2018 @ 9:11am
Fluffy  [developer] May 20, 2018 @ 4:31pm 
@Fellow Foe, bloodychaos; that'd be one way to help out, the full source is on GitHub (links in the description), feel free to make a pull request at any time ;).

That said, the second suggestion (changing group, keeping relative priorities of sub jobs intact) is something I intend to look at, and could be fairly easily implemented with a modifier key. The first should ideally be handled by some sort of save/load/preset mechanic - but I haven't had the time to (re-)implement that. The third is going to be quite tricky, probably more effort than it's worth (at least to me).

Casualgamer May 21, 2018 @ 2:01am 
Unfortunaly I don't know how to code, I just made a UI on photoshop in case you would be interested.
ζ͜͡ϙ> Jul 1, 2018 @ 3:30pm 
I like it the way it is, I think once you understand both WorkType and WorkGiver priority it works pretty well. I rarely even use priority 4 except for temporary settings for idle ♥♥♥♥♥. For the schedule system I had no issue other than it took me 2 mins to figure out how to use it.

One small addition I'd like to see (out of pure lazyness) is the ability to expand columns without holding CTRL when you click (i.e. with a small button - size doesn't matter). The reason being that I'm using Linux and I haven't set up my keyboard properly, so every time I press CTRL whatever the mouse was on loses focus (it's impossible to CTRL+click something).
Last edited by ζ͜͡ϙ>; Jul 1, 2018 @ 3:31pm
Fistandantillus7 Jul 20, 2018 @ 2:05pm 
Originally posted by Fellow Foe:
* ability to make a job temporarely higher priority, without fiddling around with the rest of the job priorities
* ability to change priorities on a group without overriding the subpriorities that are disabled
In the current setup I use the ability to increase/decrease the priority of a column quite a lot. The first jobs up to flick are all 1 and then everything else is 2-5 or blank. (They never get to 5 but it allows me to force them if I really need to; open containers for example). This allows me to, for example, change mining to a 1 temporarily to get something mined quickly without micromanaging too much. The thing is I only want to increase the priorities of pawns that have some reasonable level of mining skill. I would like the ability to 'lock' the cells I leave blank so they do not change when I change the entire column. Actually I would lock all of my cook's priorities not just the blank ones: food comes first!

Similarly, if I set everyone to haul and clean (as an example) between 6 and 8, I want to be able to 'lock' that in so that changing priorities only affects the other times of the day.

Many of the sub-job columns have associated additional skills that can be affected by traits. 'Plant harvest yield', for example, goes up with increased growing skill, but it can be positively or negatively affected by traits as well. Again in relation to the current grid, maybe a tool tip or colour could indicate ≥100%. Again here it would be helpful to 'lock' the harvest sub-column priority for my poor quality harvesters so that if I change the grow priority it is only the other sub-columns that change. Grow does not have many sub-columns but others do.
PIT_DEFENDER Oct 28, 2018 @ 6:59am 
Is there any chance profiles and color coding will come back to the mod as an option maybe ?? It really mad the game much easier for me ;p
Daniel_USA Feb 18, 2019 @ 10:11am 
is this project still being developed? it sounds like a really good idea.
< >
Showing 1-15 of 17 comments
Per page: 1530 50