Farseer Physics have just informed everyone that their new physics engine (3.0) is stable enough for use! This is great news that I have been waiting for for a while now!
The main difference between the Farseer physics engine and Physics2D.NET (which is what I currently use) is the fact that Physics2D uses a distance grid to support both convex and concave shapes, while Farseer only supports convex shapes. So if you want to use a concave shape in Farseer, you first have to break it up into smaller convex pieces using a process called convex decomposition.
This may sound like a nasty extra process, but it is actually much better than the distance grid approach. Say you have a really large block that fills up the whole screen. Using the distance grid, it doesn't matter that there are only 4 corners, it still has to calculate the distance grid every few pixels along the block, and depending on the size this can sometimes take up to a minute to complete. Using convex decomposition however, adding the shape will be near instant, as the only important factor is the number of corners!
So what does this mean for Boxycraft?
Firstly, creating and editing shapes in the editor will be *much* faster, especially for large ones. Secondly, because it's so much faster, it opens up the opportunity for modifying those shapes on the fly during a game. This means worms-like explosions that dig away part of the level, and lazers that slice objects in half!
Another feature it brings is breakable objects. Because most objects are already broken up, you can have them shatter into pieces if they are hit with a hard enough force. This is already a feature of the new Farseer 3.0 engine, and I plan on using it well!
I've just started the change, and while it's going to be a lot of work, it's extremely exciting!