Horde is a pure graphics engine so we don't integrate physics directly. But of course some easy methods for communication between the modules are required. Basically there are two ways to do the integration. You can do the communication from a separate central instance, meaning you have your game object which stores a handle to a Horde scene node. Now if you change the position of your object you tell Horde about it and you tell the physics engine. But you also need to do some polling to check if the scene node was changed by Horde because of animation or similar things.
This should be working but it means some overhead. That's why we have developed a new concept, the Horde integration library with a node attachment. Basically that's a tiny class from which your own game classes can be derived. Now you can attach your class directly to a scene node and you get an event when the scene node changes or you can tell the scene node to change. It is a simple hook directly into the scene graph which makes integration really easy an efficient. Another cool thing is a hook into the scene graph resource parser. You can get notified when attachment data is found and can automatically construct your game classes and use XML data for configuration. But should work with physics, 3d sound, or AI and game actor classes, actually everything you need for a game.
We have tested that concept with a physics engine integration. We have used Bullet, a quite nice and powerful open source physics engine. Everything works fine so far. One of my fellow researchers has created a little C-library for that which will probably be released. The cool thing is: this library currently has two functions, for initialization and update. For configuring your physics objects you just have to add a special physics node to the scene graph files and then everything else is happening automatically. This is all easily possible with the integration library.
As far as I know Bullet doesn't support soft bodies but rigid bodies is also nice for the beginning.
Integrating PhysX shouldn't be difficult, I had a quick look and the concepts are the same.
Ok, Mark I think I have shocked you now with having a class in the Horde interface. I have absolutely no plans to give up the interface style we have. It is only the small integration library which uses some (currently one) classes. You don't need them to use Horde but creating a fully featured game engine is made much more convenient and efficient this way. For euphoria you could use the little Horde physics DLL about which I talked about and wrap it's functions.