I'm making a game where one of the main features is a grappling hook similar to the one from the Just Cause franchise. The player is able to tether two parts together depending on where they aim with a rope constraint.
When a tether is created between two parts, I want the rope to reel in and pull the parts together until the rope reaches a certain length.
My question is what method is best suited for reeling in a rope?
I can't just gradually shorten the rope length because physics aren't applied to the parts when it reels in, and the parts will just teleport to the maximum rope length. That's not very effective if the rope is covering a long distance or it's reeling quickly because it will look choppy.
I could apply a vector force that draws the attachments towards each other and then make the rope length equal to the distance between the attachments whenever the attachments get closer to one another, but that would lead to an inconsistent speed with the rope reeling when there are external forces applied on the individual parts.
Currently I'm connecting a spring constraint with a high stiffness and free length of 0 to either attachment and deleting it when the attachments are within 3 studs of one another while constantly changing the rope length to the current distance, but that leads to the same problems with the vector force solution.
Does anybody have a method that more accurately reflects real life physics? Thanks for the help.