Page 1 of 1

Sneak news and a temporary option for old move code

PostPosted: Mon Apr 17, 2017 14:01
by paramat
Sorry for the recent disruption, usually we manage to keep MT dev version usable but it has been very broken for many players recently. This is an example of the risk taken by using a dev version, i guess it has been a shock to those used to usable dev versions.

An option for old move code (and therefore old sneak) has just been added (pull request details are here https://github.com/minetest/minetest/pull/5519). This gives us time to improve the new move code while keeping you happy.

The option has been added as an additional 'physics override' alongside the 'sneak' and 'sneak_glitch' overrides. The advantage of this is that the option can be either per-player or applied to all players dependent on what a server admin prefers.
To enable old move code for all players in a world use a mod with this code:

Code: Select all
minetest.register_on_joinplayer(function(player)
   local override_table = player:get_physics_override()
   override_table.new_move = false
   override_table.sneak_glitch = true
   player:set_physics_override(override_table)
end)

You need to reset 'sneak_glitch' to true when using the old move code option, otherwise sneak ladders do not work.
The default of 'sneak_glitch' was changed to false in 0.4.16 because in new move code it controls the now optional sneak ladder and sneak jump.

Alternatively you can write a mod to set the option per-player and controlled by player chat command.

We have approximately replicated sneak ladders and 2-node sneak-jump in an option in new move code. This option is controlled by the 'sneak_glitch' physics override and is currently enabled by default, however it will be changed to disabled by default before 0.4.16 feature freeze (21st May). You can then control the option in the ways described above.

General sneak behaviour in new move code is improving with only a few remaining issues which are mostly minor (see details here https://github.com/minetest/minetest/issues/5438 and here https://github.com/minetest/minetest/issues/5535).

So we are fairly successful in moving sneak side effects from being bugs (with many related inseperable bugs) to being intentional and optional. However the new behaviour of general sneak and the sneak side effects will not, and probably cannot, be absolutely identical to the old code.

Re: Sneak news and a temporary option for old move code

PostPosted: Tue Apr 18, 2017 01:45
by Wuzzy
I have read your words, but I don't think I understood them.
What is this strange “old move code” you are talking about all the time? Is it arcane magic from the Elders?

Re: Sneak news and a temporary option for old move code

PostPosted: Wed Apr 19, 2017 00:23
by paramat
The 'move code' is the code that determines how the player can move in response to the controls. The sneak code is contained within it, so when i mention 'move code' i am also referring to 'sneak code'.

Re: Sneak news and a temporary option for old move code

PostPosted: Wed Apr 19, 2017 10:01
by Linuxdirk
"old move code" a.k.a. the buggy hacky shit that a lot of people are uber whiny about when it finally was fixed. :)

Re: Sneak news and a temporary option for old move code

PostPosted: Wed Apr 19, 2017 13:31
by Wuzzy
Lol.
Okay.

Re: Sneak news and a temporary option for old move code

PostPosted: Thu Apr 20, 2017 15:13
by Sergey
Linuxdirk wrote:buggy hacky shit

"buggy hacky shit" translated* from English into Russian and then back gets "sloppy shit"
"sloppy shit" translated from English into Russian and then back gets "careless shit"
"careless shit" is constant :-) "careless shit" is "careless shit"

* translations were made with google translator

Re: Sneak news and a temporary option for old move code

PostPosted: Tue Apr 25, 2017 03:35
by paramat
In the new player movement code, the replications of sneak ladder and 2 node sneak jump are an option which is controlled by the 'sneak_glitch' physics override, the option is now disabled by default. To enable for all players use a mod with this code:

Code: Select all
minetest.register_on_joinplayer(function(player)
   local override_table = player:get_physics_override()
   override_table.sneak_glitch = true
   player:set_physics_override(override_table)
end)


Alternatively you can write a mod to set the option per-player and possibly controlled by player chat command.

Re: Sneak news and a temporary option for old move code

PostPosted: Wed Apr 26, 2017 12:04
by BBmine
paramat wrote:In the new player movement code, the replications of sneak ladder and 2 node sneak jump are an option which is controlled by the 'sneak_glitch' physics override, the option is now disabled by default. To enable for all players use a mod with this code:

Code: Select all
minetest.register_on_joinplayer(function(player)
   local override_table = player:get_physics_override()
   override_table.sneak_glitch = true
   player:set_physics_override(override_table)
end)


Alternatively you can write a mod to set the option per-player and possibly controlled by player chat command.

So it's handled server-side? Then I guess I can feel safe about upgrading to 0.4.16 when it comes out :D

Re: Sneak news and a temporary option for old move code

PostPosted: Wed Apr 26, 2017 15:06
by ClaudiusMinimus
paramat wrote:In the new player movement code, the replications of sneak ladder and 2 node sneak jump are an option which is controlled by the 'sneak_glitch' physics override, the option is now disabled by default. To enable for all players use a mod with this code:

Code: Select all
minetest.register_on_joinplayer(function(player)
   local override_table = player:get_physics_override()
   override_table.sneak_glitch = true
   player:set_physics_override(override_table)
end)


Alternatively you can write a mod to set the option per-player and possibly controlled by player chat command.


