CodePlexProject Hosting for Open Source Software
It is time for another update. First I will answer everyones question: No, we are not dead :)
The Box2DX port is coming along fine. It is hard to keep up with the updates made to the Box2D tree, so we have been a little behind. Our port is now updated to revision 31 (The newest) and I'm currently working on finding the errors I made during the update.
(There are always some...)
I have a list of stuff that has been ported over. This also gives you an idea of what Box2D includes feature wise.
1. (De)Activation of bodies
Bodies can now be deactivated and thus will not be included in the collision process. We have had this in Farseer Physics since the beginning. Now that we have it in Box2DX is just another plus.
2. Explicit body types
A body can be of 3 types: Static, kinematic and dynamic. Static bodies can't move, dynamic can. Kinematic bodies are a little special and I will write more about it when it as some point in the future.
3. More uniform API
A lot of properties have been added to joints, bodies and shapes. The naming of them have also been changed to be more consistent. When I begin developing Farseer Physics Engine 3.0, we will probably change a lot of this to be even simpler. But it is always
a plus that Box2D changed the API to be easier beforehand.
4. A LOT of bug fixes.
About 40 bugfixes made it into the newest revisions. They fixes some problems like infinite loops in the new broadphase and raycasting.
5. New joints
WeldJoint and FrictionJoint was added into revision 31. More about those later.
6. New samples
New samples to demonstrate WeldJoint, FrictionJoint, Body activation and a lot more. 2 samples were added in total - old ones were changed to show off the new functionality.
I hope to find the last bugs before new years eve, but I can't promise anything.
Great news and great work.
Thanks.
I checked in a large batch of bugfixes last night. The samples should be stable now and the engine itself should work. There are still a small amount bugs in the engine; one related to creating fixtures that I can't seem to find. I will take another look
at it later today.
As most of you know, I've been taking up the task of updating Box2DX to Box2D 2.1. It worked fine and I've fixed a lot of porting related bugs lately. - Then I noticed another C# and XNA based port from Brandon Furtwangler and Nathan Furtwangler was getting
attention on the Box2D forums, so I decided to see what they came up with. After a deep code inspection I noticed that Box2DX and Box2D.XNA are 99% identical (really... line by line). The difference lies in that Box2D.XNA optimized their build using static
sized generic arrays (tuples actually) and structs. I tested the performance of the two builds and Box2D.XNA was 2ms faster on my computer.
That made me choose Box2D.XNA over Box2DX. Not only is it more optimized, but it also removes the burden of porting Box2D to Box2DX from me. I started focusing on the work of creating Farseer Physics Engine 3.0. So far I've created the foundation and uploaded
a working build.
I will work on FPE 3.0 features from now on and hopefully get an alpha version of FPE 3.0 out soon.
These are great news! Thanks! You made my day :)
It is new years eve in 21 hours here. Going to give the coding a rest for tonight and see what I can squeeze in tomorrow. I might jump into the new year with my laptop in my hand while coding on FPE 3.0. ;)
Update:
Matthew is lending me a much needed hand and he has started working on some nice looking samples. He has also created a video of a performance test that I think is pretty awesome. You can see it here:
I've been working hard on refactoring the engine to make the API clean and more consistent. I've also improved the performance of the engine so that it allocates less memory than when we started. This is good news for Xbox360 users since that is Xbox360's
nemesis. It should run much faster on the Xbox platform than earlier version of Farseer Physics.
Next thing we do is to implement all the tools from FPE 2.x and hopefully improve on them while we do it. I will post more updates soon.
The source code now contains the start of the new SimpleSamplesXNA. Only the first demo is finished and it is different. Check it out if your brave.
I'm feeling brave, but I can't find where to download the test release :)
Great job! How different from the Box2D Port will Farseer 3 be?
@pnikosis:
You need to download the source code from the source control to get the newest release. It is inside the FPE 3.0 folder. Beware that it is not ready for use. Consider it a pre-alpha version.
@robertdodd:
I will write a list of differences between Farseer Physics Engine and Box2D (and that includes ports of Box2D) when I'm close to the final release.
How hard will be to port projects from the current farseer version to 3.0 when it's released?
@hamsal: Good question.
Right now the code is pretty hard to upgrade to. It uses the Box2D classes and names (Body, shape, fixture) and that is a very flexible setup. However, I would like something simpler as we have in FPE 2.x. (Body, geometry) without removing the flexible part.
I believe Matthew implemented the old factories in the new code, so if you are using the factories, it should be a lot easier to upgrade to 3.0.
The tools will be split up into different namespaces and their name will change. We kept the collision delegates and I will try to implement the same API in World (3.0) as we have in PhysicsSimulator (2.x).
I'm not sure how backwards compatible the 3.0 version will be, but I will try to use 2.x as a guide when creating the API. I'm not much for API garbage (Old method calls to new methods), so don't expect too much.
I plan on using Farseer for some projects in the not-so-distant future. Do you have an idea about a release date for Farseer Physics 3.0? Days, weeks, months?
Are you sure you want to delete this post? You will not be able to recover it later.
Are you sure you want to delete this thread? You will not be able to recover it later.