Loading...
  OR  Zero-K Name:    Password:   

Suggestion: hotkeys and build menus

10 posts, 821 views
Post comment
Filter:    Player:  
sort
I have a few suggestions to improve hotkeys and build menus.

1. If one of the build tabs is clicked with the mouse, hotkeys to build things are not shown.



The hotkeys are only shown if the hotkey for the build tab is pressed (in this case, Z).



Hotkeys should be shown whether or not the build tab was clicked or accessed via hotkey.

2. Units that cannot build anything still show build tabs. If a build menu is blank, the build tab should not show up.



3. Units do not have hotkeys to build them, which they should have.



4. The Factory build menu has 2 rows of 6 factories to build. If instead it had 3 rows of 4 factories, the hotkeys would be much easier to reach.



EDIT: 5. The Units tab should also have an hotkey.
+7 / -0
#3 is just a question of default settings. I PRed making unit construction hotkeys default, and it led to a big argument (trust me, suggesting doing anything that StarCraft has done, especially prefacing with "that's RTS standard and the audience expects it", leads to drama). The setting is Settings/HUD Panels/Command Panel/Units Tab Hotkeys Require Meta, which defaults to true. That is, by default, you have to hold the spacebar to get unit hotkeys. This is one of the first settings I change on re-install.

As for the others,

#1 Good idea, how did I miss that?
#2 I asked AUrankAdminGoogleFrog about this and apparently it's a lot trickier than it sounds, but I think that's mostly due to the modular nature of the UI and how the build tabs eat space that would go to the main command panel window when they aren't there (another option in Settings/HUD Panels/Command Panel).
#4 IIRC the general idea with the hotkeys is to try to avoid using ZXCV within tabs. Apart from the Factories tab this is a complete failure, but I wouldn't be surprised if trying to keep at least that one tab from overriding ZXCV is enough reason to not bother.
+2 / -0
8 years ago
1. The QWER... keys could be needed for other functions if ZXCV is not pressed before. Maybe make it an option.
2. Ok. Maybe only make them more transparent and unclickable?
3. They do have hotkeys as CArankAdminShadowfury333 said. After I had tried it I disabled it again, because I need those keys to give orders (e.g. fight orders) to factories.
4. This would be possible, but then ZXCV could be used as 1st and 2nd key in a key combination which could cause more missclicks and putting the facs in the new positions would use more vertical screen space. I'd say it's not worth the effort.
+0 / -0
8 years ago
I'm glad to hear that many of these suggestions have been discussed before.

quote:
by default, you have to hold the spacebar to get unit hotkeys.

I see, I didn't know that. Good to know that this is already in the game.

quote:
the general idea with the hotkeys is to try to avoid using ZXCV within tabs. Apart from the Factories tab this is a complete failure, but I wouldn't be surprised if trying to keep at least that one tab from overriding ZXCV is enough reason to not bother.


I don't know why it is important to have one tab from overriding ZXCV if all of the other tabs already do. We may as well stay consistent and have all tabs override ZXCV if it makes sense.

quote:
Maybe only make them more transparent and unclickable?

This is a great compromise.

quote:
I disabled it again, because I need those keys to give orders (e.g. fight orders) to factories.

I don't know why you would have to disable it to give orders via hotkeys. If you are on the Order tab, hotkeys will give orders. If you are on the Units tab, hotkeys will build units.

One other thing I didn't mention is that the Units tab should also have a hotkey.
+0 / -0
8 years ago
Switching between Units tab and Orders tab with a mouse click needs way too much time. In earlier times it was possible by , and . keys. At that time I used .F to give a fight order to a fac. But it doesn't work anymore.
+0 / -0

8 years ago
How many orders do you give to your fac? I very rarely use this feature, and have never used hotkeys for it.

I just have a fac default behaviour and unit default behaviour.
+1 / -0


8 years ago
It sounds like you want to make fundamental changes to the way orders work. The current function of the menu is not consistent with all of your ideas. This is because actions are the fundamental objects of the menu, not buttons.

For our purposes lets say an action is something that attaches a behaviour to LMB. So when you click LMB something will happen (eg, queuing a constructor). Shift, Alt, Ctrl and Space are able to modify the behaviour of LMB as it is pressed. Hacky widgets can make any key modify click behaviour, such as Q for spam nanoframes, but they're messy. I wrote that widget 8 years ago and would do it better now. Finally, some types of actions directly apply an effect without passing through LMB. Some examples are the Self-D and Stop commands as well as all state toggles.

