Godot Version
4.6
Question
Hello, I’ve been fighting against the 2D physics engine for a while and I’m afraid I’m just over engineering my solution, so I wanted feedback from the community.
I’m developing a 2D platformer with a low-res pixel art. I tried to add vertically moving platforms and I noticed that there is a delay between the movement of the platform and the movement of the object that is on top of it. After a lot of debugging and research, I found out that the reason is that the physics queries don’t return an updated state until the end of the frame.
That means that if a platform moves down by one pixel, the object on top can’t move down by one pixel in that same frame because the physics engine thinks that the platform is still in its previous position. I’ve tried many workarounds and none seemed to work properly, so I ended up creating my own physics system.
This system took me around 3 weeks to build and it overrides completely the default engine, so I don’t have any of the default functions like move_and_side or move_and_collide available. It works for my project but if I wanted to do anything slightly different I would have to rewrite a big part of it.
My question is: am I over-engineering the solution? Is there any way to avoid the behaviour I mentioned at the beginning of the post? Although I’ve learnt a lot by doing this, I can’t believe the solution to such a common need is to work for so much time in basic movement mechanics.























