Discoverable UI (scrolling, dir select)

Started by Simon, June 05, 2015, 03:46:46 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Simon

Hi folks,

while ranting about Neolemmix's undiscoverable keyboard controls, I have remembered the corresponding design gaps in Lix.

  • Definition (discoverable): A program function, or user interface element, is discoverable if new users will stumble upon it during their normal use of the program. Curiosity will lead them to trying the function, and observing how it works.
Any application with a graphical user interface needs this. My usual recommendation is to make a graphical button for the function, and inform about functionaliy or hotkeys in a tooltip.

More important functions should be more discoverable. You can get away with putting less important functions in drop-down menus or the like. What's outright bad, however, is to hide useful functionalities only on hotkeys. Triggering this function by accident will seem like a bug. If the user learns about this function at all, it's from word of mouth, or study of the documentation, which nobody wants to read.

vi can get away with its ton of undiscoverable hotkeys, because it's a text-based-interface editor, not one with a graphical interface.

Lix has these undiscoverable functions:

  • Right-click scrolling. Hold right mouse button (RMB), then move the mouse around to scroll. This is much faster and more precise than the scrolling at the screen edges. While RMB is held, the cursor shape gets four little arrows. But it's not 100 % obvious what those arrows mean, and many users don't press RMB at all.
  • Directional select. Hold a key to assign only to left-lookers, hold a different key to assign only to right-lookers. This makes singleplayer much nicer, and is absolutely critical in multiplayer.
Idea for RMB scrolling: When the user scrolls at the screen edges, shape the cursor into the four little arrows, too. This is a minor improvement, we probably need more.

Idea for dir select: This needs to be at least as prominent as the release-rate changers. Do we even need those? In multiplayer, it's forbidden anyway to change the rate. How many levels use that in singleplayer? I feel it's mainly panel clutter, and it's much less important than directional select. If necessary, I can try to fit both functions on the panel.

-- Simon

Nepster

Quote from: Simon on June 05, 2015, 03:46:46 PM
Idea for RMB scrolling: When the user scrolls at the screen edges, shape the cursor into the four little arrows, too. This is a minor improvement, we probably need more.
Not enough. I never pressed the RMB in the first place, so I never encountered the changed cursor.

Quote from: Simon on June 05, 2015, 03:46:46 PM
Idea for dir select: This needs to be at least as prominent as the release-rate changers. Do we even need those? In multiplayer, it's forbidden anyway to change the rate. How many levels use that in singleplayer? I feel it's mainly panel clutter, and it's much less important than directional select. If necessary, I can try to fit both functions on the panel.
I skimmed over Hopeless in the Community level pack and it seems that changing the RR at least helps in many levels. Apart from that, setting the RR to the minimum is very convenient at the end of a level.
So I would prefer to keep the possibility to change the RR, but one certainly can reduce the size of the buttons.

Simon

Thanks. Yeah, I feel too that something crispy is missing for the RMB scrolling.

With the release rate (spawn interval), I'm most concerned about whether it eases execution, or even is flat-out required for the solution. If you consider it useful here, then I'd rather leave it in.

If its only use were saving time, turbo-fast-forward >>> is often enough, even without minimal spawn interval = fastest release rate.

-- Simon

Proxima

Taking a quick glance through my own levels in the last three ratings, I found at least five where RR changes are an intimate part of the solution: Thomas the Climber, Changing of the Guards, Buridan's Lix, The Hotel in Hell, The Continuum Hypothesis.

ccexplore

#4
Quote from: Simon on June 05, 2015, 04:36:56 PMThanks. Yeah, I feel too that something crispy is missing for the RMB scrolling.

Your options are probably very limited here, aside from just explicitly teaching the user through a tutorial level.  The best I can think of is maybe when scrolling at the screen edges, display a "hold down right mouse button to pan around with mouse" or similar text (good luck fitting it in) at where we normally display the state of lemming under mouse cursor (eg. "1 Faller"), if no text is otherwise already displayed there.  Of course we are hoping the user actually notice that text which is rather optimistic (especially if scrolling via top edge).

I think this one may be okay to leave to the word-of-mouth, it is nowhere as game-changing as directional select, and it is unlikely to be accidentally triggered.  Unifying the mouse cursor between the two scrolling methods should suffice.

Quote from: Simon on June 05, 2015, 03:46:46 PMIdea for dir select: This needs to be at least as prominent as the release-rate changers. Do we even need those? In multiplayer, it's forbidden anyway to change the rate. How many levels use that in singleplayer? I feel it's mainly panel clutter, and it's much less important than directional select.
Quote from: Simon on June 05, 2015, 04:36:56 PMWith the release rate (spawn interval), I'm most concerned about whether it eases execution, or even is flat-out required for the solution. If you consider it useful here, then I'd rather leave it in.

If its only use were saving time, turbo-fast-forward >>> is often enough, even without minimal spawn interval = fastest release rate.