The structure of Spring gives every action the inbuilt ability to be bound to keys. Actions can be bound to combinations of keys, many different keys and you can have keys which toggle actions (so they cycle the behaviour of your mouse). Spring also allows widgets to trigger actions, which is how clicking on the Attack command in the menu makes your LMB attack.

Our ingame settings menu is structured to match the structure of Spring. Actions are the objects, which you can see by binding things through the menu or directly editing zk_keys.lua. There are some hardcoded contexts (such as ZX when placing structures) but no ability to create contexts. You can still do A to attack with the command menu disabled. Even disabling luaUI might still let you A to attack. There are actions which do not exist on the command menu. Basically, the default system of Spring leads to a command menu which is an alternate way of giving orders rather than list of available commands. Viewing the Order tab is not required to give orders that appear there. Currently the tab acts more as a reminder that commands exist and a way to access rare commands.


#1. The ZXCV tabs work by absorbing the keypresses before they reach the action handler. We've reached hacky territory because the grid layout is hardcoded (with a toggle for German keyboards). Every key from Q to N is absorbed by the menu. Ctrl, Shift, Alt and Space send you back to the order menu because you might be pressing Ctrl+C and would not want the C absorbed. I've implemented a naive way of activating hotkeys for tabs. You can see whether it works or whether it causes issues.


#2. The UI should not undergo small size changes depending on what you select. Also, Core Selector would then be left disconnected. The solution is to grey out the empty tabs. I have not received the PR for it yet though.


#3. An option for this is implemented but it conflicts with current hotkeys. Mainly, it means that you can no longer give Fight commands to your factory. Also, it disables Area Guard because that requires a keypress to activate. The Order tab exists but you should never need to select that tab while working with a factory.

Also, for my own hotkeys, I bound Priority to Q. I think Priority should be bound to something so this creates an additional problem. We can also consider binding Repeat by default.


#4. I like how the Factory tab avoids ZXCV and this tab is rarely needed in any case. If we are considering more redesigning then I would move factory to the end and bind it to B. Then Z can be something useful (such as idle worker).


#5. You should never be navigating to or from the Units tab. It also behaves differently to the other tabs, they are exited when an option is selected. Units is not. It could have a hotkey but it may be confusing and I think it would be a waste of space.
+0 / -0

8 years ago
quote:
#5. You should never be navigating to or from the Units tab

Athena.
+0 / -0

8 years ago
Shameless bump for CarRepairer's KeyboardMenu :

"Hotkey Mnemonics" :
http://zero-k.info/Forum/Thread/9810
Also :
http://zero-k.info/Forum/Post/68683#68683

Also, this thread, which is only 3 months old :
"Grid hotkeys (SnuggleBass)" :
http://zero-k.info/Forum/Thread/22140?postID=154113#154113

This might also be relevant :
"Use cases for "Wait", proposal to change default binding"
http://zero-k.info/Forum/Thread/11653?postID=119539
+0 / -0
The keyboard menu is too weird looking and specialized. For example:
  • State toggles are only visible while holding a modifier key.
  • There is a lot of unused space in each of the available screens.
  • There is no factory queue handling. To used factories you need an additional widget and this increases the amount of UI you need to learn.

Grid hotkeys are hard to implement and design. Also, I worry that frequent gaps in the command panel will look weird. The design is the hardest part though. There are 18 spots on the command panel and far more than 18 commands. Some sort of system is required to give some hotkeys a fixed location while allowing the rarer ones to move. What is a rare command though? Even with commands such as Load I want to be able to use a hotkey.

Wait was changed to Ctrl+W shortly after that thread.

What would be useful is for someone to design a complete hotkey layout. This would need to take everything into account. Piecemeal suggestions such as those in this thread always conflict with some other hotkey system so the suggestions, while locally good, don't end up going anywhere. For example: if you want grid keys for factory production then you have to solve the problem of the Fight hotkey. "Move it somewhere else" just sends the problem outside the current domain.

Edit: Oops I forgot, A is Fight.
+2 / -0