So while play testing, I noticed a slight movement mismatch between the feathers and the players motion, which could definitely cause motion sickness. So I slowed down the room speed to check for other motion mismatches, and discovered that the whole room lagged behind the player ever so slightly, which was exaggerated with the different parallax layers. It was also massively exaggerated when the player makes sharp turns and zig-zags a lot, so much so that I made myself really motion-sick (which rarely happens). Even though the movement between the environment and the player happens in the same step, the player still leads by a small amount for whatever reason. But I did come up with a fix:
Basically before the objects moved liked this:
y += global.dy;
where dy is the player's velocity.
Now I'm taking the derivative, and throwing it into the mix:
global.ddy = global.dy - global.last_dy;
y += global.dy - global.ddy;
so ddy is acceleration.
It seems to have fixed the motion mis-match problem, and was thankfully an easy to implement fix too. So hopefully this will solve the motion sickness problem... And now I will go throw up.