Hello There!
I’ve been trying to make a physics based movement system, and I found out a lot of things which I don’t understand the reason behind, so I put my thoughts to discussion here.
The Default Humanoid Velocity Dampening
If a part is provided an impulse of v3(20,10,20), it should ideally get launched towards that direction, and then land, forming a trajectory of a parabola.This works for any part which isn’t associated with a humanoid.
Since Humanoids have their Velocity Dampening (feature??) behavior, this is what the same force applied on the hrp of a character results in:
It doesn’t make sense to not have an alternative to Humanoids which actually work with the Roblox Physics.
Right now, Humanoid:Move works on CFramed Increments, and not velocity, not forces. This causes problems when physics is made the base of a game, as shown above.
I would also like to talk about the very weird functioning of LinearVelocity, which is supposed to replace BodyVelocity.
Friction against Velocity-Based Movement
I have a capsule shaped hrp, with a Humanoid. I make an attachment, add a linearVelocity instance, connect it to that attachment, and apply v3(0,10^4,0), which very nicely results in an upward velocity, launching the player upwards.The problem arises when a force is applied forwards or sideways. Velocity is supposed to be change in Position. Why is it that v3(10^4,0,0) still reacts with the ground friction? Isn’t that supposed to be independent of friction?
Unity’s Rigidbody’s work so well with physics. In those, velocity is velocity. it causes change in position, ignoring friction. Rigidbody’s have a property called Drag to take care of retardation.
It’s super frustrating working with bodyMovers in Roblox, and it does not have to be that way. I don’t understand why these features are necessary, or why these things are happening. Isn’t it time Roblox Studio took physics a little more seriously?