I am implementing moving platforms in my 2D platformer.
The way it's implemented currently, when my player lands on a moving platform, he is reparented to it so that his position updates in line with the moving platform, which is just a
KinematicBody2D with a constant velocity.
Because I use local position in all of my player's movement code, my player is still free to move left and right relative to the moving platform.
This works really well.
I notice, however, that when my player runs along the platform in the same direction as it's moving, there is a sense of moving fast. When he runs against the platform, there is a sense of sluggishness.
I know that relative to the platform my player is moving at the same velocity in both directions, but because he traverses more global distance than normal when moving with the platform, there is a sense of speed, and because he traverses less global distance than normal when moving against the platform, there is a sense of sluggishness.
So my question is: Are there any ways of mitigating these effects? How do classical platformers deal with this problem?