Hotkeys for Movements / Mouse Interaction
Moderator: Forum Moderators
Forum rules
Before posting a new idea, you must read the following:
Before posting a new idea, you must read the following:
Re: Hotkeys for Movements / Mouse Interaction
just my quick 2 cents, without beeing able to follow every point in detail:
I find the idea of having hints as shortcuts for interesting hexes interesting
but
as with shortcuts in other programs they should be purely optional. For people not able to 'understand' them or simply too lazy to think about them, a simple navigation with 6 buttons (or 4 as I described above) each moving the selection one hex further should be possible as well. Keeping a key pressed should work the same as with text (that is: "ttttttttteeeeeeeeeexxxxxxxxxxtttttttt").
A simple boost could be reached if additionally pressing CTRL would move the selection e.g. 4 hexes each step.
I find the idea of having hints as shortcuts for interesting hexes interesting
but
as with shortcuts in other programs they should be purely optional. For people not able to 'understand' them or simply too lazy to think about them, a simple navigation with 6 buttons (or 4 as I described above) each moving the selection one hex further should be possible as well. Keeping a key pressed should work the same as with text (that is: "ttttttttteeeeeeeeeexxxxxxxxxxtttttttt").
A simple boost could be reached if additionally pressing CTRL would move the selection e.g. 4 hexes each step.
Last edited by bernd on June 1st, 2019, 5:54 pm, edited 1 time in total.
Re: Hotkeys for Movements / Mouse Interaction
Implementing two keyboard features, will increase work load for volunteers that will do this. I’m not sure it can work, without sacrificing the other feature.
Well, lets brainstorm ideas until we find a greater idea .
I think we have the same suggestion? I modified it to select additional 6 more tiles when moving.
Why do we need boost?
It could probably work, as accelerated speed can increase speed when
Shift
key is pressed.Arrow keys (keyboard), can scroll the map and it’s speed can be improved further by adjusting the default scroll speed.
Let’s try to flesh out your idea, it seems interesting.
Re: Hotkeys for Movements / Mouse Interaction
Well it's still the one I started this thread with:
To explain the "focused" hex: Imagine you are working on an Excel sheet and have just typed a word in cell [B2]. Now you want to type a word into cell [F5]. You could either click the cell [F5], or if you would want to use the keyboard press arrow keys repeatedly (4*right and 3*down).bernd wrote: ↑January 17th, 2018, 8:05 pm So here is my dream:
Customizable hotkeys for moving the "focused" (clicked) hex on the map and for simulating left-click and right-click (e.g. "primary action" and "secondary action").
As these are by far the most common interactions it would increase the usability vastly.
If moving in 6 directions would be supported defaults could be QWEASD for example.
But using the arrow keys or others for 4 direction movement should not be a problem either, simply by alternating north/south at sideward movement.
The same goes for wesnoth: If a unit in hex X wants to attack a unit in hex Y, either do it with the mouse or navigate via keyboard (as I said, either arrow keys, WASD or if you prefer full 6 directions e.g. QWEASD):
- navigate to hex X
- press (e.g.) Enter to simulate left click
- navigate to hex Y
- press (e.g.) CTRL+Enter to simulate right click
Regarding boost:
When I work in a text I use the arrow keys to navigate letters. If I want to navigate long distances I use "shortcuts" like HOME, END, CTRL + <arrow key> to speed up navigation with larger steps, then use normal arrow keys to reach my actual destination.
Re: Hotkeys for Movements / Mouse Interaction
To clarify, it doesn’t control the mouse pointer but it allows you to select tiles, without a mouse?bernd wrote: ↑May 15th, 2019, 8:12 pm To explain the "focused" hex: Imagine you are working on an Excel sheet and have just typed a word in cell [B2]. Now you want to type a word into cell [F5]. You could either click the cell [F5], or if you would want to use the keyboard press arrow keys repeatedly (4*right and 3*down).
From what I understand, focused hex works like a guided aiming device, that allows you to select left+right clicks?
Focused hex can select only one tile at a time? (based on excel)
Can we add, additional moving "focused group" tiles to select?
Is this for selecting unit/tile?
I think left click(
Enter
), could work as well if it’s for attacking units.Can we select any other hotkey besides
Enter
?If I understood correctly,
Ctrl
works as a switch for right clicks?Can we customize right click(
Ctrl
), switch depending on the player?I’m not sure if we would need other options besides "
Ctrl
+ <arrow key>
" to adjust speed.Unless you play user made campaigns, large maps for mainline campaigns, rarely appear.
I have some questions for attacking units.
I think you need 2-4 key strokes to attack another unit.
1. Postion focused tile to select a unit.
2. Assuming it "holds" key stroke and you can reach this unit in your active turn, you have to position focused tile to select an enemy unit.
3. Attack dialog appears, and you can attack or select histogram.
Based on the things I mentioned above, how can we improve or shorten the process of attacking another unit?
If there’s something that needs clarification or questions, feel free to ask!
Re: Hotkeys for Movements / Mouse Interaction
yes * 3Mawmoocn wrote: ↑May 16th, 2019, 12:39 am To clarify, it doesn’t control the mouse pointer but it allows you to select tiles, without a mouse?
From what I understand, focused hex works like a guided aiming device, that allows you to select left+right clicks?
Focused hex can select only one tile at a time? (based on excel)
my usability-sense screams "no", I fear this will make it too complicated to the average user - at least if he sees the other hexes of the "focused group" all the time.
If it would be purely optional, like visible only if a special key is pressed, I think it would be no problem for the average user and the pro had another option.
yes
you're surely right (I have to admit this was only a guess, since I hadn't time for ages to play)
I fear I don't understand you here. My idea would be to have customizable hotkeys for simulating left-click and right-click. I guess <ENTER> would be an appropriate default for the former, but the user should be able to choose any other key
I would implement a customizable key(-combo) for the right click and no customizable switch (more flexible as the first includes the second)
your're right, HOME and END make little sense here. I just wanted to mention what I use in textprograms.
I fear you even need more, maybe about 10? More exactly:
[Distance current hex to attackers hex] + [Distance attackers hex to attacked hex] + 2
I don' think this is a big issue, as navigation with keyboard is fast, and you can keep a key pressed for a time to 'save' strokes.
(try navigating in excel)
But if you would like to speed things up, you could use some sort of "selection mode" where the "focused hex" jumps between your units roughly in the pointed direction (here 6 directions would be handy). Together with the same for some "attacking mode", jumping between enemies, this could be really handy.
E.g.:
- press key to go to nearest own unit
- press special key + direction to jump to nearest hex of same kind (own unit) in this direction
- press key to select hex
- in a short menu select "attack" between other options --> automatically jump too nearest enemy unit
- press special key + direction to jump to nearest hex of same kind (enemy unit) in this direction
- press key to execute action "attack"
Last edited by bernd on May 17th, 2019, 2:55 pm, edited 1 time in total.
Re: Hotkeys for Movements / Mouse Interaction
I’m imagining it’ll look something similar to this:bernd wrote: ↑May 16th, 2019, 5:34 pm my usability-sense screams "no", I fear this will make it to complicated to the average user - at least if he sees the other hexes of the "focused group" all the time.
If it would be purely optional, like visible only if a special key is pressed, I think it would be no problem for the average user and the pro had another option.
I thought
Enter
could be replaced by S
hotkey.Real reason? I’m lazy to aim focused hex correctly , well I didn’t thought about that.
This is what I was thinking. Thank you for confirming .
I feel the same but I think there’s large room for improvement.
No thanks, that’s going to be long without shortcuts .
Can you explain what selection mode does? It feels similar to hints, but I might be wrong about this.bernd wrote: ↑May 16th, 2019, 5:34 pm But if you would like to speed things up, you could use some sort of "selection mode" where the "focused hex" jumps between your units roughly in the pointed direction (here 6 directions would be handy). Together with the same for some "attacking mode", jumping between enemies, this could be really handy.
I guess here’s the possible breakdown if applied inside the game.bernd wrote: ↑May 16th, 2019, 5:34 pm E.g.:
- press key to go to nearest own unit
- press special key + direction to jump to nearest hex of same kind (own unit) in this direction
- press key to select hex
- in a short menu select "attack" between other options --> automatically jump too nearest enemy unit
- press special key + direction to jump to nearest hex of same kind (enemy unit) in this direction
- press key to execute action "attack"
1. Map scroll using
<arrow keys>
to find units, and use next unit (hotkey n
) as alternative.2. Select units with
Enter
or other hotkey. Use <arrow keys>
to move the selected unit?3. Position focused tile, and press
Enter
to place the unit.4. Assuming you want to attack, press
Ctrl
+Enter
to emulate right click (context menu), select options that can attack melee/range.Not sure with selecting nearest enemy, as positioning is very important for Wesnoth.
5. Please explain how it works? I assume you need to repeat steps 1-4 to be able to do 5?
6. Step 4 would probably shorten it?
I think step 4 could have hotkeys specifically for attacking?
Re: Hotkeys for Movements / Mouse Interaction
I understand your idea, but I would definately make the display of the golden hexes optional!
Additionally I personally would use QWEASD as keys, but if they are customizable, this should be no issue.
Nevertheless I also still like the idea of navigation with the arrow keys (with left, right alternating), but this could of course co-exist.
Regarding the breakdown, what I meant was more:
(marked bold what differs to your post)
1. Map scroll using
<arrow keys>
to find units or use next unit hotkey n
as alternative.2. press new hotkey to go into 'selection mode'. This could be displayed e.g. via a multi arrow over the hex. Next press of direction key (arrow or other variant like QWEASD) automatically goes to the nearest hex of same kind in this direction (here: own unit).
3. Select units with
Enter
or other hotkey.4. Press hotkey to emulate right click and open a small menu beside the hex. Select "attack" there.
5. Like 2: Press the same hotkey as above to go into 'selection mode'. Next press of direction key automatically goes to the nearest hex of same kind in this direction (here: enemy unit).
6. Press some key to confirm the selection and start the attack.
dont know what you mean with the following though:
Regarding the mentioned "Selection mode" an example with your picture above:
Lets assume the focused hex is on "Malin Keshar" and the hotkey for "selection mode" is x.
- press x: the multi arrow appears to display active "selection mode"
- press north-east: the focused hex jumps to the guy in the fort near the river
- press south-east: the focused hex jumps to the guy in the village
- press arrow-key left: the focused hex jumps back to Malin Keshar
The same mechanism works when attacking a unit. Of course if you care about the exact hex where you attack from, you probably would have to:
- navigate to the enemy via "selection mode"
- cancel selection mode via some button (every button other than a direction should work)
- then navigate with one stroke to the hex you want to attack from
- press hotkey for left-click
Enter
- <wait for the attacker to reach the selected hex>
- navigate to the enemy again and left-click to attack (or use a hotkey to execute the formerly selected attack action)
or maybe this could be made even easier:
- navigate to the enemy via "selection mode"
- hold some hotkey and press the direction from where you like to attack
- press hotkey for left-click
Enter
Re: Hotkeys for Movements / Mouse Interaction
This thread is getting a bit long and twisty, maybe let's start a wiki page that summarizes the different ideas?
I only skimmed the last page but I like bernd's idea of having not only a key for "move one hex in <direction>" but also for "move 4 hexes in <direction>". That's kinda like emacs' Ctrl+U prefix. (Emacs is a text editor, in emacs Ctrl+K deletes one line, and Ctrl+U Ctrl+K deletes 4 lines)
I only skimmed the last page but I like bernd's idea of having not only a key for "move one hex in <direction>" but also for "move 4 hexes in <direction>". That's kinda like emacs' Ctrl+U prefix. (Emacs is a text editor, in emacs Ctrl+K deletes one line, and Ctrl+U Ctrl+K deletes 4 lines)
Re: Hotkeys for Movements / Mouse Interaction
I agree that it could be optional.
Well the default hotkeys should depend on the current player’s keyboard.
Reference
https://wiki.wesnoth.org/HotKeysSystem#Future_plans
What of you mean by same kind? Is it tile, max movement, or something else?
It opens an attack dialog?
I misunderstood some things, I apologize.
I assumed, you need to move focused hex tile at a correct position, before you could select any unit.
Quoting how hint generation works?bernd wrote: ↑May 17th, 2019, 3:33 pm Lets assume the focused hex is on "Malin Keshar" and the hotkey for "selection mode" is x.
- press x: the multi arrow appears to display active "selection mode"
- press north-east: the focused hex jumps to the guy in the fort near the river
- press south-east: the focused hex jumps to the guy in the village
- press arrow-key left: the focused hex jumps back to Malin Keshar
Please tell me if I’m wrong, I assume, "selection mode" is similar, to the one I quoted above?
Too early? it’s probably in a defining phase...
Re: Hotkeys for Movements / Mouse Interaction
I'm not asking for a detailed behavior specification of one idea or another. I'm just suggesting to create an index of the various ideas floated so far, to make it easier to people who haven't read the entire thread to understand what the different ideas on the table are.
Re: Hotkeys for Movements / Mouse Interaction
I think most suggestions have a common point.
Adding a wiki for this idea, might not be a bad idea, since there are slight deviation from each idea.
In all honesty, I'm not sure really...
Adding a wiki for this idea, might not be a bad idea, since there are slight deviation from each idea.
In all honesty, I'm not sure really...
Re: Hotkeys for Movements / Mouse Interaction
A suggestion that's mainly for players who are using a mouse, but might be simple enough to be worth combining with another of the methods in this thread:
I want to right-click on a hex, and be able to choose "generally move units towards this". Then use a hotkey to cycle through my units, in the way that the 'n' hotkey currently does, for each unit see the move that would move it closest to the target hex this turn, and then have the choice of either to pressing a different hotkey to make that move, or pressing the original hotkey to continue cycling through units. The purpose of this would be to move a group of units that are no longer at the battlefront (went to capture villages, etc), where it's just a simple move without thought about attackers.
I want to right-click on a hex, and be able to choose "generally move units towards this". Then use a hotkey to cycle through my units, in the way that the 'n' hotkey currently does, for each unit see the move that would move it closest to the target hex this turn, and then have the choice of either to pressing a different hotkey to make that move, or pressing the original hotkey to continue cycling through units. The purpose of this would be to move a group of units that are no longer at the battlefront (went to capture villages, etc), where it's just a simple move without thought about attackers.
Re: Hotkeys for Movements / Mouse Interaction
@octalot How about C&C style lasso selection? Click-and-drag the mouse to draw a lasso or a rectangle around multiple units, then click a hex to schedule multi-turn moves for all of those units towards that hex. Or another option, give a straggler unit a friendly unit as its go-to destination, for example, tell an Elvish Scout to "Go toward Konrad". But the easiest option is probably to make it so after pressing
n
a few times you can press Enter to simulate a left click on that unit.Re: Hotkeys for Movements / Mouse Interaction
So I read some of the comment regarding hint based UI.
From what I read there are good ideas, but it needs a bit more polish.
Without going to possible advance use of hint, hint could be an easy way to emulate a mouse and give the keyboard a way to 'jump' from one tile to another.
In that regard I see 4 scenarii for hint interaction:
1) Cursor movement
2) Cursor movement with click
3) Cursor movement with right-click
4) Cursor movement for general UI interaction
That mean, only 4 shortcuts to implement, without going into more advanced possible use case.
For illustration, I'll take the following shortcut :
1)
2)
3)
4)
When invoking the shortcut for use case 1-3, every cell of the visible board should be hinted.
The semantic of the hint is what would make it powerful.
Without any semantic, the tiles, could simply be labelled from top left to bottom right alphabetically.
I'll take my current tile resolution as an example. At normal zoom, I can see from tile [1,1] to tile [22,10]. That means that I currently see 220 tiles. Those tiles could simply be labelled from
Alternatively, you could also restrict the alphabet used for the hint. Using only the middle row of the keyboard, we have a 10-letter alphabet for the hint. So it would only need 3 letters to hint a tile.
However, a bit of semantic is better. Here is my idea.
a) If there are no unit on a tile, a hint should consist of the terrain type first letter, followed by terrain second type first letter, followed by one or more letter of the alphabet depending on the visible tiles with the same terrain type and the other hints already having the same prefix.
As an example:
- the first tile of forest flat from top left would be labelled
- the 10th tile of mountain from top left would be labelled
With the full shortcut above, it would give
Alternatively, you could also have 2 hints for one tile if there is multiple terrain type on a tile.
b) if there is a unit on a tile, a hint should consist of the unit type followed by the first letter of the unit name, followed by one or more letter of the alphabet, depending on the other existing hint with the same prefix.
So a 'footpad' named 'Faren', would be hinted
Now, to move footpad Faren to the mountain and knight Arvith to the forest, we would do :
But maybe we are not sure that the path chosen to go to the forest is really great for knight Arvith, so instead you could do :
Note that the hint should take into account the localisation in which the game is run. For example, in french, a 'knight' is named 'chevalier', thus the hint should instead be
Finally, for the hint on UI element, it could be used to show the existing tooltip spawn when the mouse hover over some UI element. That means every UI element with a tooltip should have a hint generated when pressing the shortcut
Given that the UI is not bound to change a lot, the hint should be similar from one invocation to the other.
From what I read there are good ideas, but it needs a bit more polish.
Without going to possible advance use of hint, hint could be an easy way to emulate a mouse and give the keyboard a way to 'jump' from one tile to another.
In that regard I see 4 scenarii for hint interaction:
1) Cursor movement
2) Cursor movement with click
3) Cursor movement with right-click
4) Cursor movement for general UI interaction
That mean, only 4 shortcuts to implement, without going into more advanced possible use case.
For illustration, I'll take the following shortcut :
1)
cm
2)
cc
3)
cr
4)
cu
When invoking the shortcut for use case 1-3, every cell of the visible board should be hinted.
The semantic of the hint is what would make it powerful.
Without any semantic, the tiles, could simply be labelled from top left to bottom right alphabetically.
I'll take my current tile resolution as an example. At normal zoom, I can see from tile [1,1] to tile [22,10]. That means that I currently see 220 tiles. Those tiles could simply be labelled from
'aa'
to 'hl'
.Alternatively, you could also restrict the alphabet used for the hint. Using only the middle row of the keyboard, we have a 10-letter alphabet for the hint. So it would only need 3 letters to hint a tile.
However, a bit of semantic is better. Here is my idea.
a) If there are no unit on a tile, a hint should consist of the terrain type first letter, followed by terrain second type first letter, followed by one or more letter of the alphabet depending on the visible tiles with the same terrain type and the other hints already having the same prefix.
As an example:
- the first tile of forest flat from top left would be labelled
'ffa'
- the 10th tile of mountain from top left would be labelled
'mj'
With the full shortcut above, it would give
'cmffa'
to hover over the forest tile, and 'crmj'
to emulate a right-click on the mountain tile.Alternatively, you could also have 2 hints for one tile if there is multiple terrain type on a tile.
b) if there is a unit on a tile, a hint should consist of the unit type followed by the first letter of the unit name, followed by one or more letter of the alphabet, depending on the other existing hint with the same prefix.
So a 'footpad' named 'Faren', would be hinted
'ff'
, while a a 'knight' named Arvith would be hinted 'ka'
. Note that there could be a collision between our forest tile and our footpad named faren, that's why we should add some letter to this hint. So for our example, the footpad named Faren would be hinted 'ffb'
.Now, to move footpad Faren to the mountain and knight Arvith to the forest, we would do :
'ccffb ccmj'
then 'ccka ccffa'
But maybe we are not sure that the path chosen to go to the forest is really great for knight Arvith, so instead you could do :
'ccka cmffa'
to hover the mouse over the forest tile after having selected knight Arvith, and if you are satisfy with the path chosen, you could then simply press enter
(for example) to simulate a left-click.Note that the hint should take into account the localisation in which the game is run. For example, in french, a 'knight' is named 'chevalier', thus the hint should instead be
ca
for 'Chevalier Arvith'.Finally, for the hint on UI element, it could be used to show the existing tooltip spawn when the mouse hover over some UI element. That means every UI element with a tooltip should have a hint generated when pressing the shortcut
cu
Given that the UI is not bound to change a lot, the hint should be similar from one invocation to the other.
'n'
could be use for the tooltip of the name, a
for the alignment, 'ta'
for the first trait, etc.Re: Hotkeys for Movements / Mouse Interaction
I assume josteph suggestion for hints would work this way:
In the image, movement is reliant on the center of the current unit.
Hints are defined by radius in a clock wise direction, which is denoted by a number before a letter gets generated (1a, 2a, 3a).
josteph wants to target, gold hex tile to simplify directional commands (north, east, south, west).
bernd’s suggestion, also has "selection" mode, which allows you to select units only, using a hotkey, similar to hints, but controlled by arrow keys or multi directional hotkeys.
Essentially, both of these, allows you to jump to tile and skips some process of clicking.
I think hints would inflate once you reach map sizes (250 × 105) and larger.Fractal wrote: ↑May 24th, 2019, 12:30 am Without any semantic, the tiles, could simply be labelled from top left to bottom right alphabetically.
I'll take my current tile resolution as an example. At normal zoom, I can see from tile [1,1] to tile [22,10]. That means that I currently see 220 tiles. Those tiles could simply be labelled from'aa'
to'hl'
.
Height and width would change due to map size dependency.
Predictability for typing hints without the guide for hints, need consistency, to type a direction with less reliance on a guide.
Height could be defined by numbers and width by letters to solve predictability.
Why do we need to restrict to 10 letters?
This would reduce predictability for selecting inside a map.
It would be harder to use, as maps change when you play a different scenario.Fractal wrote: ↑May 24th, 2019, 12:30 am As an example:
- the first tile of forest flat from top left would be labelled'ffa'
- the 10th tile of mountain from top left would be labelled'mj'
With the full shortcut above, it would give'cmffa'
to hover over the forest tile, and'crmj'
to emulate a right-click on the mountain tile.
Alternatively, you could also have 2 hints for one tile if there is multiple terrain type on a tile.
Adding tile semantics, would probably be redundant, since it’s quite common to have same tiles and hints already have unique positions to alleviate the need for tile semantics.
Some scenarios, alter terrain, assuming hints don’t update for the new generated tile, it would cause confusion as one of the problems.
It would probably work though some issues have to be addressed.Fractal wrote: ↑May 24th, 2019, 12:30 am So a 'footpad' named 'Faren', would be hinted'ff'
, while a a 'knight' named Arvith would be hinted'ka'
. Note that there could be a collision between our forest tile and our footpad named faren, that's why we should add some letter to this hint. So for our example, the footpad named Faren would be hinted'ffb'
.
Fencer and Footpad share the first letter, and other units, possibly inherits this problem.
Names are generated randomly, for recruited or other units.
Recruiting the same units, would also cause similar problems like selecting two units instead of one and vice versa.
How do you address similarities cause by the issues mentioned above?
Feel free to ask questions or clarifications.