Suggestion: Impulse Information for Collisions

In this article, I try to suggest a feature that enables game developers to achieve more realistic effects for colliding parts. The feature is basically this: ‘Unity - Scripting API: Collision.impulse’.

One thing that makes ROBLOX dull is the fact that models usually destruct in unrealistic ways. For example, when I play a war game and I ruin a tank. The tank will usually get wrecked like this: ‘Tank:BreakJoints()’…

There is a solution for this problem though in the link that I provided earlier that redirects to a page about the Unity object attribute ‘Collision.impulse’. The nice thing about this is that the physics engine has to calculate this impulse property anyway (if I am correct). A possible solution would be to maybe pass an extra parameter to the BasePart.Touched event like this: ‘BasePart.Touched(otherPart, impulse)’. The impulse parameter can be recycled from the physics engine, since it had to be calculated anyway.

Solutions that I have tried so far look okay. They are not suitable for games, cause they were too heavyweight for big builds. This is mainly due to the calculation of the impulse forces and the quantity of breakJoints calls. The video in the link below showcases what such a solution looks like.

What developers could do with an impulse parameter video

4 Likes

The touched event happens on the first contact of two objects. The physics simulation continues to run afterwards which could generate a series of impulses. Add an impulse to Touched event probably won’t help a lot because you probably want to know the aggregation of the “series of impulses”, instead of the impulse at the first Touched event. We will keep this in mind if we revisit this in the future. Thank you!

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.