Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better controls on Android are a serious requirement. #1750

Closed
easyaspi314 opened this issue Oct 20, 2014 · 44 comments
Closed

Better controls on Android are a serious requirement. #1750

easyaspi314 opened this issue Oct 20, 2014 · 44 comments
Labels
Android @ Client / Audiovisuals @ Client / Controls / Input High priority Request / Suggestion The issue makes a suggestion for something that should be done but isn't a new feature.
Milestone

Comments

@easyaspi314
Copy link

easyaspi314 commented Oct 20, 2014

(Can someone label this, I do not know how)

On Android, the touch targets are either with the wrong hitbox, ridiculously small, too sensitive, not sensitive enough, clumsy, or not even selectable.

Examples:

On inventory screens, the extreme corners of the screen are not touchable. I think it might be related to the block interaction area, where you can not place/destroy blocks on the edges of the screen. This makes creative, chests, and crafting very difficult.

The last hot bar slot is not selectable.

The arrow keys lack proper distinctiveness and accuracy, and I find myself going left instead of forward, causing cliff falls and more.

Those stupid jump/sneak buttons. They are impossible to use on a small screen, especially with a case. I can't sneak. And how the heck do you fly? I had to enable double-tap in minetest.conf and constantly grant myself fly. And even then, I keep accidentally (de)activating it!

Try to build a house. Or pillar jump. Or block off a stream. That double tap has to be better. Maybe double tap, then after that, blocks instantly place until 1-2 seconds are between that. IDK how difficult that would be to enable. Also, the delay between breaking blocks is too short. A diamond pick is more destructive than useful, as I find myself breaking multiple blocks before I can get a chance to lift my finger.

When there is a popup for text edit, can the keyboard request focus? If it is in an XML layout file, inside the EditText open and close you can put but from the looks of it, it might be a NDK dialog not by Java or XML. I know nothing about C++ or Lua of that is the case.

