Quali sono i pro / contro dell'utilizzo di un motore 3d per i giochi 2D? [chiuso]


16

Di quali pro o contro dovrebbe essere a conoscenza un principiante quando decide tra un motore di gioco 2D (come Slick2D / Flixel / FlashPunk) e un motore 3D (come Unity) per lo sviluppo di giochi 2D?

Ho appena iniziato a sviluppare giochi indipendenti, anche se in passato mi sono dilettato un po 'con Game Maker, Flash e XNA. Ho sentito molte cose positive su Unity, e la sua natura multipiattaforma lo rende attraente, ma a quanto ho capito, è un motore 3d al suo interno.

Per un gioco rigorosamente 2D, ci sono motivi validi per lavorare con un motore 3d come Unity? O aggiungerebbe semplicemente complessità non necessaria alla mia esperienza di apprendimento iniziale?


Ti stai chiedendo nel contesto di un gioco puramente 2D in qualcosa come Unity (come sprite e movimento 2D) o un gioco 3D con un gameplay 2D (come con risorse 3D ma che si muovono solo su un unico piano)?
caos Tecnico,

Ho alcuni amici che hanno lavorato con Unity per creare un gioco 2D chiamato Coypu Space Rumble . La parte 2D iniziale era apparentemente piuttosto noiosa, chiederò ulteriori prescrizioni sul perché.
Jonathan Connell,


Definire "motore 3D"? Stiamo parlando di qualcosa che copre il gameplay o semplicemente di qualcosa che viene visualizzato in 3D?
Nicol Bolas,

@chaosTechnician - Il primo: sprite puramente 2D, movimento 2D, praticamente nessun vero asse z qualunque (solo un semplice indice z per determinare l'ordine di rendering dello sprite)
mrohlf

Risposte:


15

Dipende dal gioco, ma per la maggior parte, sarà più semplice realizzare un gioco rigorosamente 2d usando un motore che è specificamente progettato per 2d.

Ora per alcuni dei pro e dei contro (alcuni di questi saranno specificamente correlati a Unity, alcuni di essi sono più generali)

Contro

  1. I motori 3d sono generalmente progettati intorno a oggetti di gioco come modelli 3d (poligoni e trame). Mentre è certamente possibile creare un piano piatto e applicare una trama ad esso, stai lavorando attivamente contro il motore quando lo fai.

  2. Inoltre, molti motori 3d non hanno la capacità di gestire i fogli sprite (tutti i fotogrammi di animazione su una trama), perché si aspettano che l'animazione agisca sul modello (sebbene rigging e altri metodi), non sulla trama. Ancora una volta, ci sono modi per aggirare questo, ma ancora una volta, stai lavorando attivamente contro il motore per ottenere questo risultato.

  3. Complessità aggiunta. Come menzionato nella risposta di Josh Petrie, 3d è un po 'più complesso di 2d, principalmente nella gestione della matematica e delle scene. Spostare oggetti e gestire lo spazio 3D è difficile, e se questo è uno dei tuoi primi giochi, sarà molto più difficile. La buona notizia: Unity estrae alcuni di questi problemi, anche se ci saranno alcune cose che devi ancora gestire (e gran parte dell'astrazione è, ancora una volta, destinata ai modelli 3d, non agli sprite 2D)

  4. La maggior parte delle librerie fornite da Unity o che puoi ottenere sono pensate per oggetti 3d. Ciò include cose come l'illuminazione, l'individuazione di percorsi, la fisica, ecc. Nel frattempo, box2d funzionerà facilmente con Flash, o XNA o qualcosa del genere (beh, forse).

Professionisti

  1. Accelerazione 3d. Le schede grafiche sono molto migliori nella gestione di molti oggetti in una scena rispetto a una CPU e con Unity puoi ottenere questo vantaggio molto facilmente. Ciò ti consente di visualizzare migliaia di sprite sullo schermo o includere facilmente effetti particellari o aggiungere qualcosa di divertente come gli shader per supportare effetti fantastici come deformare lo spazio e il tempo secondo le tue volontà. Unity ha molti di questi effetti integrati, il che lo rende davvero facile. Si noti che molti motori 2D utilizzano OpenGL o DirectX dietro le quinte e in molti casi possono anche essere accelerati dall'hardware.

  2. Supporto per i modelli. Ricordi quella cosa che era un problema prima? Sì, può anche essere un vantaggio. A seconda del gioco, essere in grado di includere sfere rotanti o qualcosa di interessante come un oggetto 3d sullo sfondo può essere un vantaggio. Puoi anche avere un gioco fatto di 3d, ma semplicemente forzato in una prospettiva 2D, che ti dà la possibilità di ruotare la geometria del mondo senza dover fare tonnellate di grafica extra per gestirlo.

  3. Apprendimento 3d. Ammettiamolo, molti giochi sono scritti in 3d e se imparerai a usare Unity, sarai in grado di applicare molte di quelle abilità al prossimo gioco che potrebbero richiedere 3d. Inoltre, a molti artisti che escono da scuola in questo momento viene insegnata la modellazione 3d, quindi è "più facile" trovare un artista 3d rispetto a un artista di gioco 2d tradizionale (se tali artisti sono buoni ....)

