Physique pour un jeu de plateforme 2.5D avec un plan qui courbe


9

Je crée un jeu de plateforme 2.5D dans XNA qui utilise des modèles 3D qui sont contraints de voyager le long d'un plan 2D (tout comme Trine ).

Pour compliquer les choses, cependant, je veux que le plan 2D lui-même puisse se courber. Considérez cette rediffusion de Klonoa (vous n'avez besoin de regarder que pendant 10 secondes): bien que le joueur était sur un avion 2D, l'avion lui-même pourrait s'enrouler autour du flanc d'une montagne, permettant effectivement au joueur de voyager à travers l'espace 3D - tout le temps contraint au plan 2D régulier d'un jeu de plateforme.

Comment aborder la physique dans un jeu comme celui-ci?

  • Dois-je utiliser un moteur physique 2D ou un moteur physique 3D?
  • Existe-t-il des moteurs physiques réellement conçus en tenant compte de cette situation?
  • Pour ceux qui n'ont pas été conçus pour cela: quels hacks ou astuces seront nécessaires pour que le moteur physique coopère avec moi?

2
Je suppose que la «courbe» est purement visuelle, en termes de physique, elle semble être en 2D. La seule astuce serait de le convertir en espace GFX ou de le convertir en espace physique.
deceleratedcaviar

Réponses:


9

Un jeu de plateforme comme celui-ci est toujours, dans son essence, un jeu de plateforme 2D. L'effet 2.5D, même le curling autour de la montagne, n'est qu'une visualisation d'un monde contraint en 2D. Votre moteur physique ne fonctionnera probablement que sur ce monde et non sur sa visualisation, donc un moteur physique 2D sera suffisant.

Cela dit, vous pourriez être intéressé par certains effets 3D. Dans le jeu "Bionic Commando: Re-arme", les personnages ennemis vaincus "rouleront" de la plate-forme, ce qui rendra la physique du ragdoll en 3D. De plus, la plupart des moteurs de physique 3D vous permettent de contraindre le mouvement le long d'un ou plusieurs axes (bien qu'avec quelques ajustements comme la création d'un joint entre la route et les personnages en mouvement).

N'oubliez pas que tous les effets 3D n'ont pas besoin d'un moteur physique à part entière. Vous pouvez coder vos propres implémentations 3D pour des choses mineures comme la chute de débris après une explosion, sans avoir à recourir à un moteur 3D complet.

Ma recommandation est de commencer avec un moteur 2D si vous n'aurez probablement pas besoin de calculs physiques en 3ème dimension. Sinon, choisissez un moteur 3D et contraignez les calculs sur seulement deux axes, le cas échéant.


2

Cela dépend si une partie de votre physique peut se produire en dehors de l'espace du lecteur plat.

Comme l'a dit ghostonline, les animations de débris et de ragdoll sont un exemple classique de physique hors 2D dans un jeu 2.5D.

Un autre exemple est celui des balles: s'il y a des projectiles dans votre jeu, suivent-ils la courbure de votre espace 2D ou voyagent-ils tout droit, même si cela signifie qu'ils quitteront ces limites?

Il est également difficile de mapper correctement un espace 2D physique à une visualisation 3D incurvée (corrigez-moi si je me trompe). Vous aurez besoin d'une fonction de projection injective impliquant probablement beaucoup de splines ou quelque chose de similaire.

Bien que le fait d'avoir des espaces de jeu 2D incurvés soit un bon complément, il nécessite un certain temps supplémentaire pour le code. C'est peut-être la raison pour laquelle il n'y a rien de tel à Trine. Mais le jeu était quand même amusant, non? Je penserais à deux fois à une fonctionnalité comme ça.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.