[ODE] Randomly, ODE goes haywire
shamyl at zakariya.net
Mon Jan 24 17:47:01 MST 2005
I've been writing a simple game as a side project, and it's been
working out well. However, now and then ( maybe one time in ten or
fifteen ) when loading or reloading a level, the joints in the player
vehicle ( a dune buggy type thing ) go wobbly and the buggy falls
through the trimesh ground. When I say "wobbly" I mean it's like the
buggy's made of Jello.
When this happens, ODE continually spits out the message:
ODE Message 3: LCP internal error, s <= 0 (s=nan)
The game doesn't crash, it just goes haywire. Sometimes the buggy just
falls downwards, through the ground trimesh and through a groundplane
at z=0; other times the buggy bounces back up and flies into the sky.
If I exit the level, and reload it, it's generally *fine*.
This is interesting because it's unpredictable. Most of the time it
doesn't happen. Sometimes it does. When it does happen, it's *always*
right when the level is loaded, not during gameplay.
I can't find any circumstance that leads the situation. If the sim were
always unstable I'd understand, but this is a situation where the sim
is 100% stable 99% of the time, and the one percent of the time it
isn't stable, it's *completely* bogus.
When I first discovered the trouble, I was maintaining one world, space
and contact group for the duration of the game app lifetime -- e.g.
created when the game starts and destroyed when the app exits. I
switched it to destroy the world, space and contact group ( and call
dCloseODE() ) and make new ones when a level is loaded, but that didn't
Does anybody have any ideas?
"this is, after all, one of those movies where people spend a great
deal of time looking at things and pointing."
From a review of _Fantastic Voyage_
More information about the ODE