Je ne suis qu'un débutant dans les jeux 3D, ma plateforme préférée est Android. J'ai posté une question dans un autre forum sur "Que dois-je utiliser: OpenGL ou Unity3d?" Ils ont tous mis l'accent sur Unity3D et sur l'utilisation de ses fonctionnalités et outils intégrés, que je devrais coder moi-même si je devais utiliser OpenGL. Mais quelqu'un dit que la plupart des jeux complexes nécessitent des moteurs personnalisés. Pourquoi devrais-je utiliser un moteur comme Unity3D sur OpenGL?
25
Réponses:
Je pense que vous avez déjà répondu à cette question. Vous avez dit "Je ne suis qu'un débutant dans les jeux 3D" . De plus, vous avez dit "... Unity3D et en utilisant ses fonctionnalités et outils intégrés, que je devrais me coder si je devais utiliser OpenGL" .
Essentiellement, cela signifie que si vous utilisez OpenGL seul, vous allez écrire un moteur de jeu, puis, potentiellement des années plus tard, écrire votre jeu. Si vous souhaitez vous concentrer sur un jeu, utilisez les ressources à votre disposition pour vous rapprocher le plus possible de cet objectif. L'utilisation d'un moteur de jeu est la meilleure façon de concentrer vos efforts sur la création d'un jeu, au lieu d'écrire tout ce dont vous avez besoin pour créer un jeu.
Voir cette question connexe: Quelle est la différence entre une bibliothèque et un moteur et celui-ci Qu'est-ce qu'un framework de jeu par rapport à un moteur de jeu?
la source
Parce que les débutants, par définition, ne savent pas ce qu'ils font .
OpenGL a une énorme courbe d'apprentissage. Bien sûr, vous pouvez émettre quelques commandes glBegin, vous enthousiasmer à l'idée de mettre des triangles à l'écran, puis sortir de la partie profonde avec quelque chose de plus complexe que vous n'êtes pas encore prêt à affronter. Ce n'est pas une excellente façon d'apprendre. Une analogie (légèrement exagérée) pourrait être l'apprentissage de la physique de base au lycée, puis la mise en charge du Grand collisionneur de hadrons. Ce n'est pas couler ou nager, c'est nager ou laisser un grand trou radioactif dans le sol.
On suppose que la plupart des gens demandent "Je veux faire un jeu, que dois-je utiliser?" question veut vraiment faire un jeu (sinon ils auraient sûrement posé une question différente, sûrement?) Donc, la réponse est adaptée à la question, et l'utilisation d'une boîte à outils, d'un cadre ou d'un moteur préexistant est un moyen de les aider à atteindre cette ambition sans se laisser distraire par l'agonie de savoir si un appel UBO ou glUniform est préférable pour mettre à jour une matrice unique.
Il s'agit de prendre une étape à la fois, de faciliter le processus d'apprentissage et de vous donner quelque chose de gratifiant à la fin. Essayer d'apprendre à créer un jeu et à utiliser correctement une API 3D mature et puissante en même temps est probablement trop pour un débutant. C'est comme l'effet Dunning-Kruger moins les connotations négatives. Vous ne savez pas ce que vous ne savez pas, donc vous n'avez vraiment aucune image réaliste de ce que vous entreprenez.
D'un autre côté, si votre objectif est d'apprendre OpenGL, vous ne voulez pas vraiment faire de jeu! Vous voulez apprendre OpenGL, et le faire dans le contexte de la création d'un jeu peut être une façon amusante d'apprendre, mais faire un jeu est un moyen pour une fin, pas une fin en soi (et certainement pas la seule façon d'apprendre OpenGL ). Vous ne le publierez probablement jamais, et vous y reviendrez certainement dans quelques années et serez horriblement gêné par certaines des choses stupides que vous avez faites.
la source
Cela dépend vraiment de ce que vous voulez retirer de ce projet. Si votre objectif principal est de vous concentrer sur la conception du jeu, alors vous êtes probablement mieux avec un moteur pré-construit, car cela vous permettra de vous rendre à la partie de création de jeu beaucoup plus rapidement. Si votre objectif est d'en apprendre davantage sur la partie programmation de la création de jeux (surtout si vous essayez de vous préparer à un emploi dans l'industrie), vous constaterez probablement que travailler avec OpenGL sera une expérience plus précieuse. Gardez à l'esprit qu'aucune des affirmations précédentes n'est vraie 100% du temps.
Il n'y a vraiment pas de règle pour décider de ce genre de chose. La plupart des réponses que vous entendez dans ce genre de question sont des opinions, et très peu d'entre elles seront entièrement pertinentes pour votre propre projet et vos compétences.
la source
La différence est simple. L'unité est un chariot à quatre roues rondes qui peut vous transporter. OpenGL est de la sciure de bois que vous pourriez mettre en place et potentiellement utiliser pour mouler un chariot et des roues améliorés et plus modernes. C'est si vous investissez de nombreuses heures de votre temps à apprendre ce que les gens avant vous ont fait en premier.
Votre objectif en tant que débutant devrait être d'abord d'étudier les voitures existantes et leurs conceptions. Il est inutile de tout jeter par la fenêtre et de recommencer à zéro. Apprenez d'abord ce qui existe déjà et acquérez-en une connaissance approfondie. Si vous ne le faites pas, comment connaissez-vous ses limites et si vous ne connaissez pas les limites, comment pourriez-vous les surmonter? Quel est l'intérêt de rendre quelque chose de médiocre qui est inutile et d'ignorer tous les outils existants dynamiques qui sont déjà disponibles?
à mon humble avis, les étapes d'un nouveau développeur de jeu sont:
Travailler seul par vous-même pour créer quelque chose qui a déjà été fait ne fera pas de vous un développeur précieux pour qui que ce soit, car vous ne serez pas vraiment productif ou un bon apprenant, vous ne ferez que copier des morceaux de code existants et peut-être apprendre à les lire et les comprendre. Comme le dit le vieil adage Pokémon, "Ce n'est pas très efficace ...".
Le pire, c'est que ce type d'approche n'est pas facile à suivre car il n'y a pas de satisfaction, vous utilisez donc une volonté brute qui a été scientifiquement prouvée comme une ressource limitée pour les êtres humains. Vous devez faire quelque chose qui vous gratifie quotidiennement ou vous ne pourrez probablement pas continuer.
Donc, pour résumer les choses, un moteur est souligné parce que vous pouvez faire avancer les choses avec un moteur et vous avez beaucoup plus de chances de réussir de cette façon. Même les grands créateurs de jeux se sont appuyés sur les travaux antérieurs de quelqu'un d'autre et telle est la nature du progrès. Vous devez comprendre la situation dans son ensemble et savoir jouer avec les pièces Lego fournies par d'autres avant de créer vos propres pièces Lego personnalisées.
la source
En supposant que votre objectif est de créer un jeu, le gars qui a parlé de la nécessité de moteurs personnalisés était faux. Si quoi que ce soit, les jeux complexes nécessitent un moteur mature qui a été conçu, mis en œuvre, optimisé, testé et maintenu par des professionnels qui ont été dans l'industrie depuis longtemps - ou qui peut correspondre à leur qualité (au moins pour les besoins d'un jeu donné) , si c'est possible.
Les grands développeurs de jeux construisent des moteurs internes, mais ils les réutilisent encore fortement pour leurs futurs jeux. Mais gardez à l'esprit que leurs budgets et la taille de leurs équipes et de nombreux autres facteurs sont très différents de ceux des développeurs indépendants - il peut être beaucoup plus logique pour eux de créer leur propre moteur, même si les moteurs existants ne manquent pas sur le plan technologique.
Bien sûr, il y a toujours une idée fausse, car de nombreuses fonctionnalités n'existent pas immédiatement dans les moteurs existants, qu'elles ne peuvent pas du tout être implémentées dans ce moteur, mais c'est généralement inexact.
Gardez à l'esprit que certains des jeux modernes les plus innovants, comme Portal et Antichamber, ont été construits à l'aide de moteurs existants. Certains jeux en ligne assez complexes, comme Aion et TERA, ont été construits à l'aide de moteurs existants. Certains des jeux les plus beaux visuellement, comme Bioshock Infinite et Thief, ont été construits en utilisant les moteurs existants. Et, bien sûr, certains ne l'étaient pas. Mais le fait est que rien de ce que j'ai jamais vu ne nécessitait vraiment un moteur personnalisé.
D'un autre côté, si votre objectif est d'apprendre les concepts de la programmation graphique, bien sûr OpenGL est la voie à suivre. Mais même dans ce cas, gardez à l'esprit que la connaissance de quelques moteurs existants vous aidera énormément à comprendre ce que vous faites et ce que vous devriez viser.
la source
citation needed
s