Habituellement, chaque fois que je veux commencer un jeu, je pense avoir une bonne architecture de base pour le rendu et une meilleure boucle de jeu à partir de zéro. Je ne veux généralement pas utiliser les moteurs existants. La raison derrière cela est que je veux l'implémenter par moi-même pour apprendre des choses.
Mais beaucoup de blogs et de développeurs disent que ce n'est pas une bonne option pour réinventer la roue.
Suis-je en train de manquer quelque chose?
architecture
Ayyappa
la source
la source
Réponses:
Non, ce n'est pas du tout une mauvaise chose. L'apprentissage et la capacité d'apprendre sont absolument fondamentaux pour être un bon programmeur.
MAIS
L'important lorsque vous construisez quelque chose à partir de zéro est de le terminer complètement. Peu importe à quel point il est hacky et non optimisé, si vous le complétez, il y a un sentiment de satisfaction pas comme les autres. Tout cela vous donnera une expérience précieuse et vous pourrez toujours rendre le code plus élégant ou mieux fonctionner plus tard lorsque vous aurez quelque chose de fonctionnel. À la fin de la journée, les seules choses qui séparent les programmeurs impressionnants et les programmeurs médiocres sont l'expérience et la pratique.
Bien sûr, lorsque vous avez fait quelque chose et que vous souhaitez créer d'autres jeux, il n'y a aucune raison de réutiliser votre ancienne base de code.
Si vous cherchez à démarrer une carrière dans le développement de jeux, ou tout type de développement vraiment, l'expérience vous mènera très, très loin. Mais si vous cherchez à produire des jeux rapidement et facilement (relativement facilement, par rapport à l'écriture de vos propres trucs), utilisez un moteur existant.
Pour être honnête avec vous, une combinaison d'expérience en utilisant votre propre code ET en utilisant une variété de bibliothèques et de moteurs différents fera de vous un meilleur codeur.
la source
C'est probablement la chose la plus importante. Si votre objectif est d'apprendre, l'écriture de vos propres moteurs de rendu et de boucle de jeu à partir de zéro est très bien, et une expérience d'apprentissage parfaitement bonne. Si votre objectif est de créer un jeu fini rapidement et facilement, utilisez un framework existant.
la source
Réinventer la roue vous apprend comment les roues fonctionnent.
la source
Cela dépend de ce que vous recherchez. Si vous voulez apprendre, réinventez autant de roues que vous le souhaitez. Je connais des gens qui ont écrit leurs propres chargeurs JVM ou PNG pour le plaisir.
La plupart des blogs donnent probablement des conseils sur la façon d'obtenir les informations qui vous rémunèrent rapidement, mais je ne sais pas si c'est une bonne stratégie à long terme. Si vous ne savez pas avec quoi vous jouez, comment savoir si c'est un bon choix? Que ferez-vous lorsque vous rencontrez des problèmes, allez pleurnicher sur des forums ou pouvez-vous le découvrir vous-même?
la source
Il y a beaucoup de découragement à propos de cette phrase dans la communauté de programmation générale, mais je pense que nous savons tous que beaucoup d'entre nous n'aiment rien de plus que réinventer la roue et trouver un moyen de la faire tourner un peu mieux, plus vite et plus frais.
Les nouvelles technologies font leur apparition tout le temps et ont besoin de personnes pour réinventer la roue. OpenCL et d'autres langages de calcul GPU en sont un bon exemple.
Vous pouvez utiliser un cadre qui incluait les nouvelles capacités de cette année mais en le faisant vous-même, si vous faites vraiment la recherche et apportez des améliorations sur ce qui existe déjà, .. vous pouvez vraiment parcourir de nouveaux terrains en termes de performances et d'utilité.
Une fois que vous avez inventé quelques roues pour vous faire rouler, vous connaissez assez bien vos trucs comme un gros bonus!
De plus, c'est vraiment très amusant.
la source
Et il y a ceux qui prétendent être plus productifs précisément parce qu'ils réinventent la roue.
Exemple: Eskil Steenberg, créateur de World of Love (excellente vidéo où il parle de son jeu, de son moteur et de ses outils impressionnants , et de sa philosophie: http://vimeo.com/18423305 )
la source
Si c'est votre première fois, même si c'est juste pour apprendre, il est toujours préférable d'utiliser une sorte de moteur car vous apprendrez ce que le moteur peut vous apporter.
«La roue» utilisée dans la métaphore est le concept, pas la mise en œuvre. Même si vous ne réinventerez pas la roue, vous devez toujours choisir si vous en achèterez une ou si vous en fabriquerez une vous-même. Par conséquent, créer votre propre moteur n'est même pas réinventer la roue, c'est juste que vous voulez créer votre propre roue dans un but, qui pourrait être pour l'apprentissage, à faible coût, pour une petite taille ou toute utilisation ou exigence spécifique.
la source
Le fait est que ce qui prend beaucoup de temps lorsque vous faites un jeu, c'est le contenu réel et la création et le test des actifs - et non l'écriture de code en général. C'est probablement pourquoi il est facile d'ignorer cette partie et d'utiliser un moteur existant pour pouvoir passer plus de temps sur le contenu, la conception de jeux et les bogues de niveau supérieur.
Je pense qu'en faisant des trucs à partir de zéro pour apprendre, cela générera une bonne idée du travail derrière les moteurs existants et améliorera la possibilité d'en sélectionner un plus tard si nécessaire.
Pour le plaisir et pour l'apprentissage, faites ce que vous voulez. Si je devais écrire des classes de pipeline de contenu à partir de zéro, en gérant tous les détails ennuyeux et les cas marginaux du système de fichiers et des chargeurs de ressources, je deviendrais fou - tant que j'en ai appris suffisamment pour avoir une très bonne compréhension de la façon de le faire, J'ai tendance à éviter de le faire si quelqu'un l'a déjà bien fait (bien que cela soit vrai, beaucoup de frameworks et de moteurs ne rentreront pas dans ma propre idée de "bon", ce qui serait la cause de réécrire quelque chose). Si je ne sais pas comment le faire, j'aime vraiment le faire au moins une fois, juste pour saisir les moindres détails de ce que c'est - comme Ray Dey l'a déjà dit.
la source
Ce n'est qu'une erreur si vous n'avez pas le temps d'apprendre. Si vous avez le temps, allez-y. Sinon, ne le faites pas.
la source