Author Topic: Context Menu usability  (Read 2397 times)

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Context Menu usability
« on: October 13, 2010, 09:17:13 am »
Ok, so we've started reviving the context menus, which were notoriously hard to use in the SlimDX versions.  I'm trying to do better this time ;)  Anyway, a few points of information, and a few questions for y'all strewn throughout.

---

Mouse-wise it's pretty similar, the main difference now is that we have an actual key-binding system with multiple input contexts.  This allows both:

- Providing functions that are not bound by default.  So if you really want a key for jumping straight from no-context-menu to the Special-Move context menu, you can do that without our having to carve room out of the default bindings.  For that matter, if you really want to bind "Open Context Menu" to the space bar (no mouse click involved), you jolly well can ;)
- "Re-purposing" existing keys when a specific context menu is showing.  So I can bind the number keys (along the top of the keyboard) to the buttons in a context menu, allowing navigation/usage without the mouse.  Normally those are bound to control group selection, etc.  If you don't like those bindings you can change them, of course.

Is the keyboard-navigation useful?  I personally find it a lot faster but I'm one of those people who doesn't think the mouse should be necessary except to specify a point in a large coordinate system ;)

---

Internally, the GUI system in the Unity versions is much easier to work with for me than the SlimDX stuff.  Probably because I wrote most of the GUI system in the Unity versions ;)  Anyway, one upshot of this is the "hold forward-slash while mousing over a context menu button to get an explanatory tooltip" function.  I think that could be pretty helpful when plowing through some of my crazier advanced menus.

Is the context-contextual (heh) help... well, helpful?

---

To Radial or not to Radial:

A number of players have asked for the context menus to use a radial layout.  As Chris and I have said, this works great for menus that are both never-more-than-X-items and where each item has at least a half-way-intuitive iconic representation.  That said, it wouldn't be that hard for me to have an experimental option where finite-button-count menus lay the buttons (exactly as they look now, text, not icons) out in a roughly circular pattern (with the mouse cursor at the center, if there's room).  But it strikes me that that would be significantly inferior to a straight list for the text-labelled buttons.  Would there be any point?

Potentially, at some point, I could look at doing a context-menu-based alternate way of selecting buildings to place (turrets and the like), so you could type something like Alt, B, C, C to "load" the colony ship into the mouse cursor just like you had selected a command-station/mobile-builder, clicked on the Const tab, and clicked on the colony ship icon.  Could probably even have a context menu item for actually placing the unit at the cursor, but that's another tale.  Anyway, for the context menus that are showing the units you can build, it could lay those out radially since they're already icons.  Would that be worthwhile?

Anyway, this stuff would have to be post-4.0 at this point.

---

Anything else?  We don't have time right now for a lot of crazy new stuff, but I do really want to try to make these context menus usable rather than the forum-whipping-boy-of-inaccessible-interface-elements ;)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Context Menu usability
« Reply #1 on: October 13, 2010, 10:52:08 am »
1. It should always make a button click noise (or otherwise appropriate) as soon as I click a button (regardless of how long it takes for the order to be given).

2. The default behavior on a button should always be that the context menu disappears immediately after one of those buttons in it is clicked. Having it hang around open should be the exception, not the rule, and probably only if shift (or something) is held down. That's more consistent with the rest of the GUI, and windows/Mac/Linux.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Context Menu usability
« Reply #2 on: October 13, 2010, 11:10:49 am »
1. It should always make a button click noise (or otherwise appropriate) as soon as I click a button (regardless of how long it takes for the order to be given).
Yea, I'll take a look at that.  I always play with sound off so I keep forgetting about that.

Quote
2. The default behavior on a button should always be that the context menu disappears immediately after one of those buttons in it is clicked. Having it hang around open should be the exception, not the rule, and probably only if shift (or something) is held down. That's more consistent with the rest of the GUI, and windows/Mac/Linux.
We keep coming back to this ;) I've made an effort in this implementation to have it try-to-auto-close (it fails if the suppress-auto-close button, default LeftShift, is being held) whenever actually issuing an order, but as far as the exception vs. rule let's go through what we have:

Unit Commands Menu
* Go To Special Move Menu I assume that navigation buttons should switch to the new menu and not close the window, that would kind of defeat the purpose, no?
* Stop This is calling try-auto-close.
* Set Auto Explore Ditto.
* Set Auto Gather Knowledge Ditto.

Special Move Menu
* Set Destination All this does is enable an alternate interpretation of external left clicks to set the destination point of the move order.  If it auto-closed it would be useless.
* Group Move This is just a toggle for setting up the configuration of the move order.  What point is there in it auto-closing?
* Formation Move Ditto.
* (stance toggle) Ditto.
* Queued Move Ditto.
* Execute This is calling try-auto-close.
* Catch Right Clicks This is another enables-alternate-interpretation-of-external-mouse-events thing.
* Remember Modes This is another configuration toggle, though it's a configuration of the menu rather than the order.

Special Unload Menu
It doesn't have a static button set, but instead has one button with the total number of units and one button for each distinct type.  Clicking a button will unload one ship of the type (or any ship in the case of the first button), and this can be modified by a few different keys for unloading 10, 50, or all.  Personally I prefer it not auto close that since I may need to unload a bunch of stuff in sequence and I don't like having to glue a hand to LeftShift (even held down, keys sometimes shift out of pressed-down mode very briefly just due to slight finger movement).  But if you'd like I could make that auto-close unless the suppression key is held.

Anyway, that's what I mean about the whole exception vs. rule thing.  It really isn't, with the functions that are there.  When looking at the full set of other menus we had in the SlimDX version it was even more this way, with more navigation buttons on the Unit Commands menu, and more configure-and-then-execute menus beneath it.

That said, I will certainly try to make sure that the actual "I'm actually making something happen" buttons are auto-close.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Context Menu usability
« Reply #3 on: October 13, 2010, 11:31:23 am »
All sounds good.  My gripe was that in the last release (not 3.710, which I've not had a chance to try the context menus in yet, admittedly), I was sending some engineers across the planet and then doing the context menu to stop them, and it was really unresponsive feeling because of the two issues noted above.  Sounds like you've got the right setup for all this, though, so it's just a matter of making sure it all works and doesn't wait for command execution in order to close.  As that would also cause it to feel sluggish.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Context Menu usability
« Reply #4 on: October 13, 2010, 11:35:03 am »
so it's just a matter of making sure it all works and doesn't wait for command execution in order to close
Ah, gotcha.  Yea, I can have the buttons check for auto-close right on click, though in this case it will require embedding the "ShouldTryToAutoCloseContextMenu" flag (or its negation) into the InputKeyBinding object for the corresponding KeyBind, since those context menu buttons don't actually use delegates and I don't have free control on a per-button level.  It's much more efficient to just fire the KeyBind, but it means that all behavior has to be inferrable from it.  Anyway, it should work fine :)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Context Menu usability
« Reply #5 on: October 13, 2010, 11:36:13 am »
Cool. :)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Context Menu usability
« Reply #6 on: October 13, 2010, 03:38:33 pm »
There's another issue with the auto-close-immediately-and-don't-wait-for-the-actual-execution: sometimes the execution doesn't work, or does nothing, and sometimes this means that the window should stay open.  I guess I could just have it re-show in that case, though I guess for now I'll just make it auto-close regardless of the actual result of the operation.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Context Menu usability
« Reply #7 on: October 13, 2010, 03:52:27 pm »
Yeah, making it re-show would be good in the long term, but in the short-term we don't want it to feel laggy.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!