For those who are not developers, here is how I made this patch work:

  • Create a new folder/directory in your .minetest/mods directory (I called my "dev" for things I want to override in the dev build)
  • Create a new empty file named init.lua
  • Copy/paste the above code into the new file, then save and close
  • Enable the new mod (in my case, "dev") as you would any other mod

Your sneak ladders should work again.

Re: Sneak news and a temporary option for old move code

PostPosted: Thu Apr 27, 2017 02:10
by paramat
BBmine wrote:So it's handled server-side? Then I guess I can feel safe about upgrading to 0.4.16 when it comes out :D

Yes physics override is server side in a mod, but a physics override gives the server admin the choice to either set the setting the same for all players, or set it per-player, or write a chat command to allow players to individually choose the setting for themselves. This flexibility is why we made this option and the 'old move code' option physics overrides.

Re: Sneak news and a temporary option for old move code

PostPosted: Sun Jun 04, 2017 11:49
by 1248
I think there is still one way in Minetest 0.4.16 to jump two blocks with sneak:
https://www.youtube.com/watch?v=nim5hO0UkEQ

Re: Sneak news and a temporary option for old move code

PostPosted: Sun Jun 04, 2017 17:45
by paramat
Interesting.
2 node sneak jump is of course an intentional part of the 'sneak glitch' physics override, i assume that was disabled in your video?

Re: Sneak news and a temporary option for old move code

PostPosted: Mon Jun 05, 2017 15:40
by 1248
paramat wrote:Interesting.
2 node sneak jump is of course an intentional part of the 'sneak glitch' physics override, i assume that was disabled in your video?

I used the basic minetest game, no mods and the basic minetest.conf

Re: Sneak news and a temporary option for old move code

PostPosted: Wed Jun 07, 2017 03:01
by Punk
1248 wrote:I think there is still one way in Minetest 0.4.16 to jump two blocks with sneak:
https://www.youtube.com/watch?v=nim5hO0UkEQ


Is this still a glitch? The same glitch?

Re: Sneak news and a temporary option for old move code

PostPosted: Mon Jul 03, 2017 22:32
by paramat
Just discovered you need to reset 'sneak_glitch' to true when using the old move code option, otherwise sneak ladders do not work:

Code: Select all
minetest.register_on_joinplayer(function(player)
   local override_table = player:get_physics_override()
   override_table.new_move = false
   override_table.sneak_glitch = true
   player:set_physics_override(override_table)
end)

The default of 'sneak_glitch' was changed to false in 0.4.16 because in new move code it controls the now optional sneak ladder and sneak jump.

Re: Sneak news and a temporary option for old move code

PostPosted: Tue Jul 11, 2017 02:41
by paramat
Image

1248, confirmed your 'new sneak jump' works in default MT.
By removing nodes found that the structure above has the same effect if you sneak-jump while pressed against the centre.

Re: Sneak news and a temporary option for old move code

PostPosted: Mon Sep 04, 2017 13:46
by 1248
I think there is another way to jump 2 (1.7) blocks high: https://www.youtube.com/watch?v=9OkFKa6lbMk
I used the officially 0.4.16, basic minetest game, no mods and the basic minetest.conf.
I think there should also be a function in Minetest 0.5.0 for the old move code because I and maybe some other people can use it for parkour maps like adventus I-V.
(and I whould like to make more in Minetest 0.5.0 with the old move code)

Re: Sneak news and a temporary option for old move code

PostPosted: Mon Sep 04, 2017 14:55
by jas
There is an option, through player physics attributes, to use old sneak movement.

Code: Select all
player:set_player_properties({sneak_glitch=true, new_move=false})


I think that's right. I think it's possible to set sneak_glitch=true and keep new_move=true also. I use these in my runfast mod in/on dcbl, such that only sprinting players can do sneak jumping, and it's fun for jump tracks.

https://www.twitch.tv/videos/172182289

Re: Sneak news and a temporary option for old move code

PostPosted: Mon Sep 04, 2017 15:12
by 1248
jas wrote:There is an option, through player physics attributes, to use old sneak movement.

Code: Select all
player:set_player_properties({sneak_glitch=true, new_move=false})


I think that's right. I think it's possible to set sneak_glitch=true and keep new_move=true also. I use these in my runfast mod in/on dcbl, such that only sprinting players can do sneak jumping, and it's fun for jump tracks.

https://www.twitch.tv/videos/172182289

Yes I know this option but paramat wrote it is only a temporary option--> they will remove this option in 0.5.0
And I would like this option also in 0.5.0.

Re: Sneak news and a temporary option for old move code

PostPosted: Tue Sep 05, 2017 03:36
by jas
no, no, no, no, no, oh god please no WHY

Re: Sneak news and a temporary option for old move code

PostPosted: Tue Sep 05, 2017 05:02
by paramat
1248 wrote:Yes I know this option but paramat wrote it is only a temporary option--> they will remove this option in 0.5.0
And I would like this option also in 0.5.0.

Actually we've decided that option will stay as long as it is wanted (and it is very much wanted) so don't worry. The option code is harmless to keep.
My comment about removing it in 0.5.0 was based on somewhat unrealistic optimism that most players would get used to the new sneak code soon.

Edited first post accordingly.