For the past couple months I've been going back and forth on whether to keep working on my game, or take the time to release another version of my physics engine. I told myself I wasn't going to another physics engine release until my game was done.
Without going into all the details of why, I changed my mind and decided to take a small break from my game and update the physics engine.
First things first: This version I'm working on now will NOT be backward compatible with the previous release. There are to many things I wanted to clean up and for now, backward compatibility isn't in the cards.
So, here is a preview of what's to come. Some of these features already exist and some are new.
Farseer Physics Engine (Refresh) Features
- Easy To Use!
- Supports Both XBOX 360 and Windows
- Full 2D Rigid-Body Dynamics with Collision Detection
- Supports Both Concave and Convex Polygons
- Multiple Geometries Per Physics Body with Offsets
- Body, Geometry, and Joint Factories for Easy Object Creation
- Collision Categories For Complex Interaction Between Physics Objects
- Collision Events
- Revolute Joint
- Angle Joint
- Linear and Angular Springs
- Built In Debug Viewer To View All Major Physics Objects
- Samples Framework With Samples Covering All Major Engine Features.
- User Manual
Some of these are worth further mention.
I've built a Debug Viewer into the physics engine. The 'PhysicsSimulatorView' object makes it easy to see the detail of all current bodies, geometries, joints, and other miscellaneous details.
I will not release until I've documented all the core features of the engine. Here is a very small sneak peak at what that will look like:
I've created a samples framework to gather all my samples into a single application. This framework based on the Game State Management Sample and uses a separate "Screen" for each demo to make code-viewing easier. Here a some early screenies: (yellow objects represent objects you can control)
So, when will this new version be released you are probably asking yourself... or maybe not.
I don't have a hard release date. I'd say I'm currently about 50% done with the updates. My work hours are limited to a couple hours a day so if I had to guess I'd say it'll be a month or 2 before I have things ready to go.