Some Minecraft Pocket Edition controls would be better, as it makes it look and act more like a native game rather than a klutzy emulator. I find that the unofficial Overcraft 2 seems to have a better GUI than this. (Edit: Sorry, I was not being very nice or neutral there. :( )
//////////////////
EDIT by paramat: Deleted resolved issues.

@Zeno-
Copy link
Contributor

Zeno- commented Oct 20, 2014

Sadly, the GPL-violating, [... ]Minetest rip-off Overcraft 2 seems to have a better GUI than this. And I hated that.

I just wish you didn't add this, because the rest of the issue text is great. I cannot see how Overcraft 2 is violating the L GPL or even the GPL: they provide the source code of their changes and that's really about all that's required.

Aside from that the entire issue and feedback you've provided is great.

@easyaspi314
Copy link
Author

Sorry I was in a bit of a negative mood, and I forgot to reread that part. ~~According to what I saw, the source code directs to freeminer which is not what the actual code was ~~ see my next comment. (I usually use the Apache 2.0 in the work I do. I am not really into the other licenses and I often get them mixed up, sorry.). I am sorry to anyone that I offended. I will delete that part.

On October 20, 2014 9:45:19 AM EDT, Zeno- notifications@github.com wrote:

Sadly, the GPL-violating, [... ]Minetest rip-off Overcraft 2 seems to
have a better GUI than this. And I hated that.

I just wish you didn't add this, because the rest of the issue text is
great. I cannot see how Overcraft 2 is violating the L GPL or even
the GPL: they provide the source code of their changes and that's
really about all that's required.

Aside from that the entire issue and feedback you've provided is great.


Reply to this email directly or view it on GitHub:
#1750 (comment)

Sent from my Android device with K-9 Mail. Please excuse my brevity.

@Calinou
Copy link
Member

Calinou commented Oct 20, 2014

they provide the source code of their changes and that's really about all that's required.

Can we patch Minetest or Freeminer with their stuff then get a working build? If not, it is a violation.

On topic, I agree the delay after mining should be configurable upwards. It could be useful for some PC users too.

@ShadowNinja
Copy link
Member

The dig delay is dynamic, based on the dig time, see

minetest/src/game.cpp

Lines 2994 to 3005 in 9029a34

nodig_delay_timer = dig_time_complete
/ (float)crack_animation_length;
// We don't want a corresponding delay to
// very time consuming nodes
if(nodig_delay_timer > 0.3)
nodig_delay_timer = 0.3;
// We want a slight delay to very little
// time consuming nodes
float mindelay = 0.15;
if(nodig_delay_timer < mindelay)
nodig_delay_timer = mindelay;

@ShadowNinja ShadowNinja changed the title [Android] Some better controls are a serious requirement. Better controls on Android are a serious requirement. Oct 20, 2014
@easyaspi314
Copy link
Author

All of their apps have a link to the same https://github.com/gameabc/worldcraft which is better than before.

But let's go back on topic, I do not want to get too deep into the licensing and LGPL and such. Maybe we can add an issue on GameABC's version if the violation is confirmed.

@Calinou
Copy link
Member

Calinou commented Oct 20, 2014

The dig delay is dynamic, based on the dig time, see

minetest/src/game.cpp

Lines 2994 to 3005 in 9029a34

nodig_delay_timer = dig_time_complete
/ (float)crack_animation_length;
// We don't want a corresponding delay to
// very time consuming nodes
if(nodig_delay_timer > 0.3)
nodig_delay_timer = 0.3;
// We want a slight delay to very little
// time consuming nodes
float mindelay = 0.15;
if(nodig_delay_timer < mindelay)
nodig_delay_timer = mindelay;

The minimal, factor and maximal values should be changeable by minetest.conf settings, however the values may not be put below their defaults (to prevent people from digging quicker than they should). It should be made sure this works well with anti-cheat, but it probably should if the delays are increased.

@easyaspi314
Copy link
Author

Maybe have the default minimums are in the minetest.conf as 0 and any more are that plus the default. Can't have a negative number, so unless someone changes the C++ code, it is very difficult to cheat.

@Calinou
Copy link
Member

Calinou commented Oct 25, 2014

If the default is 0, then you can't mine dig_immadiate = 3 (instant digging) nodes carefully, it will dig way too fast.

For reference, Minecraft uses 0.25 seconds.

@easyaspi314
Copy link
Author

Have the option be a separate integer, and use a math function to add it to the default. For example, if the default is 0, the real time is 0.25 seconds, and if it is 1, it would be 1.25.

@Calinou
Copy link
Member

Calinou commented Oct 26, 2014

Relevant: #1773

@sapier
Copy link
Contributor

sapier commented Nov 28, 2014

@easyaspi314
"And how the heck do you fly?" ---> What about using the "Fly mode" checkbox on main screen.

"The arrow keys lack proper distinctiveness and accuracy, and I find myself going left instead of forward, causing cliff falls and more."
They work quite fine for me, maybe your fingers are to big for your gui scaling?

First of all thanks for your feedback. I need some additional information to know what you're talking about.
Things like "small screen" aren't really helpfull as everyone does understand different things. Can you be precise about screen resolution and size. At best write full device name and specs.

"When there is a popup for text edit, can the keyboard request focus?" on my devices the text edit does get focus, but I heared from various persons that this doesn't work maybe it depends on android version.

Last but not least, yes the controls have a lot of room for improvement, yet no matter who you ask, everyone wants different controls. We can't fullfill all wishes but once we there's thome obvious issue multiple ppl recognize and we have a way to fix it we will do it. Still, please be patient android devices are quite heterogenous I don't wanna break some devices in favour of others.

@easyaspi314
Copy link
Author

  1. I do check he fly mode button.

  2. No, it is just tricky.

    I have a 3.8" 320x480 LG Optimus Dynamic II (L39C).
    512MB RAM, 1GHz Qualcomm processor, Android 4.1.2, 2GB internal storage.

  3. Have you tried something like this?

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(mTextInputWidget, InputMethodManager.SHOW_IMPLICIT);

@sapier
Copy link
Contributor

sapier commented Nov 29, 2014

  1. ok fly mode checkbox is broken ... I'll fix it soon
  2. nope thanks for the hint, I'll try it.
    Android help is always welcome, I usually do more c++ work then java. And additionally mintest is the only andorid app I'm working on so my knowledge about andorid ecosystem is limited.

@easyaspi314
Copy link
Author

I am working on it now. I will see what I can do. I do not know C++/Lua, so that kinda works out. So I am working on the keyboard. Can you guys try to find a way to recognize the Backspace key, as I am experimenting with forgoing the dialog completely and putting the keyboard over Minetest. Look at this page for the key code.

@sfan5
Copy link
Member

sfan5 commented Nov 30, 2014

This might be useful: https://github.com/sfan5/irrlicht-android
It handles AKEYCODE_DEL correctly.

@easyaspi314
Copy link
Author

Thanks @sfan5! Also what I saw was that Minetest will need to be compiled against the latest NDK, because it fixes this issue where pressing the back key freezes the app when the keyboard is showing.

I will try to compile MT but my laptop lacks the NDK and I am busy this week. I will have to download it and compile when I get a chance.

Edit: Downloading the NDK, and now I don't have to use the extracted .so files. 😄

@easyaspi314
Copy link
Author

If there was a way to bind Android code to the Minetest UI, I could set up a native (not NDK-native) menu that has the same style as the menu, but fits to the screen and works more like a real app and not an emulator. And I realized that I actually had the NDK, but it was in another folder. LOL.

@easyaspi314
Copy link
Author

Where can I find libandroid_support.a?

@rubenwardy
Copy link
Member

Multicraft has a nicer UI than us :'(

@0-afflatus
Copy link

Apparently it does, but Multicraft leaves players on Minetest servers somewhat disabled due to the lack of proper right-click support. Many players would actually use a proper MT client (it is free after all) if the user experience was better and they knew where to find up-to date builds. The feedback I'm getting says that it is close to Good Enough for players to start considering making the switch. I have a lot of Multicraft users on my server and I'm getting some really good feedback about what handheld users need, so I'm going to start lobbying for the necessary changes on their behalf, then I can start weaning them off onto a proper client.

@easyaspi314
Copy link
Author

+1
On Apr 5, 2016 9:13 PM, "Tim Hawthorn" notifications@github.com wrote:

Apparently it does, but Multicraft leaves players on Minetest servers
somewhat disabled due to the lack of proper right-click support. Many
players would actually use a proper MT client (it is free after all) if the
user experience was better and the feedback I'm getting says that it is
close to Good Enough for players to start considering making the switch. I
have a lot of Multicraft users on my server and I'm getting some really
good feedback about what handheld users need, so I'm going to start
lobbying for the necessary changes on their behalf, so I can start weaning
them off onto a proper client.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#1750 (comment)

@MoNTE48
Copy link
Contributor

MoNTE48 commented Apr 25, 2016

I would be happy to assist in this issue.

@paramat paramat added the Request / Suggestion The issue makes a suggestion for something that should be done but isn't a new feature. label Aug 25, 2016
@paramat
Copy link
Contributor

paramat commented Sep 21, 2017

@MoNTE48 we would very much like to have new movement controls, as many mobile users prefer a joystick control, could you help or maybe direct us to the code to use?

@paramat
Copy link
Contributor

paramat commented Sep 21, 2017

Discussion http://irc.minetest.net/minetest-hub/2017-09-21#i_5084160
We are losing mobile players to often problematic apps due to bad controls.
@srifqi i saw in the forum thread you might be interested in working on Android?

@paramat
Copy link
Contributor

paramat commented Apr 11, 2018

Joystick improved #7126
Now what improvements can we make to the jump / down buttons? Android users please advise @Wayward1 @stujones11 @srifqi
I think the up / jump button should use a reversal of the down arrow, it obscures the world less and is more descriptive.
From above:

Those stupid jump/sneak buttons. They are impossible to use on a small screen, especially with a case. I can't sneak.

Although the thread author was exaggerating a little.

@Wayward1
Copy link
Contributor

Wayward1 commented Apr 12, 2018

Actually, they may be right, at least with a case. The buttons, whichever design we choose, should definitely be taller. Take my device here: an LG G5, rather large 5.3" screen, with small bezels, using a thick Otterbox case (and there are even thicker and differently shaped ones than this).

arv3lfp - imgur

Now notice how far the case comes out compared to how tall the buttons are on the screen:

v2nd6u9 - imgur

And finally see how my thumb is positioned on the button because of the case:

hgqyqco - imgur

When using this case, my touches generally tend to register near the top of the button, and I find my thumb sliding off the button quite often. Now imagine a smaller screen, say 4.5" to 4" inches, and a similarly thick case. That's the situation with my old iPhone, and I can confirm it makes it very difficult, if not impossible to touch the edge of the screen. So basically I like your idea, @paramat, of having the jump button be a reverse of the down button, but they both definitely need to be taller in my opinion.

@paramat
Copy link
Contributor

paramat commented Apr 12, 2018

Thanks that really helps. The icons themselves don't necesssarily need to be taller but they and the detection areas should be placed higher up the screen, near the top of the wieldhand.

@Wayward1
Copy link
Contributor

Wayward1 commented Apr 12, 2018

I agree, that could work as well.

@paramat paramat removed the Blocker The issue needs to be addressed before the next release. label Jun 20, 2018
@paramat
Copy link
Contributor

paramat commented Jun 20, 2018

So controls have been improved a lot, any remaining high priority control issues?
I guess lack of sprint is one #2873

@paramat paramat added the Blocker The issue needs to be addressed before the next release. label Jun 23, 2018
@paramat
Copy link
Contributor

paramat commented Jul 10, 2018

#7477 merged.

See first post, are any of the remaining issues mentioned there still an issue?
Any additional control / button / menu issues to report?
@stujones11 @juozaspo @codexp @Wayward1

@juozaspo
Copy link
Contributor

juozaspo commented Jul 11, 2018

@paramat cann't tell if any of the issues above is a problem for me, I didn't notice any or they didn't bother me too much. To realy test everything the stable branch and an official app both must be updated.

@codexp
Copy link

codexp commented Jul 11, 2018

The only thing I noticed in #7477 is that the menu button is not aligned with zoom and aux button.
It sits on the very edge by itself. Shouldn't it be in line with others and have same spacing to others?

image

Also the icon is a little bit smaller.

@paramat
Copy link
Contributor

paramat commented Jul 11, 2018

What concerns me about the menu and inventory buttons is they may be too close to the edge to use with a case?
I agree the menu button would look better moved away from the edge a little so that it has the same gap from the edge as the others. Icon size is ok for me, big enough to be clear and doesn't obscure the world much.
@srifqi

@juozaspo
Copy link
Contributor

Not sure if this is present in current master, but I found some ui problems in current App Store build, such as some controls on right bottom side overlaping hotbar, after renaming minetest.conf.
screenshot_20180712-001009
Also debug information doesn't fit the screen, the font might be too large, no wrapping on edge.

@codexp
Copy link

codexp commented Jul 13, 2018

Btw up and down buttons on the right in 0.4.17.1 are on the actual edge of any smartphone with curved edge screen like the S9+. It is really awkward.

@paramat
Copy link
Contributor

paramat commented Jul 13, 2018

That seems more an issue caused by silly smartphone design. It look like the longer screen edges are actually radiused on the S9+, so i guess buttons cannot be too close to the edge.

From a review:
"My only nitpick with this curved panel is that it can sometimes be difficult to press buttons on the extreme edges of the display; on more than one occasion I had to press twice for something to register."

ahr0cdovl21lzglhlmjlc3rvzm1py3jvlmnvbs9hl1evnzu0odc0l29yawdpbmfsl1nhbxn1bmctr2fsyxh5lvm5lv9szwrllmpwzw

Seems done to get an 'edge to edge screen'. They have probably also removed touch-sensitivity from the screen edge as part of this.

See #7498 , the buttons are quite tall and extend up higher than the hotbar buttons, i doubt we'll agree to moving hotbar and controls up just for certain bad smartphone designs.

@ClobberXD
Copy link
Contributor

i doubt we'll agree to moving hotbar and controls up just for certain bad smartphone dsigns.

Unfortunately, such "bad smartphone designs" are becoming the norm nowadays... :)

