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

Fix various problems with sneaking #5327

Closed
wants to merge 5 commits into from

Conversation

Projects
None yet
@sfan5
Copy link
Member

commented Mar 1, 2017

new/changes:

  • sneaking won't actually hover you in the air, releasing shift guarantees not falling down (same as in MC)
  • sneak-jump no longer goes higher than a normal jump (^ was required for this)
  • sneaking no longer avoids fall damage
  • you can sneak on partial nodes (slabs, sideways slabs) correctly

downsides:

  • sneaking doesn't "go out" as far anymore (0.29 instead of 0.4)
  • can't jump when sneaking out as far as possible (breaks the sneak ladder)
@Wuzzy2

This comment has been minimized.

Copy link
Contributor

commented Mar 1, 2017

sneaking no longer avoids fall damage

FINALLY! And thank you very much! I've waited years for this to be fixed.

can't jump when sneaking out as far as possible (breaks the sneak ladder) [might be fixable]

Uh, oh, I'm already seeing the angry mob with pitchforks running towards Minetestland.

sneak-jump no longer goes higher than a normal jump (change above was required for this)

I actually requested to disable this behaviour on a per-player basis, but this is OK, too. I didn't care about the increased jump height anyways.
My Tutorial subgame, however, needs to change because it explicitly teaches this mechanic. Also my Help modpack teches the fact that a sneak-jump makes you jump higher and the wiki needs updating, too.
All of this can be easily fixed by me, no worries. I am not aware of any other subgames and mods which make actual use of this mechanic, so it is probably safe to remove this.

you can sneak on partial nodes (slabs, sideways slabs) correctly

What about very complicated nodeboxes? Hmm, I'm not sure.

I will test this very soon.

For reference, this PR (if it works), fixes #329.