Wow, you must have gotten extremely divorced from reality singleplayer to even be talking like that. :lem-mindblown: Perhaps a reminder is in order: even amongst the official levels of ONML, there is one ("Flow Control") whose intended solution is all about fiddling with the release rate.  And don't you dare turn this into another culling discussion. :XD:

I'll grant you that in most levels you don't need that fine degree of control over the release rate, and there are probably ways to make the release rate UI more compact to make room for directional select in that display area.  Of course, it's worth keeping in mind that accessing directional select through UI buttons in that display area is hardly efficient for such a purportedly crucial feature, so once the user has set up hotkeys for directional select, the area taken up by the corresponding UI buttons will immediately become dead space.  Once again perhaps a tutorial would not be a bad way to address this feature?

ccexplore

Quote from: Clam (from IRC)<Clam> directional select and scrolling can't have buttons because they are keys you hold down while clicking in the main gameplay area

I think for directional select, I'm guessing the idea may be that there are UI buttons in the toolbar that you can click to turn the next skill assignment into a directional select even when no keys are held down.  (Or potentially even a toggle rather than a one-time effect.)  It is the only way I can see a UI button in the toolbar area supporting directional select, and there would be some obvious inefficiencies in using the feature that way, which is why I called out in my previous post that the user really needs the keyboard to get the full power of directional select, and once that happens it is superfluous to expose those as visible UI buttons.

Perhaps Simon has a different idea altogether?

RMB scrolling can also be exposed as a UI button in the toolbar area, but it will definitely be a bit awkward:  in order to avoid interfering with the scrolling once it is activated via the UI button, the program will need to set the mouse cursor back to the center of the screen, which can be a little jarring to the user (though there is little doubt they will immediately understanding what they just activated as soon as they start moving the mouse around).  You will also need a new way to exit this scrolling mode (since previously it is entirely based on the right mouse button being released, but now you can enter that mode without the RMB ever held down to begin with), most likely candidates being ESC or clicking with any mouse button (behaviors which now needs to be special-cased).

So yeah, a little problematic to be considered an option.  Which is why I said your options for RMB-scrolling discoverability will likely be very limited.

ccexplore

Sorry to triple-post, but quickly touching back to the mantra that started this topic in the first place:

Quote from: Simon on June 05, 2015, 03:24:04 PM[17:10] <SimonN> Mantra: for each function that you bind to a key, make an on-screen button with the same functionality, maybe give it a tooltip with the hotkey

There is of course a trade-off between doing this for discoverability, and cluttering up the screen with too many buttons.  For some games this works well because there aren't that many available actions to begin with, so screen clutter is not an issue.  For other games and many non-game programs, UI design patterns like cascading menus and popup dialogs work to only display relevant actions in the (often fairly specific) contexts for which the displayed actions are available, thereby mitigating clutter even though the total set of available actions is vast.  There is a different tradeoff there with efficiency (taking more clicks to get to certain actions), but typically this is acceptable for various reasons (eg. you don't need to perform certain actions very often, the actions don't need to be applied quickly in context of split-second reactions, etc.).

IRL games like Lix however, seem to be in the unique place where neither paradigm quite fits.  It seems you often end up having to think about how to cramp all these buttons into fairly limited screen estate.

Simon

#7
Hi, yes, you're welcome to make many posts in a row, each is valuable and appreciated much. 8-) Thanks.

Ideas for directonal-select buttons: Right, it's what you've suggested. I imagine the button to take one click, then either be active until it's deactivated, or be good for only one assignment. For more fine-grained and fast assignments, the user should learn the hotkeys, as usual. The dead-space problem you're suggesting is very real. (To compare, skill buttons never become dead space, since they show information.)

Thinking about removing modifiable spawin interval: The idea isn't as far-fetched as it sounds. L1 and ONML have Flow Control, which is a single level out of 220 to be designed entirelly around it, and the harder WAFD need it too. Killing only one level is acceptable for the greater good.

The critical opinion is how player-modifiable spawn interval helps execution, and people have reported 5 to 10 levels from the 240-level community pack where it's integral to the solution. When culture has grown over the design, the culture locks the design in place.

(To compare this with one-way arrows: I don't have one-way arrows either, because I deem them unnatural and weird to draw. That doesn't stir up opinions as much as culling the spawn interval. A few level ideas won't be possible, but the level design space remains wide open still. It's harder to take them out than not introducing them in the first place.)

Exact setting of spawn interval: I've taken this as a feature request. The spawn interval in-game buttons could be replaced by a single button. This pauses the game and opens a modal dialog (hehe) where the user can precisely set the spawn interval. Or something. But precise control is a must, if we want to keep the user-changable spawn interval at all.

Tutorials to introduce directional select: We have this in the batter tutorial, and we want to make a dedicated tutorial level at some time. The longer the tutorial session becomes, the fewer people will play through it all. OTOH, even if it's discoverable from the main UI, people might disregard it as hard-to-use via buttons, and not bother to learn it either.

