Quels sont les avantages / inconvénients de l'utilisation d'un moteur 3D pour les jeux 2D? [fermé]

16

Quels avantages ou inconvénients un débutant doit-il savoir lors du choix entre un moteur de jeu 2D (comme Slick2D / Flixel / FlashPunk) et un moteur 3D (comme Unity) pour le développement de jeux 2D?

Je ne fais que commencer dans le développement de jeux indépendants, même si j'ai un peu essayé le Game Maker, le Flash et le XNA dans le passé. J'ai entendu beaucoup de choses positives sur Unity, et sa nature multiplateforme le rend attrayant, mais si je comprends bien, c'est un moteur 3D à la base.

Pour un jeu strictement 2D, y a-t-il des raisons impérieuses de travailler avec un moteur 3D comme Unity? Ou cela ajouterait-il simplement une complexité inutile à mon expérience d'apprentissage initiale?

mrohlf
la source
Demandez-vous dans le contexte d'un jeu purement 2D dans quelque chose comme Unity (comme les sprites et le mouvement 2D) ou un jeu 3D avec un gameplay 2D (comme avec des actifs 3D mais se déplaçant uniquement sur un seul plan)?
chaosTechnician
J'ai des amis qui ont travaillé avec Unity pour créer un jeu 2D appelé Coypu Space Rumble . La partie 2D initiale était apparemment assez fastidieuse, je vais demander plus de précisions sur pourquoi.
Jonathan Connell
Définir "moteur 3D"? Parlons-nous de quelque chose qui couvre le gameplay, ou simplement de quelque chose qui se rend en 3D?
Nicol Bolas
@chaosTechnician - Le premier: sprites purement 2D, mouvement 2D, fondamentalement pas de véritable axe z (juste un simple index z pour déterminer l'ordre de rendu des sprites)
mrohlf

Réponses:

15

Cela dépend du jeu, mais pour la plupart, il sera plus facile de créer un jeu strictement 2D en utilisant un moteur spécialement conçu pour 2D.

Maintenant pour certains des avantages et des inconvénients (certains d'entre eux seront spécifiquement liés à Unity, certains sont plus généraux)

Les inconvénients

  1. Les moteurs 3D sont généralement conçus autour d'objets de jeu qui sont des modèles 3D (polygones et textures). Bien qu'il soit certainement possible de faire un plan plat et d'y appliquer une texture, vous travaillez activement contre le moteur lorsque vous faites cela.

  2. De plus, de nombreux moteurs 3D n'ont pas la capacité de traiter les feuilles de sprites (toutes les images d'animation sur une seule texture), car ils s'attendent à ce que l'animation agisse sur le modèle (bien que le rigging et d'autres méthodes), pas sur la texture. Encore une fois, il existe des moyens de contourner cela, mais encore une fois, vous travaillez activement contre le moteur pour y parvenir.

  3. Complexité accrue. Comme mentionné dans la réponse de Josh Petrie, la 3D est un peu plus complexe que la 2D, principalement en mathématiques et en gestion de scène. Déplacer des objets et gérer l'espace 3D est difficile, et si c'est l'un de vos premiers jeux, ça va être encore plus difficile. La bonne nouvelle: Unity résume certains de ces problèmes, bien qu'il y ait encore des choses à gérer (et une grande partie de l'abstraction est, encore une fois, destinée aux modèles 3D, pas aux sprites 2D)

  4. La plupart des bibliothèques fournies avec Unity ou que vous pouvez en obtenir sont destinées à des objets 3D. Cela inclut des choses comme l'éclairage, la recherche de chemin, la physique, etc. En attendant, box2d fonctionnera facilement avec Flash, ou XNA, ou quelque chose (enfin, peut-être).

Avantages

  1. Accélération 3D. Les cartes graphiques sont bien meilleures pour gérer de nombreux objets dans une scène qu'un processeur, et avec Unity vous pouvez obtenir cet avantage très facilement. Cela vous permet d'afficher des milliers de sprites à l'écran, ou d'inclure facilement des effets de particules, ou d'ajouter quelque chose d'amusant comme des shaders pour prendre en charge des effets sympas comme le déformation de l'espace et du temps. Unity intègre plusieurs de ces effets, ce qui le rend très facile. Notez que de nombreux moteurs 2D utilisent OpenGL ou DirectX en arrière-plan et, dans de nombreux cas, peuvent également être accélérés par le matériel.

  2. Prise en charge des modèles. Rappelez-vous cette chose qui était un problème plus tôt? Ouais, ça peut aussi être un avantage. Selon le jeu, la possibilité d'inclure des sphères rotatives ou quelque chose de cool comme un objet 3D en arrière-plan peut être un avantage. Vous pouvez également avoir un jeu en 3D, mais simplement forcé dans une perspective 2D, ce qui peut vous donner la possibilité de faire pivoter la géométrie du monde sans avoir à faire des tonnes de graphiques supplémentaires pour le gérer.

  3. Apprentissage 3d. Avouons-le, de nombreux jeux sont écrits en 3D, et si vous apprenez à utiliser Unity, vous pourrez appliquer bon nombre de ces compétences au prochain jeu qui pourrait nécessiter la 3D. De plus, beaucoup d'artistes sortant de l'école en ce moment apprennent la modélisation 3D, il est donc "plus facile" de trouver un artiste 3D qu'un artiste de jeu 2D traditionnel (que ces artistes soient bons ...)

Conclusion

Il y a beaucoup d'inconvénients, il y a aussi une quantité décente d'avantages. Tout dépendra du type de jeu que vous souhaitez créer, c'est à vous de décider si cela en vaut la peine. Le flash est toujours une option extrêmement viable, donc il n'y a rien de mal à utiliser un moteur 2D si c'est ce qui convient le mieux à votre jeu.

thédaïen
la source
+1. Réponse très complète et applicable. J'ai l'impression que vous avez déjà abordé ce sujet.
chaosTechnician
Merci, juste ce que je cherchais! Je pense que je continuerai à me concentrer sur les moteurs 2D, car la plupart de ceux que j'ai vus ont été construits sur OpenGL ou DirectX, et la modélisation 3D est un peu en dehors de mes capacités en ce moment. J'aimerais apprendre Unity à un moment donné, mais je ferai probablement mieux de m'y attaquer après avoir joué un jeu en 2d à mon actif.
mrohlf
De plus, les moteurs 3D vous permettent de dessiner des sprites avec une rotation arbitraire et alpha vraiment, très facilement; plus facilement que si vous aviez un moteur 2D pur. C'est pourquoi de nombreux moteurs 2D modernes sont vraiment en 3D sous le capot; vous pouvez également écrire des shaders personnalisés!
ashes999
7

Un gros inconvénient est la complexité supplémentaire - les moteurs 3D n'ont pas toujours le même niveau de support de première classe pour les graphiques 2D que les moteurs 2D dédiés. Cela signifie que c'est beaucoup de travail supplémentaire pour composer et gérer une scène 2D, et / ou vous devez toujours faire face à la complexité du pipeline mathématique et de transformation 3D. Surtout si vous n'êtes pas entièrement familiarisé avec les principes fondamentaux de la théorie graphique 3D, vous pouvez vous retrouver perdu et confus lorsque vos images n'apparaissent pas et si vous ne faites pas attention, vous pouvez tomber sur une "solution" qui rend votre les images apparaissent mais ne sont pas nécessairement correctes (et vous mordront donc plus tard).

Mais au-delà de l'aspect humain, tant que le moteur 3D a les outils dont vous avez besoin pour construire votre jeu 2D, ce n'est pas une mauvaise idée d'en utiliser un. Ils sont beaucoup plus répandus de nos jours et ont tendance à être développés de manière plus agressive, c'est donc un avantage. De plus, il existe probablement encore une poignée de moteurs ou de cadres axés sur la 2D qui n'utilisent pas D3D ou OpenGL en arrière-plan, et peuvent donc ne pas bénéficier des avantages des GPU modernes.

Dans cette question connexe, vous pouvez voir beaucoup de discussions sur ce qui pourrait rendre la 3D plus difficile (vous n'aurez à gérer qu'un sous-ensemble de cela si vous n'utilisez le moteur 3D que pour un jeu 2D).

Communauté
la source
2

Pro: Les fabricants de cartes vidéo déploient plus d'efforts pour optimiser leurs pilotes 3D. Vous n'êtes pas coincé en 2D pour des effets spéciaux ou des fluos. Vous n'avez pas besoin de simuler vous-même. Changer de point de vue ne nécessite pas une refonte complète de tout votre art. Je dirai que la 3D évolue mieux visuellement.

Inconvénients: les pipelines d'actifs devront probablement être adaptés à votre moteur. Certaines opérations simples en 2D sont plus complexes en 3D. Les bibliothèques auront probablement des fonctionnalités supplémentaires que vous n'utiliserez jamais.

Patrick Hughes
la source
0

Apprenez simplement Unity si vous le pouvez. Unity fonctionne VRAIMENT bien avec Blender 3D qui est open source et gratuit. Il existe une tonne de bons tutoriels en ligne sur la façon de modéliser et d'animer 2D dans Blender avec des avions. Il existe également une tonne de modèles que vous pouvez télécharger en ligne, généralement gratuitement ou à bas prix, que vous pouvez utiliser comme points de départ.

Bien sûr, cela suppose que vous n'êtes pas apte à créer votre propre moteur de jeu. Mon jeu 2D préféré en ce moment est Super Meat Boy qui a été conçu en Flash et la fin de la programmation a été faite sur mesure ... créant un moteur de jeu adapté aux besoins particuliers des jeux. C'est la meilleure façon d'aborder un projet comme ça car cela vous donne beaucoup de liberté. Cela dit, il faut beaucoup de travail pour emprunter cette voie.

Aesadai
la source
En fait, maintenant que UNITY a ajouté le support 2D, c'est encore plus une évidence: pcworld.com/article/2062740/…
Aesadai
1
Je dis toujours que Unity craint pour les jeux 2D. Pour les jeux 2D, ce n'est PAS une qualité professionnelle, comparez-le simplement à un moteur 2D solide comme Cocos2D-swift. C'est une évidence.
Jonny