Physics (Bullet) Client-side prediction

Here:

Bullet = YAY
Physx = NAY

In all honesty:

Physx: Generally faster on NVidia cards, more features (destructibles and more), strange license, very complex integration.
Bullet: zlib (open source) license, a bit limited sometimes, easy to understand, needs some workarounds though. And as far as current testing goes it also seems more deterministic than physx.

Working on networking in Bullet, I managed to successfully implement the same stuff I worked on with physx for half a year, in not kidding, two days. This of couse doesn’t include the integration of bullet itself or writing various background logic for the UE visuals, just the networking code. And this code already runs way more stable than the physx one. You just have 100% controll about the scene, are totally aware of all the possible side-effects, know where what gets called and why - In Physx debugging, it felt like every function was called by a obscure callback, where you had not a real idea why it got called by whom. And tracing those delegates back, leads you to poorly documented UE classes with thousands of lines. The whole Bullet World management is realized in around 100 lines of code.