Other issues related to sneaking (so they don't get forgotten):

@Wuzzy2

This comment has been minimized.

Copy link
Contributor

commented Mar 1, 2017

Test results so far:

  • Sneaking does not prevent fall damage (#329): FREAKING PASSED! Time to have some champagne. :D

  • Releasing sneak key and not falling down: Passed

  • Sneaking from a full cube towards an abyss: Passed

  • Sneaking from a slab towards an abyss: Passed

  • Sneaking does not increase jump height: Passed

  • Sneaking does not “go out” as much anymore: Passed

  • Sneaking on stairs towards an abyss: FAILED

    • Explanation: While you correctly sneak on the upper part of the stairs, things get weird when you're near the lower part. When you sneak on the lower part, Minetest teleports you to the center. Odd.
  • Can't jump when near the edge of a node: Passed

  • Sneaking from slab to slab: Passed

  • Sneaking from simple bed to simple bed: Passed

  • Sneaking from a full cube towards a slab: FAILED

    • Explanation: When you place a slab next to a full cube and stand on the full cube and sneak towards the edge, sneaking won't prevent you from stepping onto the slab. This is also the case for snow from Minetest Game
  • Sneaking at the edge of a small ledge: FAILED

Expected broken features:

  • Sneak glitch / sneak elevator / sneak ladder is broken: Confirmed

Issue test:

  • #3045: Fixed
  • #3323: UNTESTED
    • Can't be tested because the sneak glitch has been killed
  • #1692: UNTESTED
    • Can't be tested because the sneak glitch has been killed
  • #2774: NOT FIXED
  • #2188: Fixed / can't reproduce bug

Other observations:

  • When you continue walking towards the edge while sneaking, the screen shakes very slightly

Other comments:

When sneaking has been cleaned up properly and the old sneak glitch works again, I suggest to rename it, because it has become a de-facto feature for a long time now. I want a name different from “sneak glitch” because it is an intended behaviour since long. My first ideas are: “magic sneaking” and “super sneaking”.

@sfan5 sfan5 added the WIP label Mar 1, 2017

@Fixer-007

This comment has been minimized.

Copy link
Contributor

commented Mar 1, 2017

What I found for now:

  • movement jitter when trying to sneak harder
  • no sneaking when you try to sneak 1 block higher in front of snow nodebox: https://i.imgur.com/qN3wMOz.png
  • no sneaking when you go down from full node/higher part of stair to slab: https://i.imgur.com/awqFlpY.png
  • make a hole in a wall and try to jump + sneak on it, you will be able to stand on very edge of it: https://i.imgur.com/T7wB9sO.png
  • avoiding death yet again while landing here on snow block near snow nodeboxes on edges: https://i.imgur.com/kbHBXCL.png
  • does not fixes jump on edge bug (edge itself moved outside of the block, fix attempt was here #3810)
  • fixes bug where you can avoid any damage by falling on completely flat ground (is it? look below)
  • you can avoid falling damage by carefully falling on block edge, it needs lots of tries to not die: https://imgur.com/a/d999u
  • can sometimes avoid damage while falling 60 nodes down on this config while trying to aim for edge https://i.imgur.com/CtAMBIC.png , gif: https://imgur.com/a/zL29S
  • same for signs, trapdoors, walls, panes, rails, i guess on everything except full block https://imgur.com/a/fkNRz
  • total avoiding of damage on flat blocks caught, I had /sethome on edge, after game restart home coord probably shifted, it makes me fall, but here is the catch - i don't take any damage even without holding shift, download this world, enable damage, start it and issue /home, do nothing. Download this world to test: (please rename to .zip!): SPECIAL.PDF

It is a good start though.

updated 2016.02.03

@Wuzzy2

This comment has been minimized.

Copy link
Contributor

commented Mar 1, 2017

avoiding death yet again while landing here: https://i.imgur.com/kbHBXCL.png

😢 Can't reproduce. Can you maybe give precise coordinates for /teleport?

make a hole in a wall and try to jump + sneak on it, you will be able to stand on very edge of it: https://i.imgur.com/T7wB9sO.png

This is actually an interesting mechanic which already existed for a long time. It allows you to sneak along of walls.

@Fixer-007

This comment has been minimized.

Copy link
Contributor

commented Mar 1, 2017

Can you maybe give precise coordinates for /teleport?

I carved it manually and just jump from big height and try to aim at corner. Try replicating it like on picture.
I land on snow block with snow nodeboxes on edges.

@DS-Minetest

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

😞
This destroys the most of the sneak features.
Eg. in my mines I always place a slab on ground to avoid falling damage, this won't work anymore.
Could we please have a setting to disable this old, glitchy features which is false for default?

@Fixer-007

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

Eg. in my mines I always place a slab on ground to avoid falling damage

Avoiding falling damage on slabs is a bug.
spacebar_cpu_heating_xkcd.png

@Wuzzy2

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

This destroys the most of the sneak features.
Eg. in my mines I always place a slab on ground to avoid falling damage, this won't work anymore.

This is actually a bug which I won't miss. This allows players to get rid of fall damage WAY too easy. In Minetest Game, the snowy lands besically become a fall damage-free land because of this.
This bug basically destroys fall damage, which is not acceptable. It is especially frustrating in competitive gameplay, because hunting a player down a high cliff has no use.

There are other tricks to safely fall: Build a deep water hole at the end of a deep drop, the water will slow you down.

The fact that sneaking destroys fall damage is one of the oldest game-breaking bugs in Minetest and it is REALLY about time it gets fixed.

I also posted an issue for allowing to revert to the old liquid behaviour which stops your fall speed as soon as you land in a liquid: #5326

You could also ask or look for a cushion mod, a mod which adds a cushion block on which you can always fall without fall damage.

@sfan5

This comment has been minimized.

Copy link
Member Author

commented Mar 2, 2017

Pushed some more fixes, please continue to test.

  • Sneaking on stairs towards an abyss: FAILED
    • Explanation: While you correctly sneak on the upper part of the stairs, things get weird when you're near the lower part. When you sneak on the lower part, Minetest teleports you to the center. Odd.

This was part of the changes, instead of allowing you to sneak on any node as if it was a full node it now only allows you to sneak on the topmost surface. I guess it can be considered a bug.....

  • Sneaking from a full cube towards a slab: FAILED
    • Explanation: When you place a slab next to a full cube and stand on the full cube and sneak towards the edge, sneaking won't prevent you from stepping onto the slab. This is also the case for snow from Minetest Game

I have no idea why this happens (yet) but I would not consider it a major bug.

  • Sneaking at the edge of a small ledge: FAILED

This should still work.

  • Sneak glitch / sneak elevator / sneak ladder is broken: Confirmed

The sneak glitch still works, however the sneak elevator relies on other circumstances that no longer hold.

@Wuzzy2

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

This was part of the changes, instead of allowing you to sneak on any node as if it was a full node it now only allows you to sneak on the topmost surface.

I think randomly teleporting the player is still weird. But it's a minor glitch and may be acceptable.

  • Sneaking at the edge of a small ledge: FAILED

This should still work.

Previously it only partially worked. You can sneak to avoid falling, but you could not walk the entire path as shown in the screenshot. But after your latest commit, you can't sneak at a ledge at all.

The sneak glitch still works, however the sneak elevator relies on other circumstances that no longer hold.

Wait, wait? I always thought the sneak elevator is the only reason why the term “sneak glitch” exist. OK, so how do you define “sneak glitch”, then?

Apart from that, I have not seen other changes and I don't know what I should test for since you did not really explain. :-/

@sfan5

This comment has been minimized.

Copy link
Member Author

commented Mar 2, 2017

Previously it only partially worked. You can sneak to avoid falling, but you could not walk the entire path as shown in the screenshot. But after your latest commit, you can't sneak at a ledge at all.

It still works exactly like that, you can sneak on a ledge but not walk the path.

Wait, wait? I always thought the sneak elevator is the only reason why the term “sneak glitch” exist. OK, so how do you define “sneak glitch”, then?

The sneak glitch (as defined in the code) is:

  • Being able to sneak if there is only 1 node of space (not enough for the player to stand normally)
@0-afflatus

This comment has been minimized.

Copy link

commented Mar 2, 2017

Breaking sneak ladders is unacceptable. It means you can neither climb rock faces nor trees without a ladder. Granted that if the game were realistic, trees would fall down, but who takes a ladder mountaineering or potholing?

@Fixer-007

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

It means you can neither climb rock faces nor trees without a ladder.

uhm... I thought thats why we have those ladders, you know, to climb, or you can pillar up.

@0-afflatus

This comment has been minimized.

Copy link

commented Mar 2, 2017

I rely on current sneak behaviour for building and I'm worried about the reduced sneak gap too. I can and do use scaffolding, but it is frequently a PITA. Steeplejacking is possibly one of the most dangerous things you can do in MT, even with mobs added. Would it satisfy both sides if enabling sneak_glitch allowed some degree of compromise on old behaviour?
-- The Duke of Monmouth

or you can pillar up

As in nerd poles? Oh please ...

@Fixer-007

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

Here's sneak gap with current patch: https://i.imgur.com/Ib1ULBs.jpg

@0-afflatus

This comment has been minimized.

Copy link

commented Mar 2, 2017

That will probably be acceptable. The case I am concerned with is building overhangs off skyblocks.
The problem I have with ladders is that they are game-specific and you can't sneak-place from them.
I will test this out. My fear is that my building style will require twice as much scaffolding after this change, I'm currently trying to prove that you don't need fly to build tall structures.

@MisterXtreme

This comment has been minimized.

Copy link

commented Mar 2, 2017

I use the sneak elevator "glitch", and find it quite useful, it is faster to walk up stairs, the going up a ladder, also Minetest, unlike Minecraft, is a lot more vertically inclined, making sneak elevators a good way to get around, however, I do like that you can no longer fall if you sneak out too far.

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 2, 2017

It's unfortunate that some have got used to using the various sneak cheats, but they still have to go and i'm not keen on adding various settings to keep them. This will inevitably annoy some but it's their own fault for getting used to cheats.
I've never used sneak cheats as i know they are unintentional behaviour and bugs and will probably be fixed at some point.

I would support increasing the movement speed on ladders, it's rather slow.

@Wuzzy2

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

TL;DR: Keep up the good bugfixing, but please don't kill off sneak elevators entirely, or when you kill them, at least “revive” them before the next release as an optional but officially supported feature.

Fixing broken fall damage: Totally acceptable. And with mods people can easily introduce blocks to negate all fall damage anyway. There is absolutely no reason to stick to broken fall damage, sorry.

Fixing the sneak glitch, and, more importantly, sneak elevators: Well, I think I have to agree with paramat. They need to be fixed, too. HOWEVER (as much as I hate to say it): Sneak elevators basically became too ingrained in the Minetest community. You will find many structures in servers which depend on the sneak glitch. Some players even consider this to be an actual feature of Minetest or even a major advantage over Minecraft. o_O xD

Anyways, opinions differ here. I also think this is massively overpowered for many subgames because it allows very easy vertical travel at an absurd speed. I also think at least the DEFAULT should be to not allow sneak elevators. Because this is a weird glitch that no modder normally expects.

So if you have to get rid of this in order to fix other sneak bugs, that's okay. But I STROGLY suggest that the main effect of the “sneak glitch” (that is: building sneak elevators / sneak ladders) should be implemented as a real proper official FEATURE pretty soon (but disabled by default). I would STROGLY discourage to release Minetest without this possibility. It might be okay to remove this sneak glitch for now, and then try to add sneak elevators later (but don't forget it, please). The fact that sneak_glitch is even a parameter for setting player physics shows already how important it is.

Paramat, even with the sneak glitch and sneak elevators kept, you could already kill off the sneak elevators in Minetest Game with 3 lines of code.

@sfan5

This comment has been minimized.

Copy link
Member Author

commented Mar 2, 2017

@Wuzzy2
The problem here is that to even begin fixing any sneak bugs one major thing needs to go:

  • The fact that sneaking is actually flying instead of just preventing you from falling off

The damage problem cannot be fixed without this being removed, Sneak-jumps cannot be fixed without this being removed. Actually being in the air while supposedly standing on a node introduces lots of edge cases that break everything in various ways as evident by the many different bugs with sneaking we have.

I can preserve the sneak glitch (sneaking while theres not 2 nodes of space), but for sneak ladders it's either this patch or sneak ladders. Doing code stunts just not to break compatibility with what is actually a bug is not useful.

Also, besides a small issue @Fixer-007 reported this PR is no longer work in progress, it can (and should) be reviewed now.

@sfan5 sfan5 removed the WIP label Mar 2, 2017

@Wuzzy2

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2017

OK. Personally, I'd rather have a fall damage which is actually not broken and much more reliable sneaking with less bugs than the glitchfest we have now, even it means we lose sneak elevators.
I pretty much hate sneak elevators as well.

I just wanted to point out that other players think different of this. Call me “devil's advocate”. ;-)

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 3, 2017

I would like to greatly increase speed on ladders, to 2-3m/s. This could be a slight compensation, and those with sneak-elevator structures could always cheat-in a bunch of ladders to replace them.

@MisterXtreme

This comment has been minimized.

Copy link

commented Mar 3, 2017

What could we do for people on servers? (for example, my friend & I have a sneak elevator going from about 0, to -4K on the Y axis, what if the server admin won't cheat in items?

@paramat paramat removed the One approval label Mar 15, 2017

@GreenXenith

This comment has been minimized.

Copy link
Contributor

commented Mar 16, 2017

The official 'sneak glitch' is preserved.

@paramat What do you mean by this? The sneak-ladder is preserved?

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 16, 2017

No, sorry. There is something called 'the sneak glitch' that is an accepted feature, where you can sneak on the edge of a 1-node hole in a wall, even though there is not enough height for a player in that hole.

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 16, 2017

* `set_physics_override(override_table)`
    * `override_table` is a table with the following fields:
        * `speed`: multiplier to default walking speed value (default: `1`)
        * `jump`: multiplier to default jump value (default: `1`)
        * `gravity`: multiplier to default gravity value (default: `1`)
        * `sneak`: whether player can sneak (default: `true`)
        * `sneak_glitch`: whether player can use the sneak glitch (default: `true`)
			// The node to be sneaked on has to be walkable
			node = map->getNodeNoEx(p, &is_valid_position);
			if (!is_valid_position || nodemgr->get(node).walkable == false)
				continue;
			// And the node above it has to be nonwalkable
			node = map->getNodeNoEx(p + v3s16(0,1,0), &is_valid_position);
			if (!is_valid_position || nodemgr->get(node).walkable) {
				continue;
			}
			if (!physics_override_sneak_glitch) {
				node =map->getNodeNoEx(p + v3s16(0,2,0), &is_valid_position);
				if (!is_valid_position || nodemgr->get(node).walkable)
					continue;
			}

You can see the optional 3rd part of this code is checking that the node 2 nodes above the sneak node is non-walkable (non-solid). The default is that 'sneak glitch' is true so the 3rd check doesn't take place.

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 16, 2017

14aa990

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 16, 2017

^ Issues need checking.

@Fixer-007

This comment has been minimized.

Copy link
Contributor

commented Mar 17, 2017

R.I.P. sneak elevator [2011-2017], I can live without you.

@sfan5 sfan5 deleted the sfan5:snek branch Mar 17, 2017

paramat referenced this pull request Mar 20, 2017

Sneak: Fix various problems with sneaking
Sneaking won't actually hover you in the air, releasing shift guarantees not
falling down (same as in MC).
Sneak-jump no longer goes higher than a normal jump (^ was required for this).
Sneaking no longer avoids fall damage.
You can sneak on partial nodes (slabs, sideways slabs) correctly.
Sneaking doesn't "go out" as far anymore (0.29 instead of 0.4).
Can't jump when sneaking out as far as possible (breaks the sneak ladder).
@Brackston

This comment has been minimized.

Copy link

commented Mar 20, 2017

I considered the sneak ladder to be an actual feature of Minetest or even a major advantage over Minecraft. But then I am only a player and not a god-like dev.
I have been a gamer since 1983.
As a game and server(Linux) admin for a few games over the years, I am always concerned about the impact of such a change.
I agree that sneak can be used as a cheat, however more player IMO use it as a feature. A commitment from the dev(s) to supply an appropriate mod to keep the feature parts of sneak would minimize a huge player exodus. My many years in this realm of game play tells me that this need to be viewed from all perspectives, especially from the average player's view. Too many times "bugs" are "fixed" to the detriment player base. The impact of this change is grave to player that do not cheat but enjoy the "feature" of sneak ladders. Now many of my quarry holes will need ladders...ok I can live with that, but the bitter taste is still in my mouth.
If no mod comes to give us back the feature part of sneak, I predict (with years of practical player and administration experience) that players will leave the game because there is nothing "special" about Minetest over Minecraft. A truly sad day for me as a player.

@MisterXtreme

This comment has been minimized.

Copy link

commented Mar 20, 2017

@Brackston
I know that @shacknetisp found a way to still enable sneak elevators, so I'm sure it could be added as a mod to minetest_game, makes more sense to have the sneak elevator "feature" in the game, instead of the engine anyway.

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 20, 2017

#5429 i made a PR to increase climb speed to the reasonable maximum.

players will leave the game because there is nothing "special" about Minetest over Minecraft.

Nope. There is obviously much more to MT than sneak behaviour.

We are in dev phase and it is expected that the game can be sub-optimal between releases. So i hope and expect mod replacements will be available for 0.4.16. It is not only the dev's responibility to write these mods, there are many talented modders who may do a better job. I've spent the last 2 days working on a mod with someone, as far as i know other devs have been too busy to work on such mods.

@Brackston

This comment has been minimized.

Copy link

commented Mar 20, 2017

I see Ezhh is currently working on a mod to make hand-holds to replace the "sneak ladder"
https://github.com/Ezhh/handholds
This is wonderful and makes me very happy to see that things are getting fixed and "features" are being maintained.
Thank You Ezhh, paramat, Billre, and others.

@Fixer-007

This comment has been minimized.

Copy link
Contributor

commented Mar 20, 2017

@shacknetisp

This comment has been minimized.

Copy link

commented Mar 21, 2017

There are plenty of alternatives to the sneak ladder that exist or are being invented, such as the mentioned handholds, travelnet elevators, ladders with the new increase climb speed.
My own sneakladder mod works as a temporary (lag-affected) solution in order to allow players to travel existing ladders until they've built better methods.
On my server, for example, vertical travel will eventually be replaced (assuming players choose to do so) with ladders or fast entity-based elevators instead of continuing to use the less-convenient sneak ladders.

@Billre

This comment has been minimized.

Copy link

commented Mar 23, 2017

If this: https://github.com/shacknetisp/sneakladder is the same on beha's server, i couldn't get it to work.

@shacknetisp

This comment has been minimized.

Copy link

commented Mar 23, 2017

Please test with the latest version of the mod and create a github issue or contact me directly in order to locate the problem.

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 23, 2017

See #5443

@paramat

This comment has been minimized.

Copy link
Member

commented Mar 28, 2017

Another PR intended to make vertical travel less costly minetest/minetest_game#1669 more generous rail recipes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.