FarseerUnity - Aftermath
The project is now at Unity Asset Store! One of the major updates is the settings panel. You can change all the Farseer Physics settings on a regular unity window. You can also set different settings based on the target platform.
Image 1 - FarseerUnity Settings
The performance was also tested many times so we could determine if it is actually possible to use FarseerUnity on a mobile device. The engine's bottleneck is the contact solver (image 2).
Image 2 - Profiler's bottleneck
There is nothing we can do to improve this function. This part of Farseer is already coded wisely, optimized in the best way it can be. The bad news is that it isn't running fast enough on mobile devices (well, we tested it on an iPad 1st gen), as you can see on the image below.
Image 3 - Running with FixedUpdate on iPad 1G
When it comes to performance on mobile hardware, what actually made a big difference when profiling on the iPad was to avoid FixedUpdate at all (this is now possible with the new settings window). The problem when using a variable time step is that the joints become more soft than usual, but that's the only way to keep a reasonable framerate on iOS at the moment. Using Unity's math classes didn't make a difference so we're keeping the FVector classes (it's easier to update Farseer this way).