More and more phones are beginning to incorporate edge-to-edge screen for the sake of looks and ergonomic design.

@rubenwardy
Copy link
Member

rubenwardy commented Jul 13, 2018

They're very good for watching videos

In android there is a safe margin space which is either 8 or 16dp

@codexp
Copy link

codexp commented Jul 13, 2018

is a margin setting for everything at the bottom an option?

how about smartphone config profiles which extend the default config at installation time/on first run?
is that possible?

@paramat paramat removed the Blocker The issue needs to be addressed before the next release. label Jul 14, 2018
@paramat
Copy link
Contributor

paramat commented Jul 14, 2018

Looks like we need top/bottom margins for Android then :)

@codexp
Copy link

codexp commented Jul 14, 2018

I'd suggest an adjustable grid layout for hud.
where you just specify a slot for controls to display in

@paramat
Copy link
Contributor

paramat commented Aug 4, 2018

This issue is attended too. There are some additional issues mentioned here but those should be split up into individual new issues.

@paramat paramat closed this as completed Aug 4, 2018
@paramat paramat moved this from Bugs to Done in Minetest 5.0.0 blockers Aug 5, 2018
@guy12345678910
Copy link

How do i fly when i enable fly mode and double jump I just double jump
Tell me how to fly plzzz

@paramat
Copy link
Contributor

paramat commented Oct 29, 2019

This is not the right place to ask, try the forum or IRC #minetest channel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android @ Client / Audiovisuals @ Client / Controls / Input High priority Request / Suggestion The issue makes a suggestion for something that should be done but isn't a new feature.
Projects
None yet
Development

No branches or pull requests