What's the difference between Farseer and Box2d.XNA?

Jul 28, 2010 at 4:32 AM
Hi Guys, I have tried to search but haven't found any decent answers. It looks like a lot of the source for v3 comes from box2d.xna. Can someone tell me what the differences are? Are there advantages of one over the other?
Jul 28, 2010 at 7:19 AM

Yes F3 is based on Box2D. As far as I know, F3 is like a wrapper around Box2D, with extra functions.

Jul 28, 2010 at 8:00 AM

Box2D.xna is a port of Box2D.  FP3 is a port from Box2D.XNA.  Now that the porting is complete, they are working on implementing things that FP2.x had which Box2D did not.  There *shouldn't* be any differences between Box2D.XNA and FP3, but I think there are some inconsistencies with how some objects react.  The devs will have to comment further.

Jul 28, 2010 at 8:02 AM

I think that Box2D.XNA is as close to Box2D as they could make it, whereas in Farseer there are factory classes and other helper classes to make it a bit easier.

None of those extra classes affect the physics though, and they should both run at the same speed. There was a bug but it's fixed now: http://farseerphysics.codeplex.com/Thread/View.aspx?ThreadId=219918

Jul 28, 2010 at 2:41 PM

At some point, is Farseer going to become more officially a wrapper around Box2d.xna, instead of a port of Box2D.XNA w/helper classes? By that I mean, will we at some point be able to use the Box2D.XNA assemblies directly, along with the Farseer helper class assemblies separately, instead of Farseer-specific assemblies for everything?

It seems like there is a lot of duplicate work in doing a second port of the original box2d engine. There is a lot of time between when a major new feature is added to the C++ Box2D, then ported to Box2D.XNA, then ported to Farseer. I'd like to be able to take advantage of a late-breaking change in Box2D.XNA without waiting for it to be downstream ported to Farseer (unless it's a breaking change of course).

I think a merge of the two projects would be good for the community, in general. What do you think?