Quels sont les avantages et les inconvénients de l'utilisation d'un moteur de jeu? [fermé]

28

Comment savoir si j'utilise ou non un moteur de jeu? Je veux créer un jeu 2D relativement complexe pour Android. Quels facteurs dois-je peser pour décider de trouver, d'installer et d'apprendre un moteur de jeu ou de tout faire manuellement?

cstack
la source
Je ne sais pas si la conception du jeu est la meilleure balise, ici; mais le moteur a été mis sur liste noire. Cette question devrait probablement être supprimée.
Gnemlock

Réponses:

25

Avantages:

  • La plupart sinon la totalité du codage est fait pour vous, donc tout ce dont vous avez à vous soucier est le contenu, la disposition des niveaux, etc.

  • Dans cette optique, la gestion de la mémoire, le chargement des actifs, l'éclairage (dans les moteurs complexes), etc. ont tous été conçus et testés de manière approfondie (espérons-le).

  • Comme mentionné ci-dessous, si le moteur est multiplateforme, vous devrez faire peu ou pas de travail pour porter votre jeu.

Désavantages:

  • Si vous modifiez quelque chose, vous devez maintenant vous familiariser avec une nouvelle base de code.
  • S'il y a un bug dans le moteur, à moins qu'il ne soit open source, vous ne pouvez pas le corriger.
  • Le moteur n'a pas été conçu spécifiquement pour votre jeu, il peut donc être moins efficace que le code que vous écrivez spécifiquement pour votre jeu.
  • Les moteurs de jeux ne sont généralement pas gratuits.
  • Si un jeu est petit, les frais généraux liés à l'utilisation d'un moteur peuvent ne pas valoir le temps investi pour écrire du code vous-même.
  • Si votre moteur de jeu possède également des éditeurs ou des outils, vous devrez également les créer et les tester avant de les confier à des artistes ou de vous en remettre à vous-même.

Ne laissez pas le fait que la liste des inconvénients soit plus longue: lorsque le temps passé à coder et à tester tous les systèmes dont vous avez besoin est trop long pour votre cycle de production, ou si vous avez plus de compétences avec l'art que le code, l'utilisation d'un moteur de jeu est certainement une bonne idée.

Une comparaison des moteurs de jeu est en cours dans cette question: les avantages et les inconvénients des différents moteurs de jeux 3D

Sean James
la source
3
C'est une assez bonne réponse dans l'ensemble, mais j'ai froncé les sourcils à la toute première phrase. Je suggérerais fortement de reformuler "La plupart sinon la totalité du codage est fait pour vous" en "La plupart du codage de bas niveau est fait pour vous"; il est trompeur au point d'irresponsable de perpétuer le mythe de "faire un jeu sans codage!"
jhocking
De plus, le moteur peut restreindre ce que vous pouvez faire facilement - par exemple, beaucoup ne prennent pas en charge les terrains modifiables de style Minecraft ou Dwarf-Fortress. Ce qui est bien pour les jeux qui n'en ont pas besoin, mais bonne chance pour faire un clone Minecraft avec un.
user253751
15

Dans mon cas, j'ai passé beaucoup de temps (mois) à patauger à ne rien faire à cause des moteurs de jeu. Je les évite maintenant généralement comme la peste, bien que je comprenne qu'ils doivent être utilisés à bon escient et avec modération.

Pour moi, je serais obsédé par toutes les possibilités ! En regardant une longue liste de fonctionnalités dans le moteur X, c'est comme "Wow, je pourrais faire tout ça! Mon jeu pourrait être génial!" Alors je le téléchargeais, exécutais les démos et j'étais ébloui par ces fonctionnalités en action, etc. Ensuite, je créais un nouveau projet dans mon IDE et je ne savais pas par où commencer. J'écrirais du code, j'apprendrais peut-être et je le baserais sur les projets de démonstration, mais ce n'étaient que des démos.

Je ne savais pas comment partir de rien et faire quelque chose. Je ne connaissais pas la première étape. J'ai adoré l'idée d'un moteur, cela m'a impressionné et m'a motivé à faire quelque chose, mais ma connaissance du développement réel était si limitée que même après avoir su ajouter le moteur au chemin de construction, et peut-être écrire quelques lignes pour commencer le moteur et puis le couper à nouveau, au-delà de ce que je n'ai jamais rien fait de valable.

Je suis beaucoup plus un genre de personne qui fait un petit pas. Je préfère faire mon propre jeu une étape à la fois, refactoriser les fonctions utiles et rassembler ces fonctions dans une bibliothèque que je pourrais un jour considérer comme un "moteur". Donc pour l'instant, j'évite le battage médiatique du moteur et je m'en tiens aux choses de bas niveau.

