Proposal to improve Minetest’s horrible controls
Re: Proposal to improve Minetest’s horrible controls
Yes, but there are issues with them as they are right now, for example the use key is used for a lot of different things, instead of moving some uses out to other keys, and (one thing that annoys me sometimes) the drop button is right next to the move buttons...
-
- Member
- Posts: 30
- Joined: Fri Jun 19, 2015 17:23
Re: Proposal to improve Minetest’s horrible controls
My take on the problem :
In minecraft-type games, there are two classes of buttons : those triggering an 'aimed action' (punching, placing blocks, anything that requires aiming), and those triggering a 'free action' (jumping, sneaking, etc). Intuitively, all the aimed buttons should be on the mouse, and the free buttons on the keyboard. Since the debates seem to mostly revolve around the aimed actions, I'm going to cover them and ignore the rest.
Right now, there are five aimed actions :
- Punching
- Mining
- Using an item
- Dropping an item
- Using a node
But there are only three buttons on baselines mouses. And it gets complicated when you want to add a secondary use to your item.
Minecraft has one more action (copy block), and solves this problem by putting 'drop item' on the keyboard, and merge using items and using nodes on the same button, which works... well-ish.
Now, the controls of minetest are all over the place. Left click is both 'punch'/mine', 'secondary item use' (for food and for the screwdriver), and 'pick up item'. Right click is both 'use item' and 'use node', and the 'Use button'... is used for sprinting and climbing down, I think ? Yeah.
My proposal would something along those lines :
- First off, every button should have a clear semantic, and any action attributed to it should fit directly into this semantic. So, for example, left click is for acting outward, or destroying things (not picking up items). Right click is for using what's in your hand (not opening chests). And use key should be for using nodes or entities you're aiming at (trading with NPCs, using nodes, etc). That is an example, mind you, the important part is not the exact configuration, but the presence of strong semantics.
- Second, every input should have only one possible interpretation in any given situation. There shouldn't be a situation such as 'pressing this key makes you eat your sandwich, unless you're standing in front of a door'. So you can have several functions on one key (for example, using a chest and picking up an item, since you can't aim at both at a time), but only if they don't collide.
With that in mind, here's a loadout example :
- Left click is attributed to punching, and mining (since there's no way to do both at once), and only those.
- Right click is attributed to the primary use of your item (eating food, placing a block, shooting an arrow)
- Wheel click is attributed to interacting with nodes, or entities, whatever you're aiming at. You use it to pick up items, open chests, pet dogs, or pull levers.
- A keyboard key (let's say, 'R') is attributed to secondary use of your item. You rarely need it, but with it you can place food as a block (apples !), swap axes with the screwdriver, etc.
- A keyboard key (let's say, 'T') is attributed to dropping items.
- And finally, a keyboard key (let's say, 'Q') is attributed to switching to secondary function. It's the equivalent of minecraft's 'sneak to place a torch on a furnace'. So 'Q' + 'Punch' is 'Drop' (similar semantics, left click is an outward action), 'Q' + 'Use item' is 'Use secondary item function'. You can also attribute the function to a mouse side-button, and thus be able to perform all aimed actions without touching the keyboard.
In minecraft-type games, there are two classes of buttons : those triggering an 'aimed action' (punching, placing blocks, anything that requires aiming), and those triggering a 'free action' (jumping, sneaking, etc). Intuitively, all the aimed buttons should be on the mouse, and the free buttons on the keyboard. Since the debates seem to mostly revolve around the aimed actions, I'm going to cover them and ignore the rest.
Right now, there are five aimed actions :
- Punching
- Mining
- Using an item
- Dropping an item
- Using a node
But there are only three buttons on baselines mouses. And it gets complicated when you want to add a secondary use to your item.
Minecraft has one more action (copy block), and solves this problem by putting 'drop item' on the keyboard, and merge using items and using nodes on the same button, which works... well-ish.
Now, the controls of minetest are all over the place. Left click is both 'punch'/mine', 'secondary item use' (for food and for the screwdriver), and 'pick up item'. Right click is both 'use item' and 'use node', and the 'Use button'... is used for sprinting and climbing down, I think ? Yeah.
My proposal would something along those lines :
- First off, every button should have a clear semantic, and any action attributed to it should fit directly into this semantic. So, for example, left click is for acting outward, or destroying things (not picking up items). Right click is for using what's in your hand (not opening chests). And use key should be for using nodes or entities you're aiming at (trading with NPCs, using nodes, etc). That is an example, mind you, the important part is not the exact configuration, but the presence of strong semantics.
- Second, every input should have only one possible interpretation in any given situation. There shouldn't be a situation such as 'pressing this key makes you eat your sandwich, unless you're standing in front of a door'. So you can have several functions on one key (for example, using a chest and picking up an item, since you can't aim at both at a time), but only if they don't collide.
With that in mind, here's a loadout example :
- Left click is attributed to punching, and mining (since there's no way to do both at once), and only those.
- Right click is attributed to the primary use of your item (eating food, placing a block, shooting an arrow)
- Wheel click is attributed to interacting with nodes, or entities, whatever you're aiming at. You use it to pick up items, open chests, pet dogs, or pull levers.
- A keyboard key (let's say, 'R') is attributed to secondary use of your item. You rarely need it, but with it you can place food as a block (apples !), swap axes with the screwdriver, etc.
- A keyboard key (let's say, 'T') is attributed to dropping items.
- And finally, a keyboard key (let's say, 'Q') is attributed to switching to secondary function. It's the equivalent of minecraft's 'sneak to place a torch on a furnace'. So 'Q' + 'Punch' is 'Drop' (similar semantics, left click is an outward action), 'Q' + 'Use item' is 'Use secondary item function'. You can also attribute the function to a mouse side-button, and thus be able to perform all aimed actions without touching the keyboard.
-
- Member
- Posts: 1233
- Joined: Tue Oct 23, 2012 12:59
- GitHub: Dragonop
- IRC: Dragonop
- In-game: Dragonop
- Location: Argentina
Re: Proposal to improve Minetest’s horrible controls
-Your wheel layout sounds promising, but what about touchscreens and people without a wheel?PoignardAzur wrote: - Left click is attributed to punching, and mining (since there's no way to do both at once), and only those.
- Right click is attributed to the primary use of your item (eating food, placing a block, shooting an arrow)
- Wheel click is attributed to interacting with nodes, or entities, whatever you're aiming at. You use it to pick up items, open chests, pet dogs, or pull levers.
- A keyboard key (let's say, 'R') is attributed to secondary use of your item. You rarely need it, but with it you can place food as a block (apples !), swap axes with the screwdriver, etc.
- A keyboard key (let's say, 'T') is attributed to dropping items.
- And finally, a keyboard key (let's say, 'Q') is attributed to switching to secondary function. It's the equivalent of minecraft's 'sneak to place a torch on a furnace'. So 'Q' + 'Punch' is 'Drop' (similar semantics, left click is an outward action), 'Q' + 'Use item' is 'Use secondary item function'. You can also attribute the function to a mouse side-button, and thus be able to perform all aimed actions without touching the keyboard.
-Why should you use a key to do the "Sneak to place torch in furnace" while you actually can use the Sneak button for this?
-
- Member
- Posts: 30
- Joined: Fri Jun 19, 2015 17:23
Re: Proposal to improve Minetest’s horrible controls
People without a wheel can change the settings. They are rare enough that default settings shouldn't take them into account. On the other hand, people without side buttons on their mouse are much more common. I have no idea what the touchscreens controls should be like.Dragonop wrote:-Your wheel layout sounds promising, but what about touchscreens and people without a wheel?
In minenetest_game, doesn't make a difference. But it's bad programming : the Sneak button's semantic is "you crouch down and become quiet", not "you use your hands differently". So if you want to make a mod where, for example, punching people while sneaking deals more damage, or eating an apple while sneaking makes the eating more quiet, you can't, even though the impossibility is totally arbitrary.Dragonop wrote:-Why should you use a key to do the "Sneak to place torch in furnace" while you actually can use the Sneak button for this?
Those considerations aside, you can always assign sneaking to one button, "switch to secondary use" to another button, and if people want to use both at the same time, they assign both commands to the same button. I'm not sure this is actually possible in minetest right now, but... well, if it's not, it really should be.
-
- Member
- Posts: 1233
- Joined: Tue Oct 23, 2012 12:59
- GitHub: Dragonop
- IRC: Dragonop
- In-game: Dragonop
- Location: Argentina
Re: Proposal to improve Minetest’s horrible controls
Interesting point of view PoignardAzur, I always have thought of the sneak key as a "do things careefully" That's why you used your hands diferently :P
- benrob0329
- Member
- Posts: 1341
- Joined: Thu Aug 06, 2015 22:39
- GitHub: Benrob0329
- IRC: benrob0329
- In-game: benrob03
- Location: Michigan
- Contact:
Re: Proposal to improve Minetest’s horrible controls
I personaly like MT's controls, especially now that we have the shift+click item-into-chest/furnace/ect control.
-
- Member
- Posts: 1233
- Joined: Tue Oct 23, 2012 12:59
- GitHub: Dragonop
- IRC: Dragonop
- In-game: Dragonop
- Location: Argentina
Re: Proposal to improve Minetest’s horrible controls
+1benrob0329 wrote:I personaly like MT's controls, especially now that we have the shift+click item-into-chest/furnace/ect control.
- Samson1
- Member
- Posts: 95
- Joined: Wed Apr 01, 2015 19:41
- GitHub: MoJo4000
- IRC: Samson1
- In-game: Samson1
Re: Proposal to improve Minetest’s horrible controls
I am with you on that one:Drubenwardy wrote:Most of these I agree with, but not the punching / right clicking.
Re: Proposal to improve Minetest’s horrible controls
That's a very smart and clean design.PoignardAzur wrote:- Left click is attributed to punching, and mining (since there's no way to do both at once), and only those.
- Right click is attributed to the primary use of your item (eating food, placing a block, shooting an arrow)
- Wheel click is attributed to interacting with nodes, or entities, whatever you're aiming at. You use it to pick up items, open chests, pet dogs, or pull levers.
- A keyboard key (let's say, 'R') is attributed to secondary use of your item. You rarely need it, but with it you can place food as a block (apples !), swap axes with the screwdriver, etc.
- A keyboard key (let's say, 'T') is attributed to dropping items.
- And finally, a keyboard key (let's say, 'Q') is attributed to switching to secondary function. It's the equivalent of minecraft's 'sneak to place a torch on a furnace'. So 'Q' + 'Punch' is 'Drop' (similar semantics, left click is an outward action), 'Q' + 'Use item' is 'Use secondary item function'. You can also attribute the function to a mouse side-button, and thus be able to perform all aimed actions without touching the keyboard.
However, considering how comfortable it's to right click (vs middle click) and how rare it's the situation of wanting to use an item while you are pointing to a block (for placing blocks you can even circumvent it most of the time), I think it's too convenient to have right-click being context sensitive.
This also means you can more comfortably play in a touchscreen (double tapping is the equivalent of right click in the android port). You can easily double tap to place a block or to use the environment depending on where are you looking at, instead of adding yet another onscreen button. It might also make it easier to play on a gamepad that doesn't have that many buttons.
But I agree on 2 points:
- The eating control is broken. No matter how you put it, it's inconsistent to have the eating function be assigned to left click. It's frustrating to find situations where you might be crazily smashing the attack button without realizing your stack of bread is going down (it doesn't even have a different animation/delay so it's also very unfriendly for newcomers).
- The screwdriver mechanic to switch axis is totally esoteric.
-
- Member
- Posts: 4534
- Joined: Mon Oct 03, 2011 17:58
- GitHub: Jordach
- IRC: Jordach
- In-game: Jordach
- Location: Blender Scene
Re: Proposal to improve Minetest’s horrible controls
Right now, I've just made a pull to make filling and emptying of buckets use entirely right mouse, or whatever counts of the build key for you.
Anways - this changes it so filling the bucket no longer needs left mouse, and makes the controls far more consistent.
(It also makes blocks and entities that use on_punch work correctly!)
https://github.com/minetest/minetest_game/pull/673
Anways - this changes it so filling the bucket no longer needs left mouse, and makes the controls far more consistent.
(It also makes blocks and entities that use on_punch work correctly!)
https://github.com/minetest/minetest_game/pull/673
- Wuzzy
- Member
- Posts: 4799
- Joined: Mon Sep 24, 2012 15:01
- GitHub: Wuzzy2
- IRC: Wuzzy
- In-game: Wuzzy
- Contact:
Re: Proposal to improve Minetest’s horrible controls
Thanks, Jordach. I am glad to see that some work is done here.
But I was actually more focusing on the controls of Minetest, the engine.
I don't care too much about Minetest Game.
But I was actually more focusing on the controls of Minetest, the engine.
I don't care too much about Minetest Game.
- benrob0329
- Member
- Posts: 1341
- Joined: Thu Aug 06, 2015 22:39
- GitHub: Benrob0329
- IRC: benrob0329
- In-game: benrob03
- Location: Michigan
- Contact:
Re: Proposal to improve Minetest’s horrible controls
I had an idea as I was playing Portal 2 last night:
Left/Right mouse buttons:Left/Right hands (mine/use tool when holding a tool or nothing, build when holding a node)
E: Use/Interect with object
Q: Drop
WASD: Move, double tap to sprint
Space: Jump
Shift: Sneak
I: Inventory
etc.
Left/Right mouse buttons:Left/Right hands (mine/use tool when holding a tool or nothing, build when holding a node)
E: Use/Interect with object
Q: Drop
WASD: Move, double tap to sprint
Space: Jump
Shift: Sneak
I: Inventory
etc.
-
- Member
- Posts: 1233
- Joined: Tue Oct 23, 2012 12:59
- GitHub: Dragonop
- IRC: Dragonop
- In-game: Dragonop
- Location: Argentina
Re: Proposal to improve Minetest’s horrible controls
I use E for the inventory.benrob0329 wrote: E: Use/Interect with object
I hold F with fast enabled to use fast movementWASD: Move, double tap to sprint
Too far away from the other buttons, if you play with a touchpad, maybe, but it's not a fast way if you are playing with mouse and keayboard.I: Inventory
- benrob0329
- Member
- Posts: 1341
- Joined: Thu Aug 06, 2015 22:39
- GitHub: Benrob0329
- IRC: benrob0329
- In-game: benrob03
- Location: Michigan
- Contact:
Re: Proposal to improve Minetest’s horrible controls
E has been the interact button in a lot of games, so how about having q be inventory and z be drop? Or maybe the middle mouse button?
F being Sprint isn't a bad idea...
F being Sprint isn't a bad idea...
-
- Member
- Posts: 1233
- Joined: Tue Oct 23, 2012 12:59
- GitHub: Dragonop
- IRC: Dragonop
- In-game: Dragonop
- Location: Argentina
Re: Proposal to improve Minetest’s horrible controls
That is a good choice, Q is near all the other keys, and it's a fast way to access inventory, about z being the drop button, looks good enough, maybe some players might drop things by accident with that, but I don't think it's a real problem.
- Glorfindel
- Member
- Posts: 137
- Joined: Tue Jul 07, 2015 20:05
- GitHub: the1glorfindel
- IRC: Glorfindel DoomWeaver
- In-game: Glorfindel
Re: Proposal to improve Minetest’s horrible controls
I've dropped so many items by having my fingers improperly placed and using Q as forward lol Z would work much better on my keyboard, only problem I can think of is if someone is trying to sneak instead...Dragonop wrote:That is a good choice, Q is near all the other keys, and it's a fast way to access inventory, about z being the drop button, looks good enough, maybe some players might drop things by accident with that, but I don't think it's a real problem.
- benrob0329
- Member
- Posts: 1341
- Joined: Thu Aug 06, 2015 22:39
- GitHub: Benrob0329
- IRC: benrob0329
- In-game: benrob03
- Location: Michigan
- Contact:
Re: Proposal to improve Minetest’s horrible controls
Backspace is another option.
-
- Member
- Posts: 1233
- Joined: Tue Oct 23, 2012 12:59
- GitHub: Dragonop
- IRC: Dragonop
- In-game: Dragonop
- Location: Argentina
Re: Proposal to improve Minetest’s horrible controls
What about Alt?
- kaadmy
- Member
- Posts: 706
- Joined: Thu Aug 27, 2015 23:07
- GitHub: kaadmy
- IRC: KaadmY
- In-game: KaadmY kaadmy NeD
Re: Proposal to improve Minetest’s horrible controls
Why not just have controls completely bindable, so punch could be bound to keys(instead of hardcoded or mouse buttons only, and movement could be bound to mouse buttons?
- Kpenguin
- Member
- Posts: 217
- Joined: Fri Jul 24, 2015 16:19
- IRC: Kpenguin
- In-game: Kpenguin
- Location: The Birthplace of Aviation
Re: Proposal to improve Minetest’s horrible controls
+1kaadmy wrote:Why not just have controls completely bindable, so punch could be bound to keys(instead of hardcoded or mouse buttons only, and movement could be bound to mouse buttons?
All things are possible except skiing through a revolving door.
- Wuzzy
- Member
- Posts: 4799
- Joined: Mon Sep 24, 2012 15:01
- GitHub: Wuzzy2
- IRC: Wuzzy
- In-game: Wuzzy
- Contact:
Re: Proposal to improve Minetest’s horrible controls
Lol, that was my suggestion all along...Kpenguin wrote:+1kaadmy wrote:Why not just have controls completely bindable, so punch could be bound to keys(instead of hardcoded or mouse buttons only, and movement could be bound to mouse buttons?
This discussion has pretty much derailed, all the talking about default keys is pretty much bikeshedding IMO.
I don't care much about the default bindings as long as they are consequently bindable and not absurdly overused (like the sneak key now).
- benrob0329
- Member
- Posts: 1341
- Joined: Thu Aug 06, 2015 22:39
- GitHub: Benrob0329
- IRC: benrob0329
- In-game: benrob03
- Location: Michigan
- Contact:
Re: Proposal to improve Minetest’s horrible controls
Thus my suggestion to use the "use" key instead of right-click, it makes more sense and means that you don't have to hold shift to build on things that you can interact with.Wuzzy wrote:Lol, that was my suggestion all along...Kpenguin wrote:+1kaadmy wrote:Why not just have controls completely bindable, so punch could be bound to keys(instead of hardcoded or mouse buttons only, and movement could be bound to mouse buttons?
This discussion has pretty much derailed, all the talking about default keys is pretty much bikeshedding IMO.
I don't care much about the default bindings as long as they are consequently bindable and not absurdly overused (like the sneak key now).
Re: Proposal to improve Minetest’s horrible controls
@benrob0329
The "use" key is a good idea, but it still doesn't solve the problem with apples and food. How do you make an item edible and at the same time placeable without using the punch button to eat?
Would we need yet another key? Wouldn't that be too much?
To me, the apple problem is more annoying than the right click issue.
The "use" key is a good idea, but it still doesn't solve the problem with apples and food. How do you make an item edible and at the same time placeable without using the punch button to eat?
Would we need yet another key? Wouldn't that be too much?
To me, the apple problem is more annoying than the right click issue.
- benrob0329
- Member
- Posts: 1341
- Joined: Thu Aug 06, 2015 22:39
- GitHub: Benrob0329
- IRC: benrob0329
- In-game: benrob03
- Location: Michigan
- Contact:
Re: Proposal to improve Minetest’s horrible controls
Well, you could use the "use" key to eat, or better yet hold it down any a little animation plays (like in MC)
I want to be able to have engine handled throwable items, so moving the eat function off of the left mouse button is a good idea.
I want to be able to have engine handled throwable items, so moving the eat function off of the left mouse button is a good idea.
Re: Proposal to improve Minetest’s horrible controls
"I" is way too far to the right. Just set inventory to TAB. (ESC already closes it, nicely close together)benrob0329 wrote:E: Use/Interect with object
Q: Drop
WASD: Move, double tap to sprint
Space: Jump
Shift: Sneak
I: Inventory
"e" for use and "q" for drop are excellent choices. This works nicely with right-click build.
right-click eat. There's nothing in the game right now that is edible that also doubles as a buildable node. Item frames can just be formspecs, really.
left click for hitting things or digging.
Please do not make nodes that require punching them to switch states (I'm looking at you, mesecons!)
Who is online
Users browsing this forum: No registered users and 4 guests