I heard of something called “Box2D” but did not know much about it. I went to look at the API, but found the applet demo first. I noticed the bridge demo was buggy. Fire da bomb and it occasionally flies through the bridge. Another demo froze. I tried the Flash port demos of Box2D too. One of the objects went through another object once. The ray casting demo was broken. It’s a little surprising. I would have thought obvious bugs would have been eliminated or at least not so obvious. Isn’t it a fairly old project used in quite a few games?
Box2D works fine, it’s good enough for Angry Birds and all that. The demos sound like they need a little work with their precision, maybe their timestep, since it sounds like they’re exhibiting tunneling effects (one of the reasons to use a fixed timestep!) It’s a usage problem with any physics library, it’s not a bug in Box2D.
Box2D is of high quality but there are many ports out there of old and alpha versions of it which degrades its reputation.
I think that you can increase the quality of collision detection for fast moving objects like bullets to deal with tunneling more robustly.
Maker of box2d is Industry veteran Erin Catto and his physics are good enough for Blizzard Diablo series. Best physic engine I have ever used.
But just like every physic engine using it carelessly can break it.
That still leaves the question: Is the Java port of Box2D better than its demos?
Depends. Either you’re talking about JBox2D or LibGDX’s port of LibGDX. JBox2D isn’t updated that often anymore, afaik, and is a direct port from the C++ code into Java, whereas LibGDX’s Box2D is a link, a wrapper between the original C++ code and the Java code.
I am glad you brought that up. I did not know it existed and it’s not technically a port. Knowing JBox2D is not updated often is also very helpful. (By that I assume you mean less often than Box2D and slow to fix bugs. One could have a flawless piece of software and never have to update at all.)
“flawless piece of software”
lolled.