singalen / wesnoth

iOS development fork of Wesnoth
http://www.wesnoth.org/
GNU General Public License v2.0
3 stars 0 forks source link

Alternative unit movement mode? #44

Open GuidoBartoli opened 7 years ago

GuidoBartoli commented 7 years ago

If I accidentally put my finger on a unit, it is inadvertently moved to a new location (sometimes undo is possible, but not if fog-of-war has been discovered). Since this behaviour can cause some annoying issues (I personally agree...), could an option be added to preferences where the unit movement mode can be customized?

singalen commented 7 years ago

I'm not completely happy with touch movements either. I ended up just learning to release the finger over the unit if I don't want it to move.

How do you see deselecting the unit in a tap mode? Given that there is normally no right mouse button or Escape key. Are you sure this covers all the mouse usage scenarios?

abacabadabacaba commented 7 years ago

There is another problem with the way units are currently moved: there is no way to move a unit far away, e.g. to use Silver Mage's teleport ability, or just to tell a unit to go far away so that it would do it automatically over a number of turns. It should be possible to scroll the map without deselecting units, but then, there is still no way to drag a unit if both the old and the new position are not visible simultaneously.

GuidoBartoli commented 7 years ago

How do you see deselecting the unit in a tap mode? Given that there is normally no right mouse button or Escape key.

I think tapping on an empty hex would be sufficient to deselect the current unit.

Are you sure this covers all the mouse usage scenarios?

In fact there could be problems when an unit is selected and you want to scroll, because as soon as you tap on another hex to drag, the unit could accidentally move. @abacabadabacaba also made a good point. I think that it could be solved scrolling the map when the destination hex is at the edge, like the automatic mouse scrolling in the desktop version, but in this case my "tapping" suggestion to move could not be compatible.

Maybe the best solution can be this:

abacabadabacaba commented 7 years ago

To attack, you need not only the hex you want to attack, you also need the hex you want to attack from. Maybe double-tap-then-drag gesture can be used for that, but it's rather complex. It is also good to be able to see how many turns are needed to reach a certain hex, without actually moving the unit.

I propose this solution:

With this solution, the game can be played like this: to move a unit over a short distance, just drag it, like it is done now. To move a unit over a long distance (e.g. to use teleport ability), tap the unit, then scroll to the destination location, then tap the destination hex twice. After the first tap, the path is highlighted, so it is possible to check that it is good. To attack over a long distance, after selecting a unit, swipe your finger from a hex next to an enemy to a hex with the enemy. Moving a unit accidentally is unlikely, because you need to tap the same hex twice. Attacking accidentally is also unlikely, because it is always possible to cancel from the attack dialog.

GuidoBartoli commented 7 years ago

I like your solution! It also should solve the problem I highlighted in the first post, i.e. the accidental movement of units while scrolling the map with only one finger.

singalen commented 7 years ago

Indeed, I like it too. Thanks! Hope to implement it soon.

singalen commented 7 years ago

I just really don't like the "scroll with two fingers" idea. Everybody scrolls with a single finger. The described interface looks compatible with one-finger panning, one just has to start with an empty hex.

abacabadabacaba commented 7 years ago

Then, what gesture can be used for long-range attack? Even without teleport ability, there are units that can move 11 hexes and then attack. It is useful to be able to see attack dialog before actually moving the unit, to decide whether the attack should be carried out or not. In my proposal, a gesture for doing so is to place a finger on an empty hex next to an enemy unit and move it onto that unit. Or, one-finger panning should work only when starting on an empty hex that is not adjacent to an enemy unit?

singalen commented 7 years ago

As an emergency plan, we have a "50% zoom" button below the minimap. It's a horrible mode, but it works.

How often does the case "open attack dialog without moving your dragoon/Silver Mage" happen? Compared to map panning, which happens about 50 times in a turn, I definitely don't want to complicate the more important use case.

Another backup plan could be, for example, to add a "Move here" context menu item to an empty reachable tile, this will cover Silver Mage movement. What about attacking... er, "Attack N (Troll whelp), Attack NE (Troll whelp), Attack WE (Orcish Grunt)" context menu items?

rgilsoul commented 7 years ago

As I recall, in other versions of this game on the ipad, you could tap on a unit to select it. A double tap on the same unit, much quicker than the current system of holding down on the unit, would quickly open all actions for that unit (or a space if there was no unit there and no other unit was already selected).

To scroll the map you would hold and swipe on a square or part of the screen to which you could not move.

To potentially move to a particular square, you could tap the square once. The path would be outlined and would be the most effiient for getting there. If it took more than one turn, each turn of movement distance woukd be indicated along the path by how a number showing the maximum distance the unit could move toward that destination on a particular move. So a 1 on hex 5 in a movement path if it could only go 5 If that last move would exceed the

