I'm currently struggling with a player input / User interface issue I'm trying to fix and would like your feedback.

I'm working on a project where you manage a single resource towards various poles.

Think of it as trying to manage people to do different tasks:

'how many people should do task "a"'

'how many people should do task "b"'

'how many people should do task "c"'

...

Now, most games I've seen use multiple 1-dimension sliders and some form of a total.

Many of them will make it so that when you increase one slider, it will automatically substract from one of the others in such or such way.

I find this system to be suboptimal at best and irritating to use, but lack more efficient implementation to really substantiate it.

Since there are 6 different allocations in my game, I initially went for a sort of hexagon where you could just drag your allocation balance, but it was limited in that, if you would move towards B, you'd also inherently move closer to A and C, while moving away from D,E,F and my system really doesn't have much correlation by proximity.

I was wondering if you know of, or have thought about potential implementations to make manipulating such a system simpler and less irritating?

Edited by Orymus3, 05 May 2013 - 11:59 AM.

-=- My Articles-=-Getting Gones Done - Method and tools on how to start a hobby project and get it Done!

With 6 variables, I'd say the only workable option is sliders of some sort. The geometric method (i.e. your hexagon idea) requires, if all the variables are intended to be uncorrelated with one another, an (n-1)-dimensional figure for n variables, and there's not really a convenient and intuitive way to place an arbitrary point in a 5D space.

if you don't like the idea of other sliders automatically adjusting when you move one, consider instead making the sliders a bit more indirect: instead of directly controlling the resource allocation for each pole, they dictate the weight of each pole in determining the final allocation.

