When was the last time I've mentioned a psychics engine? A while. Farseer? Even longer. The release of a Farseer update seems like a good time to fix that...
Farseer Physics Engine 3.5 - Mars is not that far away
FPE 3.5 is a major release that implements the latest tools, bugfixes and speed improvements. Note that all the packages contain project files for both XNA, Xbox360, Windows Phone 7 and MonoGames
Support the project
If you liked this release and would like to keep this project going. Please consider donating.
- Huge speed improvement when added a lot of bodies
- Support for MonoGame
- New MotorJoint for car suspension
- Fixed a bug where OnSeparation was not always called
- Less garbage generated from DebugView
- More cache-coherent joints
- Fixed bug in YuPengClipper when two polygons completely overlapped
- The engine should now be thread safe.
- Arc shapes now use a single body
- Added LoopShape, a fully closed set of edge shapes with smooth collision
- Better serialization support (now with support for joints)
- Cloning objects have been fixed
- Introduced AllCollisionCallbacksAgree and SkipSanityChecks to Settings
- Much, much more...
Notes on upgradingThe engine is not backwards compatible. If your current version works fine, I would suggest you keep it. A few of the changes that breaks backwards compatibility:
- Triangulation algorithms are now encapsulated inside the new Triangulate class. This is to ensure high performance by omitting checks that are not necessary for different algorithms.
- All joints now work in local coordinates. Use the "UseWorldCoordinates" overload and set it to true, to use world coordinates instead.
- Fixed joints have been removed, as they had issues calculating the correct position and velocity in some rare situations.
What is Farseer Physics Engine?
Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. Download the latest version and checkout our documentation.
FeaturesFarseer Physics Engine is based on Box2D, which means we have a lot of features in common. However, we also have a lot more features that are not included in the Box2D engine. See a list in our documentation.
- Continuous collision detection (with time of impact solver)
- Contact callbacks: begin, end, pre-solve, post-solve
- Convex and concave polyons and circles.
- Multiple shapes per body
- Dynamic tree and quad tree broadphase
- Fast broadphase AABB queries and raycasts
- Collision groups and categories
- Sleep management
- Friction and restitution
- Stable stacking with a linear-time solver
- Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types
- Joint limits and joint motors
- Controllers (gravity, force generators)
- Tools to decompose concave polygons, find convex hulls and boolean operations
- Factories to simplify the creation of bodies
And of course, the source for the engine and samples are all available;
Here's the XNA sample running;