I am willing to pay an amount as high as you want, because I don’t even expect there to be physicists or mathematicians who would even play Roblox to begin with, so finding a real one would be a blessing for me, i won’t even mind 100k robux
The first thing I want you to think of is Happy Wheels, because I’m technically trying to replicate the game physics inside Roblox (Box2D physics)
(game name: Blox and Glory)
But the thing is, it’s very difficulty to calculate the accurate physical properties in a way that would result in realistic damage system, as those numbers aren’t natively exposed to us
-
Traditionally, in Roblox you would have no problems calculating impact forces, it’s something that only involves calculating the differences in velocity
-
But when it comes to realistic limb damage system like in Happy Wheels, it involves joints, and it involves a pull force, which increases the complexity by ten folds or more
(for example, arm getting ripped off while grabbing onto a fast spinning object)
-
Another challenge is that it’s hard to precisely calculate the interaction point between parts, since there’s no native way to tell the touching position between 2 parts in Roblox
-
Similarly, it’s also hard to calculate the normal vector of the touching surfaces, for example, an object just grazing the surface of another object, rather than pressing directly against it, resulting in lesser impact force, and this becomes near impossible to calculate for non-conventional parts (unions, meshparts)
||||||||||||||||||||||||||||||||||||||
Below is the detailed documentation of how all the physics in my game work
There are 2 limb types
1. Smashable limbs (torso and head)
2. Snappable limbs (arms, legs and neck), also consider the joints between each limb
||||||||||||||||||||||||||||||||||||||
Let’s start off with smashable limbs as they’re more straightforward
Our example will be a ball flying at the torso, exploding it
Now to calculate the dynamic impact force, the velocity vector (direction and magnitude) and the center of mass of the torso plays an important factor in the calculation
If the ball’s velocity vector directs at the center of mass of the torso, the damage will be maximum
Whereas if the ball’s velocity vector if offsetted near the edges, the damage will be lower
Now all this time the velocity vector is still perpendicular to the surface’s normal vector, if it’s tilted, the damage would be even lower (if formed angle is 90 degrees then damage should be non-existent)
So, it concludes that the damage for smashable limbs is based on:
- The distance between the center of mass and the velocity vector
- The angle between the surface’s normal vector and the velocity vector
- The magnitude of the velocity vector
(Also make sure to take account of the torso’s linear velocity and angular velocity, aka impact relativity)
And as you guessed it, this is where my question for finding the touching point between 2 points and their touching surface (to find the surface’s normal vector) comes to play. But I would also like to know what is the most reliable unit of measures for determining damage, is it the delta impulse between the 2 objects upon touching?
||||||||||||||||||||||||||||||||||||||
Now for snappable limbs, which involve things not even I know how to observe
Let’s use the example of a player’s leg falling / landing on the ground, depending on the angle and touch point, it will determine whether the leg is gonna snap or not
Easy observation tells that the force inflicted closest to the joint deals the least damage, whereas the one furthest deals the most damage
However, when the leg is perpendicular to the ground, it becomes hard to determine the damage; the biggest dilemma with this is that the leg is the limb that has to fall onto the ground the most, and its most likely to break, so the damage formula here has to be merciful on that too
And of course, the pull force, in which I am completely clueless about.
What is the trigger condition for it? It certainly doesn’t involve .Touched, does it have to be a .Heartbeat / loop that checks the force threshold constantly? What unit of measure does it operate on? Is it a vector? Where does it apply at?
||||||||||||||||||||||||||||||||||||||
P.S: I have come to another realization that a leg falling onto the ground is ENTIRELY DIFFERENT from a leg being hit by a ball (similar to the smashable limb example), since it’s about pressure (area of touch), not just touch points. I could document even more about that, but I’m afraid every reader on this post is gonna have a stroke comprehending all that