Física para un juego de plataformas 2.5D con un plano que se curva

9

Estoy creando un juego de plataformas 2.5D en XNA que usa modelos 3D que están limitados a viajar a lo largo de un plano 2D (como Trine ).

Sin embargo, para simplificar las cosas, quiero que el plano 2D mismo pueda curvarse. Considere esta repetición de Klonoa (solo necesita mirar durante 10 segundos): aunque el jugador estaba en un plano 2D, el avión en sí podría envolverse alrededor de la ladera de una montaña, permitiendo al jugador viajar a través del espacio 3D todo el tiempo. restringido al plano 2D normal de un juego de plataformas.

¿Cómo debería abordarse la física en un juego como este?

  • ¿Debo usar un motor de física 2D o un motor de física 3D?
  • ¿Hay algún motor de física diseñado realmente con esta situación en mente?
  • Para cualquiera que no haya sido diseñado para esto: ¿qué trucos o trucos serán necesarios para que el motor de física coopere conmigo?
doppelgreener
fuente
2
Supongo que la 'curva' es puramente visual, en términos de física, parece ser 2D. El único truco sería convertirlo en espacio GFX o convertirlo en espacio físico.
deceleratedcaviar

Respuestas:

9

Un juego de plataformas como este sigue siendo, en esencia, un juego de plataformas en 2D. El efecto 2.5D, incluso el rizado alrededor de la montaña, es simplemente una visualización de un mundo limitado en 2D. Su motor de física probablemente solo operará en este mundo y no en la visualización del mismo, por lo que un motor de física 2D será suficiente.

Dicho esto, es posible que te interesen algunos efectos 3D. En el juego "Bionic Commando: Re-arm", los personajes enemigos derrotados "rodarán" fuera de la plataforma, haciendo que la física de los muñecos de trapo sea realmente 3D. Además, la mayoría de los motores de física en 3D le permiten restringir el movimiento a lo largo de uno o más ejes (aunque con algunos ajustes, como crear una unión entre la carretera y los personajes en movimiento).

Recuerda que no todos los efectos 3D necesitan un motor de física completo. Puede codificar sus propias implementaciones 3D para cosas menores como la caída de escombros después de una explosión, sin tener que recurrir a un motor 3D completo.

Mi recomendación es comenzar con un motor 2D si probablemente no necesitará cálculos físicos en la tercera dimensión. De lo contrario, elija un motor 3D y restrinja los cálculos en solo dos ejes cuando sea relevante.

fantasma
fuente
2

Depende de si algo de tu física puede suceder fuera del espacio del jugador plano.

Como dijo ghostonline, las animaciones de escombros y muñecos de trapo son un ejemplo clásico de física fuera de 2D en un juego 2.5D.

Otro ejemplo son las balas: si hay proyectiles en su juego, ¿siguen la curvatura de su espacio 2D o viajan en línea recta incluso si eso significa que dejarán esos límites?

También asignar un espacio físico 2D a una visualización 3D curvada correctamente es (corríjame si me equivoco) ... no es tan fácil. Necesitará una función de proyección inyectiva que probablemente implique muchas splines o algo similar.

Si bien tener espacios de juego 2D curvos es un buen complemento, requiere bastante sobrecarga para el código. Esa podría ser la razón por la cual no existe tal cosa en Trine. Pero el juego fue divertido de todos modos, ¿no? Me lo pensaría dos veces antes de una característica como esa.

Jonas Bötel
fuente