Tutorial for right-click scrolling: This is new even to players who have played other Lemmings-like games. Those won't play through tutorials, but would need to know it still. The only alternative to tutorials seems to be aggressive advertizing for RMB-scrolling whenever the user scrolls a lot with the screen edges.

Button for right-click scrolling: Very interesting, could be doable. Let's see what ideas this spawns.

As last resort, tinker with edge scrolling: RMB scrolling and egde scrolling can be selected independently in the options menu. Per default, both are active. I want the user's instinct to lead them to an implemented scrolling method. I could make the edge-scrolling speed option faster by default, so RMB-scrolling becomes less of an improvement. Alternatively, I could disable edge scrolling by default, but I'd rather not do that.

Mantra about GUI design: Correct, hiding non-critical stuff in menus is normal, and the functions discussed in this thread are too time-critical for a menu. The hotkey/RMB is the correct trigger. The button would only be for discoverability. Of course, this leads to the question: If discoverability is the problem, not having the button per se, there is maybe a different solution. Excellent push into an important, fresh direction.

Anyway, thanks for your valuable input, also for the IRC discussion. I have had guests over in real life, I'd have participated more otherwise!

-- Simon

Nepster

#8
Quote from: Simon on June 06, 2015, 02:55:48 AM
The critical opinion is how player-modifiable spawn interval helps execution, and people have reported 5 to 10 levels from the 240-level community pack where it's integral to the solution. When culture has grown over the design, the culture locks the design in place.
After a closer look, the following levels require RR-changes:
S19, C19, C30, D10, D19, V2, V7, V28, V29, H4, H12, H25, H31, H34
(and perhaps some more Hopeless levels that I haven't solved yet)

There are quire a few more, where it helps (sometimes depending on your solution):
S21, Q11, Q19, Q31, Q37, C5, C14, C17, C23, C27, C37, D4, D6, D13, D25, V9, V10, V17, V21, V25, H2, H16

Quote from: Simon on June 06, 2015, 02:55:48 AM
To compare this with one-way arrows:...
But still there are several levels (e.g. Trading and Cooperation), where one-way-walls are created by specific terrain layouts. Other levels (e.g. Lix Cannon) had to be heavily modified to make up for the lack of one-way-walls. So there are ways to replace the function "one-way-wall" in the current version of Lix. But I see no similar replacement for the function "change RR".

geoo

I think any button for directional select and especially right click scrolling would be dead space.

In addition to tutorial levels, I'd propose to make use of these irritating tool tips to make these two functionalities discoverable.

If the cursor touches the border, display the tool tip about right-click scrolling. (You could make the edge scrolling agonizingly slow by default to give the user a better chance to read the hint. :P Either way the hint should be displayed even once you've reached the edge of the level and stopped scrolling, as long as the cursor is still touching the edge.)

If hovering over any lix (or maybe only if hovering over at least two lix, or a group containing lix facing both way if you want it to be a bit less in-your-face), display a hint about how to use directional force. This would make the tool tips even more irritating, but they are irritating enough as they are and anyone like me would disable them asap after knowing what everything in the game does. Why is the option to disable this still coupled to the hotkey display, btw? The meaning of a couple of menu buttons is something you learn after one or two sessions (and accordingly you might want to disable the tool tips thereafter), while the hotkeys are something that takes a lot longer to learn.


As for the spawn interval, I can see Simon's sentiments about culling it, it's not something intrinsic to the game idea and it's original use has become redundant due to super fast foward. But it's something that has grown through tradition, and now has levels making various interesting uses of it. At the same time, due to the sheer number of possibilities of changes before each spawning lix it opens up potential for very fiddly backroutes that are nigh impossible to check for. In most cases you could fix the SI, but what if a level requires you to set the SI to the minimum at some point? Similarly, levels designed around changing the SI often/to some value that is not min/max usually tend to require some fiddling to find the right numbers each time. That said, there are too many levels right now making use of it , so culling is not a sensible option anymore.

I do like the +/- controls together with double clicking for max/min, the problem to me right now is the precise implementation, in particular at least for me I can only increase/decease it in increments of 2, thus making it impossible to get odd spawn intervals in many levels just via the UI. I'd propose something like this: the longer you keep the button pressed, the faster it increments/decrements. That way you can still easily make precise changes, while at the same time not having to wait for ages to set the SI from e.g. 96 to 48.
I find having to set precise release rates is again some property that only esoteric/fiddly levels (or backroutes to regular levels) have and thus by design shouldn't be encouraged too much.

Simon

Thanks. I'll try to put it in the tooltips for now.

You're making a reasonable case against the buttons. Then, tutorial + tooltips seems to be the best we can do, other than fat in-your-face advertisements that obscure the main play area.

I will make two options: one to show tooltips, one to show skills on hotkeys. This was demanded a couple years ago already, I should have done it earlier.

-- Simon