Et les moteurs ont leur place. Si vous trouvez un moteur et pensez à vous-même, "c'est exactement ce que j'écrirais! Ils ont déjà fait le travail pour moi, je n'ai pas besoin de réinventer la roue, et je sais exactement comment l'intégrer dans le jeu. que j'ai déjà commencé [ou du moins entièrement planifié et que je suis prêt à commencer] "alors c'est probablement un bon choix. Vous saurez exactement comment l'utiliser et comment écrire votre propre code pour utiliser le moteur pour créer quelque chose d'utile. Mais si vous obtenez un moteur juste parce qu'il a tout sauf l'évier de la cuisine et que vous pensez que vous vous tenez sur les épaules de géants, vous vous trompez beaucoup. Vous avez un géant debout devant vous et vous devez monter jusqu'à ses épaules.

Donc l'énorme inconvénient pour moi: ne vous laissez pas prendre dans tout ce que vous pourriez faire. Quel que soit le moteur que vous choisissiez, il aura un potentiel énorme. Mais si vous ne savez pas comment exploiter le potentiel, si cela ne vous facilite pas la vie ou ne vous aide pas à faire votre travail, pourquoi l'utilisez-vous?

Ricket
la source
4

Le plus gros inconvénient d'un moteur de jeu est qu'il faut l'apprendre. Si vous êtes nouveau dans la programmation en général, cela peut être plus rapide que d'apprendre à écrire du code pour faire tout ce qu'un moteur gère pour vous, mais si vous êtes expérimenté, cela ne vous coûte pas de temps pour vous asseoir vers le bas et commencer à coder, mais beaucoup de temps à l'avance pour apprendre à vous familiariser avec un moteur inconnu.

La plus grande chose à rechercher est le support, car les moteurs de jeu ne sont pas parfaits et ne lisent pas votre esprit, et vous vous retrouverez coincé sur QUELQUE CHOSE à un moment donné. Alors:

  • Y a-t-il de la documentation?
  • La documentation est-elle vraiment bonne?
  • Existe-t-il un support technique (généralement pas, sauf si vous payez pour cela)? Quel est le délai d'exécution?
  • Y a-t-il des forums communautaires où vous pouvez poser des questions et obtenir de vraies réponses?
  • Existe-t-il des didacticiels qui vous montrent comment commencer à utiliser le moteur? Un exemple de code source est-il inclus? Dans quelle mesure les trouvez-vous utiles pour vous mettre à jour?
Ian Schreiber
la source
2
+1 pour avoir mis la documentation bien en évidence ... c'est là que de nombreux moteurs de jeux open source échouent
LearnCocos2D
3

En tant que personne qui a beaucoup d'expérience en développement de logiciels et qui n'a vraiment essayé de développer un jeu à partir de zéro récemment, voici mes 2 cents.

Jusqu'à présent, les réponses ont fourni de longues listes d'avantages et d'inconvénients. Je fournirai ce qui est pour moi la raison la plus importante de NE PAS utiliser de moteur de jeu. Comme j'ai entrepris d'apprendre à écrire un jeu uniquement pour le défi et la récompense, j'ai décidé de le faire à partir de zéro sans moteur, juste OpenGL et SDL, parce que je voulais apprendretout ce qui dépasse ce niveau d'abstraction. À aucun moment je n'ai regretté cette décision. Mon jeu est une belle version défilante d'astéroïdes 2D, basique mais fluide. Je n'essaie pas de rivaliser avec des jeux largement supérieurs, mais je distribue mon jeu et les gens ont aimé y jouer. Je vais adopter la même approche pour rendre le jeu multi-joueurs. C'est un énorme défi et l'utilisation des bibliothèques pourrait le rendre plus facile, mais mon objectif n'est pas de le rendre facile. Mon objectif est d'apprendre, et pour moi c'est une activité à temps partiel, donc je n'ai pas beaucoup de temps et les progrès sont lents. Mais j'ai mes raisons pour cette approche. Appelez cela "l'enseignement supérieur".

Alors, répondez à votre propre question, voulez-vous apprendre à faire les choses que le moteur de jeu fait à votre place pour les avantages que cet apprentissage pourrait apporter? Si c'est le cas, n'utilisez pas de moteur de jeu.

Ciaran
la source
2

Vous devez détailler ce que vous entendez par «complexe». Un bon moteur de jeu s'occupe de tout ce qui suit:

  • Rendu sur une fréquence d'images stable
  • Gestion des entrées
  • Interface utilisateur
  • Sons / musique
  • Gestion des ressources (images, son, fichiers de données)
  • Sauvegarder / charger votre jeu
  • Physique (2d ou 3d)

Pensez à vous-même, je sais comment coder chacun d'eux? Combien de temps vais-je prendre pour programmer chacun, et combien de temps vais-je prendre pour apprendre à faire un moteur faire chacun d'eux?

zaratustra
la source
1

Le plus grand avantage: beaucoup de choses sont faites pour vous. Vous n'avez pas besoin de continuer à réinventer la roue.

Autre avantage: le moteur de jeu peut également être multiplateforme (Unity).

Désavantages? Contrôle? Le moteur s'occupe de certaines choses pour vous (comme le rendu), donc s'il a des bugs ou des problèmes de performances, vous ne pouvez pas simplement le corriger vous-même.

Bryan Denny
la source