Thanks for the kind words!
And yes we did, the snake is made up out of its head, a bunch of capsule body parts and its tail. Which are connected with hinge joints. These all get a rigidbody (set to dynamic) and a collider (both 2D of course). The rigidbodies are setup mostly the same but the tail is set to be slightly heavier. We also use linear and angular dampening to make it slide around less.
In order to move the snake a script applies a forward or backwards force and a torque for side to side to the head based on input. We also apply only a forward force to the body parts were the force gets reduced by a reduction factor based on how far along in the chain it is. (We apply the force relative to local space by using AddRelativeForce)
That last parts was C_raider’s solution, we found it makes the snake feel a lot better then only applying the force to the head. The problem you run into there is that if you add more body parts the snake would become heavier, making it slower. If we just increase the speed based on the number of segments it becomes inconsistent.
Pegs only have a circle collider unless they are on a track then they have a rigidbody too, but we dont apply any forces through script.
I like your game btw, I’ll leave a comment on your page :)
I’d be curios to know how you solved it.