He utilizado con éxito Farseer para desarrollar uno de mis juegos usando XNA. El juego funciona como un encanto en Windows y WP7. Actualmente estoy trabajando en portar mi juego en IOS usando Monotouch y Monogame. He compilado y usado Farseer también con éxito en la primera versión de mi juego portada sobre Monotouch y Monogame. Todo funciona bien excepto por actuaciones. El juego funciona mucho más lento en el dispositivo iPhone. Hice algunas investigaciones de código y parece que el mayor cuello de botella es Farseer. Se vuelve realmente lento cuando tiene que administrar más de 5-6 cuerpos con un solo accesorio conectado (círculo).Cambiar la configuración de Farseer Physics Engine para mejorar las actuaciones
Leer la documentación Noté que a Farseer sintonizar pudiera cambiar los valores de la clase estática Marco:
Rendimiento
Con el fin de obtener el máximo rendimiento del motor, usted debe tratar de seguir las directrices a continuación:
Habilitar dormir dormir le permite tener un gran número de cuerpos en el mundo. También puede aumentar la estabilidad del motor ya que los pequeños movimientos en una pila de cuerpos no se separan en la pila. Un cuerpo dormido tiene poca sobrecarga, por lo que se recomienda habilitarlo.
Desactivar CCD continuo de detección de colisiones previene túnel, pero a costa de rendimiento. Si no tiene problemas con la creación de túneles, debe desactivar el CCD por completo.
minimizar el número de iteraciones de posición y velocidad Un alto número de iteraciones hace que el motor más estable a costa de rendimiento. Debes modificar los valores para que se ajusten a tu juego.
La mala noticia es que si cambio algún valor de esa clase, nada parece suceder. He intentado cambiar los valores de la siguiente manera:
EnableDiagnostics = false
VelocityIterations = 6
PositionIterations = 2
ContinuousPhysics = false
Probé también con valores más bajos como VelocityIterations = 1, pero nada parece cambiar ....
Cualquiera que ya han cambiado los valores de clase ajustes para mejorar el rendimiento?
Puede intentar preguntar esto en http://gamedev.stackexchange.com/. Dado que su comunidad se centra específicamente en el desarrollo de juegos (con una concentración aparentemente alta de desarrolladores XNA), puede obtener mejores respuestas allí. –
Mono es muy lento.Muy bien puede que no haya forma de alterar la configuración lo suficiente como para salvarte a ti mismo. – ClassicThunder
No es cierto ClassicThunder, Mono y Monotouch son realmente efectivos incluso en iOS. He resuelto el problema y descubrí que Farseer no era el mayor embotellador en esto. – John