For example, if all six sliders have the same value, they all receive 1/6 of the total resources, regardless of whether all six are at 100% or at 10%. (i.e. the amount of resources devoted to each pole is equal to (total resources)*(that pole's slider value)/(the sum of all slider values).)

What ever choice you go with, make sure it includes the ability to lock a given value so you can toggle which ones you are actually changing at the time.

What about having the different tasks be variables that you can drag around and group in a tree structure. Have the root be your entire resource amount, and then be able to group your different tasks however you want in multiple levels to manage their ratios.

So say you have the 6 options, A: Military, BCE... as 'everything else'. (I have no idea what your tasks are)

R is your root pool, from R the player chooses to split between two nodes: A and BCDEF. The sliders adjust the split of the entire node above, leaving nothing more.

The player then chooses to split three ways, BE, CF, and D. each node gets a slider, and in this case BE and CF split again and get their final slider adjustments.

Dragging any value around in the tree should auto adjust the tree such that the amounts each.

So if I were to split 50:50 between A and BCDEF, A gets 50, BCDEF gets 50.

Then I split 15:20:15, BE gets 15, CF gets 20, D gets 15.

Later I change my mind and want to group D with A, so I drag D over to A's node. D joins A's node out of Root, and they split off into their respective leaf nodes. But since no values actually change on a simple move the split out of Root turns to 65:35, and AD splits to 50:15. I can then go back and adjust the Root split back to 50:50, which then auto adjusts the values in the sub trees based on their previous ratios.

This is the only way I can see any kind of improvement over "Moving one slider splits the difference among all other unlocked sliders" method that seems to be the common solution.

(I should patent this idea.)

Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.

Argh! I had tasks planned for today and now this interesting problem came up :/

Is it possible to make the variables dependent on each other?

You could perhaps group them into pairs, then one slider would be manipulating the proportion between two variables instead of one.

Is it integers or real values you are manipulating? Sliders work well for real values but for integers you could use some "add/remove" buttons.

My best suggestion is to use a "megaslider":

All values are stuffed into the same slider. The black box indicates how much stuff you have unused. When you slide any arrow, the value of that variable changedand the segment is getting changed proportionally. In the lower image the light blue arrow has been manipulated to the right. As a result, the purple arrow is pushed to the right and the black box is reduced.

It's clear that they all use the same resource pool.

You see the proportions of the values.

Problem is that if some of the values are supposed to be small and some large, it might lead the user into thinking that they should all be large. Example: if soldiers/priests/worker proportion is perhaps 40/2/5000, it will be poorly represented in this system.

if you don't like the idea of other sliders automatically adjusting when you move one, consider instead making the sliders a bit more indirect: instead of directly controlling the resource allocation for each pole, they dictate the weight of each pole in determining the final allocation.

For example, if all six sliders have the same value, they all receive 1/6 of the total resources, regardless of whether all six are at 100% or at 10%. (i.e. the amount of resources devoted to each pole is equal to (total resources)*(that pole's slider value)/(the sum of all slider values).)

This. I have seen the "other bars adjust as you click one" in the old games and I did not like it. The only one that is fine with me is the proportional/percentage system (you move one to the right and then you have to move all other to the left - this way you have 100% in the first one and 0% in others).

What about having the different tasks be variables that you can drag around and group in a tree structure. Have the root be your entire resource amount, and then be able to group your different tasks however you want in multiple levels to manage their ratios.

So say you have the 6 options, A: Military, BCE... as 'everything else'. (I have no idea what your tasks are)

R is your root pool, from R the player chooses to split between two nodes: A and BCDEF. The sliders adjust the split of the entire node above, leaving nothing more.

The player then chooses to split three ways, BE, CF, and D. each node gets a slider, and in this case BE and CF split again and get their final slider adjustments.

Dragging any value around in the tree should auto adjust the tree such that the amounts each.

So if I were to split 50:50 between A and BCDEF, A gets 50, BCDEF gets 50.

Then I split 15:20:15, BE gets 15, CF gets 20, D gets 15.

Later I change my mind and want to group D with A, so I drag D over to A's node. D joins A's node out of Root, and they split off into their respective leaf nodes. But since no values actually change on a simple move the split out of Root turns to 65:35, and AD splits to 50:15. I can then go back and adjust the Root split back to 50:50, which then auto adjusts the values in the sub trees based on their previous ratios.

*Brain needs image to understand*

I think I'm a visual type of person. Didn't quite get the tree structure from your idea (which also means I didn't understand the idea).

Is it possible to make the variables dependent on each other?
You could perhaps group them into pairs, then one slider would be manipulating the proportion between two variables instead of one.

They are really standalone items and are not related to one another. It's basically like saying, my city has 1000 population, 100 of which I want to work in healthcare, 200 of which I want to work in retail, 200 of which I want to work in schools, etc. They are all strictly different and shouldn't represent a binary choice (a or b) but a complex decision (a or b or c or d or e or f)

Is it integers or real values you are manipulating? Sliders work well for real values but for integers you could use some "add/remove" buttons.

I'm using integers (actual population count) but could represent them as proportions in %. That really doesn't matter so long as its user-friendly.

I've indeed toyed with the concept of various side-by-side boxes with their own +/- buttons. So far, this is the best looking system but its still very complex.

All values are stuffed into the same slider. The black box indicates how much stuff you have unused. When you slide any arrow, the value of that variable changedand the segment is getting changed proportionally. In the lower image the light blue arrow has been manipulated to the right. As a result, the purple arrow is pushed to the right and the black box is reduced.
It's clear that they all use the same resource pool.
You see the proportions of the values.
Problem is that if some of the values are supposed to be small and some large, it might lead the user into thinking that they should all be large. Example: if soldiers/priests/worker proportion is perhaps 40/2/5000, it will be poorly represented in this system.
You can attach nice icons on the arrows.

I had such a slider in mind as well. It is incredibly hard to be precise though, and its much harder for the user to determine what will happen (how can I make the blac box grow? as they'd be expecting that dragging section A will transfer to the section besides it (B)).

Still interesting though.

This. I have seen the "other bars adjust as you click one" in the old games and I did not like it. The only one that is fine with me is the proportional/percentage system (you move one to the right and then you have to move all other to the left - this way you have 100% in the first one and 0% in others).

How exactly does it work? Do you have any example I could check?

-=- My Articles-=-Getting Gones Done - Method and tools on how to start a hobby project and get it Done!

Drag stuff around, push nodes together to join them. Could also vary the size of the bubble based on how much you are allocating. Makes it easy to swap stuff around. In this example the player could use the left side of the tree for the 'fixed' values, and the right for ones they are adjusting. The actual amount allocated to a given task would stay fixed when moving the node around the tree, so you fiddle with numbers on the right, then when you are happy with one you toss it into the left node, and the computer calculates how much it was set to and adds that to the slider going to that node.

It could even be expanded to have a section above the Root for Fixed Values. If you only ever want X number going to a given Task, and this doesn't change if your root pool grows, then drag them up top. As more is added to the root it flows down to the lower nodes and adjusts all the ratios as needed. Again if you drag something out of the fixed values section to the lower part, then it wouldn't actually change the assigned numbers, just adjust the sliders as needed to keep everything the same.

Mipmap's slider could also work well, but I would want to be able to drag and drop the sections to reorder stuff. That way you can quickly adjust two values accurately when you are already at max resource usage. Moving units from the left most to the right most would be annoying otherwise, as you would have to adjust each value.

Another option could be a more visual option. Your options are then pools, and to change the value of one you click and drag different sized circles from one to another. They could auto sort based on different sizes, and would need to be played with to get good values that work well in game. Add two or three units to one task? Drag two or three small icons from one to the other. Major changes? Drag that 50% ball out of one. Maybe keep a center 'table' so you can drop a large value there and it splits into smaller ones. Double click on a large ball and it splits into smaller or something.

Not sure if that would really be more usable than just a text box, and the user directly enters changes.

Attached Thumbnails

Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.

This. I have seen the "other bars adjust as you click one" in the old games and I did not like it. The only one that is fine with me is the proportional/percentage system (you move one to the right and then you have to move all other to the left - this way you have 100% in the first one and 0% in others).

Well, you were looking for other options. I haven't actually tested the tree based sorting sliders, but in theory it works very well.

If done well so that everything flows smooth and fluid, then it lets you accurately complex ratios and quickly balance stuff in various ways.

Say I want a ratio of 2:3 for A:B, then I can drag them into their own subtree together and put them at 2:3. Any other adjustment anywhere else will always keep those two as 2:3, and adjust their values accordingly.

Many users may well choose to just use a full flat structure, setting the value for one and then locking it, but the option is there for players who want to use the more detailed tool.

Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.

I understand the use now. Indeed, consistency of ratios is something cleverly achieved by this system.

It isn't critical for my system though, and the added complexity would probably turn the players off. You see, with my system, this is an operation the players will need to tackle repeatedly for several different populations, therefore I want to keep a clean design. The reasoning behind leaving the sliders behind was to replace it with something simpler. A hierarchy, while in theory (and from a computer's perspective) simpler in design, is actually more complex to grasp with a single sweep, and I'm looking for a more simple graphic depiction of the system.

Perhaps I'm trying to achieve something that can't be conceived of in 2d

-=- My Articles-=-Getting Gones Done - Method and tools on how to start a hobby project and get it Done!

I didn't play much MOO2, and really can't remember how that worked. Can you post a description?

Personally I'm starting to think that maybe just going with some kind of system that is visually similar to a table with a pile of coins and cash may be your best bet for something more simple than the traditional slider system. Most people are fairly familiar with counting physical money. Have buttons to quickly 'combine' stacks in to nice, easy to see blocks of higher values, or drag them to a spot to split them up into piles of smaller coins.

Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.

Personally I'm starting to think that maybe just going with some kind of system that is visually similar to a table with a pile of coins and cash may be your best bet for something more simple than the traditional slider system. Most people are fairly familiar with counting physical money. Have buttons to quickly 'combine' stacks in to nice, easy to see blocks of higher values, or drag them to a spot to split them up into piles of smaller coins.

Clever.

Not sure what to replace coins with though, unless I divide a system much similar to the roman army:

Legion = > Cohort => Centuria => Legionnaire.

Merging some legionnaires would return a centuria, and so on and so forth (with different numbers obviously). I feel though that it could be taxing on the numbers I can tackle. I can't quite make a centuria and a half unless I allow it?

Perhaps sliders is the way to go afterall...

-=- My Articles-=-Getting Gones Done - Method and tools on how to start a hobby project and get it Done!

Each worker is its own token. Toss a bunch of them in the "Change Machine" and it spits back whatever combinations work best, like real world coinage/bills. Tokens to represent 1, 5, 10, 25, 100, 200, 500, 1000, etc, as needed.

Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.

Use an auto gather function. Pick up one token and shake it over the pile of that given group, and stuff automatically groups into a reasonable number of the various sized tokens.

Or just have it do it automatically without user involvement if loose tokens sit around too long. 10-15 seconds maybe.

Aim to have at least 2 of a given level of of token out before lumping them into the next highest token. So if you have 5 singles, they wouldn't auto join into a 5 pt token, but add two more and the 'extra' 5 singles merge into 1 5pt. That way you rarely have to manually break a stack if you just want to toss a few around.

Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.