Appropriate physic engine to use for my requirements

None of the available options will give you everything you need out of the box.

Bullet and PhysX (2.8) do have some limited support for soft bodies (the rope). But I am not very optimistic that their soft bodies will work fine when connected to kinematic bodies (the characters). And the original Bullet character controller is not the best.

On the other hand a rope can be simulated by a series of four of five joints. So the built in physics system is perfectly able to handle this. I think drwr once pointed us to a room in one of the Disney games where a ball has been hanging from the ceiling by a chain, implemented with the built-in physics engine.

So…

  • If you want to stay on the Python level then I recommend using the built-in physics.
  • If you are prepared to go down on th eC++ level and tinker with the existing Bullet module, and if you want to have more complex collision geometry then I would recommend using Bullet. I think the Bullet way will be more work in total, so I personally would go for the built-in physics in your case.

In both cases you will probably need to write you own custom character controller code, which interacts with the rope (the rope restrains the way the characters can move!)