Collider pushing is too aggressive

hello, good night.

I have a problem with the collision handlers, basically they are to aggressive and push the objects weirdly:

If I use a mesh and use the “PhysicsCollisionHandler” instead of “CollisionHandlerPusher, CollisionHandlerFluidPusher”(like the first video), it works better. But if I jump close to a wall, this happens:

I would appreciate any input.

Thank you.

I don’t really see the issue in the first video? What am I looking for?

Also, are you colliding with visible geometry or are you colliding with pregenerated collision polygons (such as via the <Collide> tag in the egg file)? Collision with visible geometry has a known bug with convex corners at the moment.

I think that what they’re pointing out is that the speed of the ball seems to increase sharply when it slides over the edge of a platform: compare its speed when falling from a jump to its speed when sliding over an edge. It’s as though something is suddenly adding an extra force to it in that case.

@spod_dermon: Aside from rdb’s questions above, could we see the code that moves your sphere, please? (Including the code for both “walking” and “jumping”.)

I have different cases. These are the files:

in the game test called game_05 I dont have the convex corners problem because I`m colliding with single sided polygons, but if I put a wall on that same geometry, the character would fly away. Maybe it might be related to the fact that I am doing my jump applying forces to my character.

Thank you.

Hello. These are the files:

thank you for taking a look at it. Please let me know if there is something missing in the files.


Were you able to find the problem or anything weird in the file?

thank you.

Oh wow, sorry–I completely forgot about this! ^^; Thank you for reminding me!

That said… have you updated your code? I downloaded it today, and I don’t seem to be encountering the same issue that you demonstrated above. Nor do I see the cube-floors that you seem to have there. (And I note that the character seems to have been replaced, suggesting too that this may be a newer version.)

One thing that I note, by the way, is that jumping seems to be strongly affected by the game’s frame-rate: your game runs very fast indeed on my machine, and as a result, jumping barely functions. Conversely, if I limit the frame-rate then I can suddenly jump very high indeed.

I would imagine that this is due to jumping currently being implemented as a force. Forces are applied over time–thus the longer they persist, the more effect they have.

In this case, you clear the force in the update function, and thus I imagine that this force only persists for one frame. As a result, the duration over which the force is applied is the duration of a single frame. Thus, the longer the time between frames (i.e. the lower the frame-rate), the longer the time over which the force is applied, and the higher the jump.

Presuming that this isn’t what you want to have happen, what you might want is an instantaneous impulse–essentially (as used here) a single, instant, unvarying change in velocity, regardless of any duration.

I think that this can be done by calling “add_impulse” on your PhysicsObject, instead of applying a force.