J'ai commencé à programmer il y a de nombreuses années. Maintenant j'essaye de faire des jeux. J'ai lu de nombreuses recommandations pour commencer à cloner des jeux bien connus comme galaga, tetris, arkanoid, etc. J'ai également lu que je devrais opter pour tout le jeu (y compris les menus, le son, la partition, etc.).
Hier, j'ai terminé la première version complète de mon clone arkanoïde. Mais c'est loin d'être terminé. Je peux encore y travailler pendant des mois (je programme comme passe-temps pendant mon temps libre) en implémentant un commutateur de résolution d'écran, un remappage des touches de contrôle, des power-ups tombant de briques cassées et un énorme etc.
Mais je ne veux pas apprendre pour toujours à cloner UN jeu. J'ai l'envie de passer au clone suivant afin d'appliquer certaines idées de conception que j'ai rencontrées lors du développement de ce clone arkanoïde (en même temps, je lis le livre GoF et beaucoup de code source du concours de jeu Ludum Dare 21).
La question est donc: dois-je continuer à améliorer le clone arkanoid jusqu'à ce qu'il ait toutes les fonctionnalités du jeu original? ou devrais-je passer au clone suivant (il y a presque des jeux infinis à cloner) et commencer à réparer les choses que j'ai mal faites avec le clone précédent?
Cela peut être une question très subjective, alors veuillez limiter les réponses à la manière la plus efficace d'apprendre à créer mes propres jeux (sans cloner les idées de quelqu'un). Je vous remercie!
CLARIFICATION
Afin de clarifier ce que j'ai mis en œuvre, je fais cette liste:
Fonctionnalités implémentées:
- Capacités de rebond (la balle rebondit sur les murs, sur les briques et sur la barre).
- Sonne en rebondissant sur les briques et la barre, et lorsque le joueur gagne ou perd.
- Menu de base du titre (nouveau jeu et sortie uniquement). Menu également en jeu et menus gagnant / perdant.
- Seulement trois niveaux, mais le système de carte est si simple que je ne pense pas qu'il m'apprendra beaucoup (je me trompe?).
Fonctionnalités non implémentées:
- Power-ups lors de la rupture des briques.
- Briques complexes (avec plus d'un "point de vie" et invincibles).
- De meilleurs graphismes (je ne suis pas vraiment bon dans ce domaine).
- Programmation du polissage (utiliser plus intensivement les modèles de conception).
Voici un lien vers sa page Web (minimale): http://blog.acamara.es/piperine/ J'ai un peu honte de le montrer, alors ne me frappez pas trop fort :-)
Ma question était liée aux fonctionnalités non implémentées. Je me suis demandé quel était le chemin le plus rapide (optimal) pour apprendre. 1) implémenter les fonctionnalités non implémentées dans ce projet qui prend de l'ampleur, ou 2) créer un nouveau jeu qui m'apprendra probablement ces leçons et de nouvelles.
RÉPONDRE
J'ai choisi la réponse @ ashes999 parce que, dans mon cas , je pense que je devrais polir davantage et essayer "d'expédier" le jeu. Je pense que toutes les autres réponses sont également importantes à garder à l'esprit, donc si vous êtes venu ici avec la même question, avant de prendre une décision précipitée, lisez toute la discussion.
Merci à tous!
la source
Réponses:
Je suis totalement en désaccord avec la réponse de Patrick . Si vous voulez réussir en tant que développeur de jeux, la compétence numéro un que vous devez apprendre est de savoir comment prendre une idée et expédier un jeu complet et raffiné.
Ce que vous réaliserez au fil du temps (ce que j'ai réalisé après plusieurs années), c'est que la programmation n'est qu'une petite partie de votre jeu. C'est facile, parce que c'est amusant. Mais s'en tenir à la seule programmation vous laissera une trace de preuves de concepts et de démos incomplètes.
Au lieu de cela, je vous suggère très fortement de mettre en place un site Web et un blog (Wordpress est idéal pour ce genre de choses), de terminer vos jeux (en commençant par Arkanoid) et de les publier dans la nature.
De plus, il est essentiel de réaliser que si vous faites cela, vous contrôlez quand le jeu est terminé. Si vous voulez 1000 niveaux avec 10 fonctionnalités principales, très bien. Si vous voulez 10 niveaux avec 3 fonctionnalités principales, très bien. (En fait, je recommande plus souvent les petits projets, car vous en apprenez plus et vous concentrez beaucoup sur le polissage de cette façon).
Edit: En réponse aux personnes qui ne sont pas d'accord, je pense que je dois clarifier. Si vous avez créé un jeu dans un seul but / expérience (ce que je fais tout le temps), par tous les moyens, coupez la portée et expédiez-le. Personne n'a dit qu'Arkanoid avait besoin de 1000 niveaux pour être un jeu raffiné; il suffit de créer suffisamment de niveaux pour qu'il soit, à votre avis, amusant et passe à autre chose.
Il est possible de passer des années sur un jeu et de ne jamais expédier. Mais je pense qu'il est beaucoup plus facile de tomber dans l'autre trou de ne faire que des démos et des prototypes techniques pour toujours. Il m'a fallu plus de 10 ans pour arrêter de le faire moi-même.
la source
Je proposerais une synthèse des deux réponses précédentes. Fondamentalement, je conviens qu'il est extrêmement important d'apprendre à prendre une idée et à livrer un jeu complet et soigné. Internet regorge de projets à moitié achevés que quelqu'un a commencé puis s'est ennuyé. La capacité de suivre un projet du début à la fin, ce que j'appelle la «capacité de finition», est rare et précieuse, et acquise en se forçant à le pratiquer.
Cependant, vous n'êtes pas encore à ce stade de votre apprentissage; Je ne recommanderais pas de le faire avec votre tout premier jeu, mais plutôt de faire quelques petits jeux pour apprendre avant de travailler sur votre premier projet complet.
(à part: je n'ai jamais vraiment identifié cela auparavant, mais maintenant que j'y pense, je pense que la capacité de finition est la principale chose que je vois séparer les développeurs expérimentés des novices)
ADDITION: Je pense que la plupart des désaccords entre les réponses se résument à différentes hypothèses sur où il en est dans son processus. Par exemple, quand il a dit "J'ai terminé la première version complète de mon clone arkanoïde", cela pourrait signifier beaucoup de choses différentes. Dans mon cas, puisqu'il a dit plus tôt: "J'ai également lu que je devrais opter pour tout le jeu (y compris les menus, le son, la partition"), je suppose qu'il a en fait implémenté ce truc et demande s'il devrait continuer encore plus loin. cas, je dirais non; appelez ce projet terminé et passez au projet suivant.
Mais ce n'est qu'une supposition de ma part; il n'a pas dit qu'il avait fait ce truc, juste qu'il l'avait lu. S'il n'a pas fait ce genre de choses, je dirais de ne pas continuer avant d'avoir fait ce genre de choses.
la source
Je pense que vous avez la bonne idée que vous devriez passer au prochain projet maintenant. Je pense que cela parce que vous avez déjà appris de votre premier et que vous souhaitez appliquer ce que vous avez appris! Une fois que vous ralentissez l'apprentissage des bases, ce serait le moment de cloner des fonctionnalités plus profondes que vous pouvez continuer à apprendre.
N'oubliez pas que vous travaillez sur des compétences de programmation, pas sur la conception de jeux, vous voulez donc pouvoir programmer n'importe quelle conception de jeux lorsque vous avez terminé l'apprentissage.
la source
Pourquoi ne pas faire du "clone" le vôtre? Ajoutez de nouveaux rebondissements intéressants qui vous intéresseront.
Il y a un avantage à démarrer «votre propre» projet, vous avez l'impression que cela n'a jamais été fait auparavant. La réalité est que quelqu'un a probablement déjà quelque chose de similaire. Sauf si vous prévoyez d'inventer un nouveau genre de jeu, je vous suggère de vous approprier ces "clones".
Exemple, mon copain à l'université a créé un "clone" de pong. Il l'a fait sien, a ajouté un tout nouveau type de gameplay où un power-up a permis de conduire un char doux pendant environ 15 secondes et de détruire autant de briques que possible!
La meilleure façon d'apprendre le développement de jeux (art, code, design) est de le faire. Vous ne le faites peut-être pas bien au début, mais la clé est de continuer et d'écrire plus de code, de dessiner plus d'animations et de concevoir plus de niveaux !! À mon avis, peu importe si vous "clonez" quelque chose tant que vous le faites vous-même, continuez à le faire, rendez-le intéressant et amusez-vous!
la source
Pour répondre à votre question, oui , peaufiner votre projet actuel sera une meilleure expérience d'apprentissage que d'en commencer un nouveau.
1) Vous devez prendre l'habitude de terminer les choses. C'est en soi une expérience d'apprentissage.
2) Les tâches que vous êtes "trop paresseux pour ajouter" (faute d'un meilleur terme) peuvent contenir une tonne de leçons de développement de jeu, que vous sautez totalement.
3) Si vous vous ennuyez d'Arkanoid, vous pouvez toujours le mettre de côté et travailler sur autre chose pour le moment. Il n'y a rien de mal à cela.
1) Trop de choses inachevées sont mauvaises. Vous ne pouvez pas vraiment utiliser votre produit inachevé pour montrer efficacement vos compétences.
En effet, avoir un tableau de choses inachevées, c'est comme avoir un placard plein de déchets. Certains semblent utiles, mais en réalité, tout cela est très inutile, et la réalité de l'industrie du jeu est que peu de gens apprécieront vos "déchets" (jeux inachevés).
Les jeux inachevés sont trop courants. Les gens les ont mis là-bas et sont comme, "duh, ce jeu était sapposa être StreetFighter .. maintenant vous pouvez aller et venir .." Pas impressionnant . Personne ne peut voir dans votre tête ce qu'était le jeu "sapposa". Ils ne le voient que pour ce qu'il est, inachevé.
Un jeu inachevé est comme une tarte à moitié cuite. Certaines personnes pourraient être en mesure d'apprécier cela, mais cela a vraiment un goût dégoûtant, et 20 minutes de plus au four pourraient rendre ce que vous avez déjà fait à moitié délicieux pour tout le monde.
2) Les fonctionnalités sur lesquelles vous évitez de travailler peuvent contenir de précieuses leçons.
Les trucs que vous rechignez à terminer:
Fonctionnalités non implémentées:
Vous pouvez laisser de côté certaines de ces choses. Par exemple, "Utilisez plus intensivement les modèles de conception". Une refactorisation comme celle-ci est une perte de temps pour un projet pour animaux de compagnie, pour l'appliquer, vous devez simplement commencer un nouveau projet.
Certains d'entre eux sont faciles. Par exemple, des briques complexes. Certains d'entre eux représentent en fait beaucoup de travail . Les bonus ne sont pas faciles, ils nécessitent que vous mettiez en place des éléments de construction tels que des armes à feu, des balles, nécessiterait l'ajout de code d'intersection de rayons.
Je pense que ce que vous voyez est "la mise en place de l'échafaudage était si facile ... et regardez c'est presque terminé. La finition serait tellement de travail, pourrait tout aussi bien s'arrêter maintenant." Oui, ériger le cadre en bois pour une maison est aussi "facile", et cela peut représenter la moitié du travail. Les cloisons sèches, l'électricité, la plomberie, sont tous des "détails". Mais en ne finissant pas la maison, personne n'achètera à quel point la maison aurait été formidable si seulement vous l'auriez terminée.
3) Si vous vous ennuyez de ce sur quoi vous travaillez, il n'y a rien de mal à commencer autre chose.
Cela ne signifie pas pourri sur quoi vous travaillez, mais il n'y a aucun mal à passer un mois ou deux à penser à autre chose ou à démarrer un nouveau jeu. Vous pouvez revenir à Arkanoid avec une nouvelle perspective.
Un dernier point également. En plus de développer toutes les fonctionnalités attendues d'Arkanoid, il est encore plus intéressant d'y apporter votre propre touche. Donc, au lieu de vous arrêter sur votre clone, vous devriez aller plus loin et innover sur le jeu original.
la source
La bonne réponse dépend vraiment de ce que vous voulez faire ensuite. Si vous passez à quelque chose de nouveau, vous risquez de vous retrouver à résoudre les mêmes anciens problèmes à nouveau et à ne pas vraiment étendre vos compétences, mais vous pouvez passer à quelque chose de nouveau. Si vous continuez à peaufiner, il y a des choses utiles à apprendre de la brève liste que vous avez donnée, et elles vous tiendront bien à l'avenir, mais vous travaillez toujours sur la même ancienne base de code.
Ce que je recommanderais, et c'est une opinion purement personnelle, c'est de passer à quelque chose de nouveau et de garder le polonais pour cela. En même temps, essayez de vous étirer avec quelque chose de nouveau. Donc, si vous n'utilisez actuellement pas d'API 3D, apprenez-en une et utilisez-la. Si vous en utilisez un, apprenez l’autre et utilisez-le. Ou passez à un niveau plus avancé que celui que vous utilisez. Inclut un meilleur son, physique ou moteur d'entrée dès le départ. Quoi qu'il en soit, ce que je considère comme l'important est de sortir un peu de votre zone de confort actuelle et d'acquérir plus de compétences et de connaissances, tout en vous amusant.
la source