limit_physics_monoids

overrides monoids controlling player physics provided by player_monoids, to limit how big they can grow.

Player Effects / Power Ups

Download (126 KB)
For Minetest 5.7 and above

How do I install this?

limit_physics_monoids

overrides monoids controlling player physics provided by player_monoids, to limit how big they can grow.

why

the physics overrides are multiplicative factors controlling player speed, jump strength, and gravity.

it may make sense for one mod, or another, to double the speed of a player. however, there's multiple reasons to not scale them multiplicatively, or even additively. 1. IRL, doubling your speed requires quadrupling your energy input. doubling your speed twice requires increasing your energy input 16x. these energy requirements get even worse when you take air resistance and other friction into consideration. 2. in minetest, you generally accelerate to maximum speed almost instantly. (i've just discovered the movement_acceleration_* parameters, and there's a pending PR to add these to the physics overrides...)

how

the composed (folded) result value for the physics trait is passed through a "limiter" function, which scales the value.

properties of a limiter:

  • continuous

  • nondecreasing

  • f(0) = 0 it should remain possible to completely disable the functioning of the physic

  • f(1) = 1 no change should remain no change.

  • f\'(x) differentiable, decreasing when x > 1 it should decrease smoothly.

3 limiters are currently provided:

  • atanh values increase near-linearly at first, but drop off to a constant maximum.

  • gamma growth is limited by a constant exponent

  • log__n growth is limited as log^n, which is "flatter" than gamma, but trickier to optimize

limiter param_1 param_2 0 1 2 4 8 12 16 32
gamma 0.57 N/A 0 1 1.48 2.20 3.27 4.12 4.86 7.21
log__n 2 0.1 0 1 1.65 2.49 3.49 4.12 4.59 5.76
tanh 3 N/A 0 1 2 3.37 4.05 4.11 4.11 4.11

Reviews

Review

Do you recommend this mod?

  • Makes movement much more believable

    Name and description of this mod are very technical. So here's the tl;dr for whoever might read this.

    What is player_monoids? player_monoids offers a compatibility layer so that multiple mods can change physics related aspects like your character's walking speed or jump height.

    What does this mod do? Usually, effects of different mods get multiplied. So if you have a sprint mod that doubles your walking speed and also have boots equipped that make you walk twice as fast then now your speed is 4x the original speed. This mod changes the calculations so that the effect gets incrementally smaller the more you add to it.

    Should I install this? Yes. If you have at least one mod that uses player_monoids as an (optional) dependency then I recommend that you install this as well. Humble advertisement: If you have any mods installed that don't use player_monoids but instead use playerphysics then get the "Playerphysics API with Monoid Support" mod as well. The effects of this mod will then also apply to those mods.

    Personal Opinion A very good tweak to the physics calculation, especially when using many mods.

    0 comments