Mit Box2D hab ich auch schon gearbeitet (für Flash). Momentan will ich Physik verteilt über mehrere Rechner evaluieren. Nachdem ich mir jetzt kurz Havok angeschaut habe, scheint mir, dass dort auch keine leichte Möglichkeit zur Verfügung steht eine zwischen mehreren Servern "geteilte Welt" zu realisieren. Ich denke ich werde das wohl mal mit JBullet probieren. Momentan bin ich mir noch ziemlich unsicher wie gut das überhaupt funktioniert, wenn große Teile des Weltzustands zwischen den Servern hin und her geschickt werden müssen. Aber das gilt es ja rauszufinden. Ich hatte gehofft auf eine API zu stoßen, die mir eine Liste mit Objekt-Kontakt-Constraints ausspuckt, die ich dann beliebig verteilen kann und deren Ergebnisse als "Delta" zurückgegeben werden und schließlich an beliebiger Stelle wieder zusammengeführt werden können. Die Multithreading API von Bullet bietet das so leider auch nicht an, sondern macht es nur im Hintergrund mehr oder weniger auf diese Weise. Naja ich werde wohl Teile von der Bullet MT API nach Java portieren und die gewünschte Funktionalität selbst einbauen müssen.
Ich mache das ganze gleich in 3D weil mir der Code von JBullet mehr zusagt als der von JBox2D.