Chipmunk 6.0 Beta
Posted: Wed Mar 30, 2011 2:51 pm
Ok! So Chipmunk 6 is almost ready except that I haven't finished updating the documentation yet.
You can check out the source from subversion here:
http://chipmunk-physics.googlecode.com/ ... pmunk-6.x/
Now, keep in mind that this is a beta and that the documentation isn't complete yet. I'm posting this so that people can try it in their projects so I can get feedback. There might still be a few bugs here and there, so make sure you test things well before releasing a game built on it.
So what kind of feedback am I looking for?
You can check out the source from subversion here:
http://chipmunk-physics.googlecode.com/ ... pmunk-6.x/
Now, keep in mind that this is a beta and that the documentation isn't complete yet. I'm posting this so that people can try it in their projects so I can get feedback. There might still be a few bugs here and there, so make sure you test things well before releasing a game built on it.
So what kind of feedback am I looking for?
- The API has changed slightly in order to pave the way for new features. Some functions and fields have been replaced with new ones, while some have been removed or made explicitly private. I need to make a Chipmunk 5 -> 6 migration guide. So ask questions like "I was doing this: ... how do I do the same with Chipmunk 6?"
- New feature X is cool. New feature Y as lame. New feature Z would be even cooler if you did W.
- Crash reports.
- Chipmunk 6 supports several different broadphase algorithms. An AABB tree with good temporal coherence, 1D sort and sweep, and good old spatial hashing. Chipmunk now defaults to using the AABB tree when creating new spaces. This should increase performance for most games. It requires no tuning like the spatial hash does, and isn't nearly as sensitive to variable sized objects.
- Accessors and iterators for many things that didn't have an official public API or simply weren't accessible. cpBodyEachArbiter(), cpBodyEachShape(), cpBodyEachConstraint(), cpSpaceEachBody(), cpSpaceEachShape(), etc.
- Access to the collision graph using cpBodyEachArbiter(). One great use is to easily check if your player is standing on the ground, and which shapes it is touching.
- Performance. A lot of things have changed that should notably improve performance.
- Better support for variable time stepping. Cached impulses are now applied in a way that includes changes to the timestep. Fixed sized timesteps are still highly recommended to avoid problems with missed collisions, but Chipmunk will now work better with time scaling.
- Vastly improved sleeping algorithm. (Though I suspect that nobody will notice)
- Made a lot of Chipmunk's API explicitly private. While this will cause a number of grumbles if people were doing undocumented things, at least now they know for sure when they are doing it.