Fisica per un platform 2.5D con un piano che curva


9

Sto creando un platform 2.5D in XNA che utilizza modelli 3D che sono costretti a viaggiare su un piano 2D (proprio come Trine ).

Per rendere le cose più complicate, tuttavia, voglio che il piano 2D stesso sia in grado di curvare. Considera questo replay di Klonoa (devi solo guardare per 10 secondi): sebbene il giocatore si trovasse su un piano 2D, l'aereo stesso potrebbe avvolgere il lato di una montagna, permettendo effettivamente al giocatore di viaggiare attraverso lo spazio 3D - per tutto il tempo vincolato al normale piano 2D di un platform.

Come dovrebbe essere affrontata la fisica in un gioco come questo?

  • Dovrei usare un motore fisico 2D o un motore fisico 3D?
  • Esistono dei motori fisici progettati realmente tenendo presente questa situazione?
  • Per quelli che non sono stati progettati per questo: quali hack o trucchi saranno necessari per far cooperare il motore fisico con me?

2
Immagino che la "curva" sia puramente visiva, in termini di fisica, sembra essere 2D. L'unico trucco sarebbe convertirlo nello spazio GFX o convertirlo nello spazio fisico.
Deceleratedcaviar

Risposte:


9

Un platform come questo è ancora, nella sua essenza, un platform 2D. L'effetto 2.5D, anche il curling attorno alla montagna, è semplicemente una visualizzazione di un mondo vincolato in 2D. Il tuo motore fisico probabilmente funzionerà solo su questo mondo e non sulla sua visualizzazione, quindi sarà sufficiente un motore fisico 2D.

Detto questo, potresti essere interessato ad alcuni effetti 3D. Nel gioco "Bionic Commando: Re-arms", i personaggi nemici sconfitti "rotolano" dalla piattaforma, rendendo la fisica ragdoll in realtà 3D. Inoltre, la maggior parte dei motori di fisica 3D ti consente di limitare il movimento lungo uno o più assi (anche se con alcune modifiche come la creazione di un giunto tra la strada e lo spostamento di personaggi).

Ricorda che non tutti gli effetti 3D richiedono un motore fisico completo. Potresti codificare le tue implementazioni 3D per cose minori come la caduta di detriti dopo un'esplosione, senza dover ricorrere a un motore 3D completo.

La mia raccomandazione è iniziare con un motore 2D se probabilmente non avrai bisogno di calcoli di fisica nella terza dimensione. In caso contrario, selezionare un motore 3D e limitare i calcoli in solo due assi, se pertinente.


2

Dipende se la tua fisica può accadere al di fuori dello spazio del giocatore piatto.

Come diceva ghostonline, le animazioni di detriti e ragdoll sono un classico esempio di fisica fuori dal 2D in un gioco 2.5D.

Un altro esempio sono i proiettili: se ci sono proiettili nel tuo gioco, seguono la curvatura del tuo spazio 2D o viaggiano dritto anche se ciò significa che lasceranno quei limiti?

Anche mappare correttamente uno spazio fisico 2D su una visualizzazione 3D curva è (correggimi se sbaglio) .. non è così facile. Avrai bisogno di una funzione di proiezione iniettiva che probabilmente coinvolge molte spline o qualcosa di simile.

Pur avendo spazi di gioco 2D curvi è un bel componente aggiuntivo, richiede un certo sovraccarico per il codice. Questo potrebbe essere il motivo per cui non esiste nulla di simile a Trine. Ma il gioco è stato comunque divertente, vero? Ci penserei due volte su una caratteristica del genere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.