What's the reason to have infinite inertia by default for KinematicBodies? Why is inertia not based on velocity? #4001
Replies: 3 comments 2 replies
-
Agreed, it should be false by default. Sure it breaks compatibility between 3.x releases, but there's probably like 8 people who are actually utilizing infinite intertia. Moreover, in 4.0 this has been removed and CharacterBodies cannot move RigidBodies, so it would ease migration too. |
Beta Was this translation helpful? Give feedback.
-
Hm, I'm really not sure not for the KinematicBody (CharacterBody in Godot4), not being able to push RigidBodies at all by default is any better. I already see the same post on community forms everywhere: "Why can't I push the this RigidBody box with my CharacterBody?" I think the expectation is that KinematicBodies/CharacterBodies can push RigidBodies, however not through or into other (Static)bodies. |
Beta Was this translation helpful? Give feedback.
-
Move methods are just "hacks" to make so kinematics can detect bodies and make them usable as characters easily. In general, these methods are made so they try to solve an overlap and restore the kinematic (who does not care about the world like pure statics) to a non-overlaping state. Making them move and ignore overlap to particular bodies is an exception. BTW, this also happens because collisions are solved in pairs until Godot 3.x, in Godot 4 masks and layers work one way so the new bodies using move ALWAYS stop on collision, but will ignore the bodies that detect them letting them push undetected bodies like dynamic rigids. |
Beta Was this translation helpful? Give feedback.
-
Users generally seem to assume KinematicBodies to work with RigidBordies by default without them pushing RigidBodies through other RigidBodies, walls and floors. I mean ... so would I.
On community channels, almost like clockwork I periodically share this video on the subject (by KidsCanCode):
https://www.youtube.com/watch?v=C-Sn55e5wnk
Latest example from today.
Why not have the default KinematicBody inertia inferred by the it's velocity for example?
Beta Was this translation helpful? Give feedback.
All reactions