Conclusione

Ci sono molti contro, c'è anche una discreta quantità di pro. Tutto dipenderà dal tipo di gioco che vuoi fare, sta a te decidere se ne vale la pena. Flash è ancora un'opzione estremamente praticabile, quindi non c'è niente di sbagliato nell'andare con un motore 2D se questo è ciò che si adatta meglio al tuo gioco.


+1. Risposta molto approfondita e applicabile. Ho la sensazione che tu l'abbia affrontato prima.
chaosTechnician,

Grazie, proprio quello che stavo cercando! Penso che continuerò a concentrarmi sui motori 2D, poiché la maggior parte di quelli che ho visto sono stati costruiti su OpenGL o DirectX e la modellazione 3d è un po 'al di fuori delle mie capacità in questo momento. Mi piacerebbe imparare Unity ad un certo punto, ma probabilmente starò meglio affrontandolo dopo che avrò un gioco 2d alla cintura.
mrohlf,

Inoltre, i motori 3D ti consentono di disegnare sprite con rotazione arbitraria e alfa molto, molto facilmente; più facilmente che se avessi un motore 2D puro. Questo è il motivo per cui molti moderni motori 2D sono realmente 3D sotto il cofano; puoi anche scrivere shader personalizzati!
ashes999,

7

Un grande svantaggio è la maggiore complessità: i motori 3D non hanno sempre lo stesso livello di supporto di prima classe per la grafica 2D come i motori 2D dedicati. Ciò significa che si tratta di un sacco di lavoro extra per affrontare la composizione e la gestione di una scena 2D e / o si sta ancora affrontando la complessità della pipeline matematica e di trasformazione 3D. Soprattutto se non hai familiarità con i fondamenti della teoria della grafica 3D, puoi ritrovarti perso e confuso quando le tue immagini non vengono visualizzate e se non stai attento, puoi imbatterti in una "soluzione" che rende il tuo le immagini appaiono ma non sono necessariamente corrette (e ti morderanno in seguito).

Ma al di là dell'aspetto umano, fintanto che il motore 3D ha gli strumenti necessari per costruire il tuo gioco 2D, non è una cattiva idea usarne uno. Sono molto più diffusi in questi giorni e tendono a essere sviluppati in modo più aggressivo, quindi è un vantaggio. Inoltre, ci sono probabilmente ancora una manciata di motori o framework focalizzati in 2D che non usano D3D o OpenGL dietro le quinte, e quindi potrebbero non ottenere i benefici delle moderne GPU.

In questa domanda correlata puoi vedere molte discussioni su ciò che potrebbe rendere il 3D più difficile (dovrai solo occuparti di un sottoinsieme di questo se dovessi usare il motore 3D solo per un gioco 2D).


2

Pro: maggiore impegno viene speso dai produttori di schede video per ottimizzare i loro driver 3D. Non sei bloccato in 2D per effetti speciali o fluoruri. Non devi simulare sopra e sotto di te. Il cambio di punti di vista non richiede un re-do completo di tutta la tua arte. Sosterrò che il 3D si ridimensiona visivamente.

Contro: le pipeline delle risorse dovranno probabilmente essere adattate al tuo motore. Alcune operazioni semplici in 2D sono più complesse in 3D. Le librerie probabilmente avranno funzionalità extra che non userete mai.


0

Basta imparare Unity se puoi. Unity funziona DAVVERO bene con Blender 3D che è open source e gratuito. Ci sono un sacco di buoni tutorial online su come modellare e animare 2D in Blender con gli aerei. Inoltre ci sono un sacco di modelli che puoi scaricare online di solito gratuitamente o economici che puoi usare come punti di partenza.

Questo ovviamente presuppone che non sei abile a creare il tuo Game Engine. Il mio gioco 2D preferito in questo momento è Super Meat Boy che è stato progettato in Flash e la fine della programmazione è stata fatta su misura ... creando un motore di gioco adatto alle esigenze particolari dei giochi. Questo è il modo migliore per affrontare un progetto del genere perché ti dà molta libertà. Detto questo, ci vuole molto lavoro per percorrere quella strada.


In realtà, ora che UNITY ha aggiunto il supporto 2D, questo è ancora più semplice: pcworld.com/article/2062740/…
Aesadai,

1
Dico ancora Unity fa schifo per i giochi 2D. Per i giochi 2D non è di qualità professionale per me, basta confrontare con un solido motore 2D come Cocos2D-swift. Questo è un gioco da ragazzi.
Jonny il
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.