Diferencia entre la física Arcade, P2 y Ninja en Phaser

33

Soy un principiante y trato de aprender el desarrollo de juegos usando Phaser . Actualmente Phaser proporciona tres sistemas de física, a saber, Arcade, P2 y Ninja. Pero no sé las diferencias entre ellos y también me gustaría saber en qué escenario deberíamos usar un sistema de física en particular.

Por favor, dame una idea de estos sistemas de física.

Vijay
fuente
1
Phaser se envía con nuestro sistema Arcade Physics, Ninja Physics y P2.JS, un sistema de física de cuerpo completo. Arcade Physics es solo para colisiones AABB de alta velocidad. Ninja Physics permite mosaicos y pendientes complejas, perfectos para paisajes nivelados, y P2.JS es un sistema de física de cuerpo completo, con restricciones, resortes, soporte de polígonos y más.
congusbongus
Y ahora también está el backend de Box2D pagado, que debería ser similar a P2.JS pero mejor.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

39

Como se menciona en los comentarios, su sitio ya explica cuáles son los tres sistemas y para qué se pueden usar.

Arcade Physics es solo para colisiones AABB de alta velocidad.

AABB significa rectángulos delimitados por ejes alineados; significa que tiene objetos sin rotación, y solo está verificando si la imagen (que es un rectángulo) se superpone con otra imagen (por lo que existe una posible colisión). Esto es barato de calcular y rápido, por lo que probablemente lo recomienden para colisiones de alta velocidad.

Un problema con AABB es que no garantiza que realmente haya una colisión; Es posible que se superponga un área completamente transparente.

Ninja Physics permite mosaicos y pendientes complejas, perfectas para paisajes nivelados, [...]

¿Recuerdas cómo AABB no gira? Ninja Physics manejará rotaciones (por lo que puede hacer pendientes y mosaicos complejos). Este es un modelo de física más flexible (y probablemente más preciso); Probablemente sea más lento.

[...] P2.JS es un sistema de física de cuerpo completo, con restricciones, resortes, soporte de polígonos y más.

Si necesita modelar resortes (por ejemplo, algo que se balancea como un péndulo), restricciones en las fuerzas y formas poligonales arbitrarias (por ejemplo, tetraedro), esto suena como lo que desea. Si quieres un marco de referencia, piensa en algo como Angry Birds.

Según tu juego, puedes elegir cuál se adapta mejor a tus necesidades. Suena como un espectro de velocidad versus precisión / complejidad (Arcade Physics es la más rápida pero la más simple).

cenizas999
fuente
¿Una incidencia del modelo más preciso disminuye el rendimiento?
expiredninja
@expiredninja sí, por supuesto. AABB es rápido y barato; los otros dos son más complejos y ricos en características (p. ej., pendientes, rotaciones), por lo que tienen un costo de rendimiento.
cenizas999
Supongo que me preguntaba cuáles son los umbrales en general en términos de número y / o complejidad de los objetos.
expiredninja
2
@expiredninja que dependerá en gran medida de tu hardware y lógica de juego. Le sugiero que abra otra pregunta, o mejor aún, simplemente pruébelas y vea qué funciona mejor para sus necesidades.
cenizas999