ODE Middleware

Yes, I know, but that’s not helpful at all, unfortunately. I was hoping there was at least something more that could lead to the cause. At least on the pdb side, if you’re tried it. But I guess that was just wishful thinking.

If you haven’t so far, you could try using gdb instead of pdb. That could provide a more complete traceback.

The problem is, inside the quickStep method there’s little but ODE itself, with it’s marvelous error messages, so the only way to debug this is the most tedious way possible. That means, commenting out everything the code does (going from the map file) and then going through it uncommenting things, one by one. That eventually leads to the one line that causes the problem.

You see, the quickStep method only does the physical simulation, as you have already figured out, which means that what causes the error can be literally anywhere in the code, because running the simulation is the last thing the code does when starting itself.

However, since 1.0.1 works, the problem almost certainly is in those parts that were most changed for 1.2.0 (Captain Obvious to the rescue).

If I had to guess (and I have to), I would point at the double capsule in the KCC. Since 1.2.0 there’s an additional “dynamicCollider” capsule there, which might be interfering somehow.

The second guess would be the KCC size changing mechanics.

Another probable contestant would be the improved CCD.

So, anyway, the first thing you should do (aside from uncommenting the quickStep line :wink: ) is remove all of the CCD dynamic objects. If it runs, we will know it was CCD or something around it. If not, remove the KCC (the Player controller) and see what happens then.

All of that is created in the map file.

If it doesn’t run with both of those removed, then we will think what to do next.

It could also be a good idea to try and build ODE with different settings. As I said, ODE is terrible when it comes to building it – for instance, the Ubuntu’s package doesn’t work with Panda at all, IIRC. I have also had problems (sometimes very strange) before caused by differences in how Windows, Ubuntu or a new Panda package was built in that regard. Obviously, I’m not saying it’s not a bug in the code, but it as well may be the build. After all, it works on Panda packages for both Windows and Linux.