To see an attack from that square, you would then tap on the enemy unit you wanted to attack. In one version, a preview of the attack would pop up in a box, and you could proceed with the attack from there assuming the soace could be reached that turn. I do nit recall if you could oreview an attack where you could not reach the square in the same turn. On another version a preview of the attack would pop up and you could tap the enemy unit again to confirm the attack instead of a confirmation in the oreview box.

To merely move to a space, you would tap the space again after the first tap. So a double tap would quickly move the unit if the preview did not matter.

If you wanted to deselect a unit, you could tap another friendly unit, tap the unit itself, or tap in an area just off the map (like the black area on the edge of the map).

rgilsoul commented 7 years ago

I see that there is no black area. I would say to deselect, one additional option could be to tap on the unit portrait.

singalen commented 7 years ago

"How to deselect a unit" is one of the problems of the "tap/click mode".

rgilsoul commented 7 years ago

I know from other games that there are a variety of solutions, but I can see how it is a problem, especially when you are not really starting from scratch. I am presuming that this is a direct port from PC Wesnoth and not a remake of the old ipad wesnoth versions out there. After all, certain elements look much nicer than the old ones. So I figure that presents certain complications, and everyone of the old versions solved the problems in different ways. I also presume that you do not have access to the code for those old versions or found them inferior in various ways, and so you are having to reinvent the wheel. I sympathize and am just happy that you are willing to do it,.

rgilsoul commented 6 years ago

This problem with move selection is the biggest thing keeping me from enjoying this game on the iPad like I used to. I hope that you do not give up on figuring this out. Moving the units is the core of the game, and if we cannot easily and reliably move them, the game just is not any fun on the iPad. I wish I knew enough to be more help. Maybe I will try to learn.

singalen commented 6 years ago

@rgilsoul, are you having bigger problems than not being able to teleport a Silver Mage? Other than that I'm personally quite comfortable with moving units. Well, I'm biased because I'm the author of the current iPad movement method :) If testing shows that it's still inferior to click emulation and there's no way to make it better, we'll fall back to clicks emulation.

soliton- commented 6 years ago

A similar issue as with teleport is with giving multi-turn move orders. Those are especially useful for figuring out good opening moves before armies meet. Currently you have to mostly count stuff by hand if you want efficient movement and then move each turn.

rgilsoul commented 6 years ago

There are several little inconveniences with how movement currently works. First by using drag and drop, my finger and hand obscures my view sometimes. By dragging and dropping I have more difficulty previewing my move as I cannot take my hand away. To see possible moves that are highlighted, I sometimes have to reposition my hand or the ipad because my hand is big and blocks the screen. Also, if I miss my square when I let go because I cannot see past my finger, then under many circumstances, it is irrevocable.

Also, if the screen is not centered on or positioned in an advantageous way to the move, I might find that the square I want is outside the range of squares currently viewable. So I then have to drag my finger all the way back to my unit to let go, move the screen and then do it again. This was not a big problem at all before as I could tap the unit, move the screen and double-tap the destination to confirm the move,

I used to be able to get a preview of the attack easily because after the first destination tap, I could hit one of the enemies I was thinking about attacking and get a preview of the attack chances. Then I could easily change my mind by tapping back on my unit to undo the move.

I also used to use multi-turn moves for routine long term movements that will not need to be thought about in the future but are easy to forget about. So in the Rise of Wasnoth scenario 1, I will often want to set units to capture out of the way places in moutains, and I cannot do that properly if I cannot move the screen to reach the target. Also, when a unit is being shifted from one part of the board to the far side because the battle has ended where it is at, a mutli-turn move to the other side is useful and can no longer be done with one instruction. There are other reasons I cannot remember where I use multi-turn moves.

Also, previewing the number of moves it will take to get somewhere is no longer possible without manual counting if the move goes beyond the viewable area, as the poster above said.

If I have been playing a long time, then slides of the finger start to catch and I have to clean my fingers and screen before continuing. Eventually, I think my fingr starts t sweat when up against the screen all the time. A system that does not require finger dragging avoids this problem. (To play one word game I had with lots of sliding and a timer I actually had some powder to keep my sweaty fingers from sticking.)

In general, it is just not as smooth and easy as before to move units and get the information we need easily.

I have not even tried to use the silver mage yet, but that is an obvious problem.

Maybe I would not care if I had not had previous experience in earlier versions of the game and exposure to other games like Panzer Corp and Warhammer Armageddon on the iPad. I have, though, and none of these games use the slide move method. It is just clunkier.

Again, I wish I could properly help figure this all out. And please do not take any of this personally. I am just comparing this method to the old, and I love that you are reviving our beloved Wesnoth for the iPad. Thanks so much.

singalen commented 6 years ago

@rgilsoul , this is a fantastic feedback, thank you very much. Let me think of it once more. Suddenly, optional mouse mode looks much more attractive.