endless-sky / endless-sky

Space exploration, trading, and combat game.
https://endless-sky.github.io/
GNU General Public License v3.0
5.83k stars 1.03k forks source link

Scrolling in outfitter GUI scales poorly with lots of available items #1695

Closed ssokolow closed 7 years ago

ssokolow commented 8 years ago

The scrolling "select an item" UI used in the Outfitters and the Outfitter section of the mapping UI scales very poorly to lots of items. (This flaw becomes very apparent early in the game when you're likely to be buying local maps near constantly and they're at the bottom of the list)

At the very least, I'd suggest a two-click "select a category, then select an item" workflow instead but, ideally, I'd implement an accordion widget. (categories expand in-line and expanding one collapses any others.)

That eliminates the second click for a "back" button when going "next category" if the category is small or the player scrolled through and it also minimizes the potential for disorientation of the player is new to the UI.

(However, if you want to animate the category sliding open, make it a very fast animation with an arctan (slow-in, slow-out) speed curve to balance between the need to draw a connection between the items' "before" and "after" positions (especially important for new players) and the experienced players' desire to just zip through the UI.)

P.S. I apologize if this already exists in the issue tracker. I couldn't think of very many keywords to search for since I'm unsure what terminology you use for this UI element.

Amazinite commented 8 years ago

You can collapse categories by clicking them or hit the up arrow twice to skip to the bottom of the list of outfits/ships.

ssokolow commented 8 years ago

Neither of which are very discoverable without already suspecting their existence. (Especially given that it runs counter to established standards for how keyboard shortcuts in list widgets work. Pressing "Up" twice should move the selection two entries up the list without wrap-around, dragging the viewport along for the ride as necessary. It's "End" that would select the bottom item and render it visible.)

...and, unless it remembers, the collapsing is of very limited utility unless everything starts collapsed. (Even then, it makes much more sense to start everything collapsed, not remember changes to individual sections, and provide an "Expand/Collapse All" toggle for people who want to scroll through everything.)

Amazinite commented 8 years ago

On the topic of a collapse all button or having them default to collapsed: #1231 and #1651.

ssokolow commented 8 years ago

In other words, you're saying that I should focus on encouraging the most discoverable and comfortable way to implement #1651 (eg. remembering selected "expand/collapse all" state as default) and close this?

Amazinite commented 8 years ago

If you think that would resolve this issue then go ahead, but I'm no final voice.

ssokolow commented 8 years ago

Well, given that expand/collapse already exists, I'll probably at least want to close this and open a new issue more accurately focused on the actual problem.

Either way, I'm feeling a little dopey right now (adjusting my sleep cycle), so I'll want to wait until I'm more alert to make the decision.

ssokolow commented 8 years ago

Sorry for dropping out of sight. I got hit by a really nasty cold that's still refusing to just give up and go away. (And, for the first week, I couldn't really think very well.)

Having thought about it, I think I'll leave this open so the problematic end-result remains the focus, rather than possibly leading to a "TODO list is checked off, but the focus drifted along the way and the problem didn't actually get solved" situation.

endless-sky commented 7 years ago

The outfitter and shipyard now have expand / collapse triangles next to the category names. And, they remember what was collapsed the last time they were open, so the categories don't just re-expand if you leave the outfitter. That's enough to make navigating the list pretty easy.

endless-sky commented 7 years ago

Closing this because 0.9.5 is released now.