ODE physics in Panda 1.9.1 and 1.10 devel under Linux


I am currently trying to get the 2011 Panda3D game A3P (or Stainless) to run again with a newer version of panda (and some other improvements that Wezu is luckily helping out a bit with), but I have a really show-stopping bug under Linux it seems.

No matter what I try on my Kubuntu 15.10 system, ODE doesn’t seem to do any collisions with the ground and I always immediately fall to my death after spawning. I tried both the 1.9.1 SDK and the latest devel version, both with the same effect.

According to some people who tried it on Windows, it actually works there albeit a bit buggy, so I wonder what might be different with my Panda3D ODE integration under Linux that it doesn’t work at all.

Anyone got a good idea? Thx!

Hmm, I’ve also been looking at it, but I’ve been unable to find something. Perhaps it’s related to the ODE version.

It is dynamically linked right?

The version I have is:
= libode1 (2:0.11.1-4.1)

Which is really old surprisingly (2009) with the latest release from 2014 being 0.13.

Does it require the python bindings?
See: ode-wiki.org/wiki/index.php?titl … ll_and_Use

Huh, strange. On Windows, we use an even newer version (0.12 as of Panda 1.9.1).

No, Panda’s ODE integration does not require PyODE.

Ok I tried to compile and install the 0.13 stable release from source (with the python bindings following the instructions linked above), and it seems to have worked fine… not an expert, but I could not see any major error messages.

No change when starting game though :frowning:
However as I still also have the 0.11 version from the repository to fulfill the dependency requirement of Panda3D, I am not sure which version Panda3D is now actually using.

According to what I read, Linux uses in general the newer version if compiled from source (with make&install), but I seem to have no way of checking. Is there an easy way to show it in Panda3D to make sure it is not still using the older 0.11?

Hmm, I tried to circumvent the above problem by making my own .deb file with checkinstall to replace the one from the repository while keeping the dependency of Panda3D from complaining.

Not sure if I did it all correctly, but it looks fine from my side. The difference seems to be that the libode1.so.x files reside in usr/local/lib and I am not sure if that is where Panda also looks.

But the bigger problem seems to be that when I compile ODE 0.12 or 0.13 it always gives me a libode1.so.3 while Panda3D asks for a libode1.so.1 specifically and refuses to run without it.

I tried symlinking the .so.3 to a .so.1 file in the above directory, but no difference. But I am really not sure if I did everything correctly.