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?
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?
Réponses:
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:
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
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?
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:
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.
Vous devez détailler ce que vous entendez par «complexe». Un bon moteur de jeu s'occupe de tout ce qui suit:
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?
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.