Demande d'avis

Choix d'une méthode d'apprentissage

a marqué ce sujet comme résolu.

Bonjour,

Voilà j’ai une question plutôt restrictive à poser….

Je souhaite apprendre la programmation orientée jeux vidéo et deux types de choix s’offre à moi. Je ne veux rien d’autre que le choix de ces deux méthodes.

L’une c’est de démarrer par le tuto C ici présent, l’autre est de prendre la formation gamecodeur. On admet dans ce paramètre que les deux méthodes sont gratuites pour ne pas fausser les avis. Je sais, gamecodeur est payant.

Simple :

Apprendre à coder proprement, directement savoir allouer de la mémoire, savoir éviter ce qui ferait freezer le jeu par exemple, ou apprendre à coder grossièrement et avoir une vue globale (avec un langage haut niveau, apprendre à se servir d’un framework, les grandes lignes et grandes fonctions ) avant d’entrer dans les détails, lequel vous paraît la bonne méthode ?

Merci par avance ;))

Ce serait d’abord C pour aller vers du C++/C#.

J’l'ai pas précisé exprès pour que ce soit restrictif en fait, c’est le niveau apprentissage/courbe/fondements qui m’intéresse dans ces deux voies.

Soit je fais du LUA/love2d -> c#/monogame -> c++

Soit je fais du C -> C++

La première méthode est elle tout autant efficace/mieux que la seconde ou inversement en terme d’apprentissage, de compréhension et de mise en application ?

+0 -0

Si tu veux faire du C++ apprend le C++ pas le C.
Le C ne t’apportera pas grand chose si ton but est de faire du JV.

Je ne connais pas C# et ça ne m’intéresse pas mais c’est certainement plus adapté pour du JV que du C.

+6 -0

Donc pour en revenir à la question de base, la méthode d’apprentissage du C++ est plus concevable et a de meilleurs fondements que la méthode de gamecodeur ?

Je reviens sur la question de base parce que c’est ça que j’aimerais savoir. Pas celle du meilleur langage mais de la méthode. D’où ma question restrictive.

Comme ça à blanc si vous n’aviez jamais programmé de votre vie, mais avec le recul objectif en terme de connaissances et de mise en pratique, sur quoi vous mettriez vos billes ?

Dans la formation gamecodeur ou apprendre en solo le C++ et axer dessus pour produire ?

Merci d’avance.

Comme ça à blanc si vous n’aviez jamais programmé de votre vie, mais avec le recul objectif en terme de connaissances et de mise en pratique, sur quoi vous mettriez vos billes ?

Ma propre aptitude à pouvoir extraire les informations pertinentes en multipliant les sources d’informations plutôt que tout reposer sur un cours ou un langage.

Ça répond pas à la question "restrictive" que tu te poses parce que cette question elle-même n’est pas pertinente. En fait, on ne peut pas savoir à ta place quelle sera la méthode qui te conviendra le mieux.

Clairement par contre apprendre le C++ en solo sera plus difficile et tu mettras plus de temps à être productif qu’en apprenant un outil plus haut niveau comme Lua + love2D (que ce soit via une formation "cadrée" ou pas d’ailleurs). Mais pour savoir si à long terme ça changera grand chose pour toi, j’ai envie de parier sur "non" mais on ne peut pas prédire l’avenir.

@entwanne elle l’était mais il a enlevé l’accès aux chapitres je viens de voir ça…

Donc en gros d’abord il apprend les principes fondamentaux : boucles fonctions variables tableaux listes etc avec du LUA puis créer une gameloop, du sons, les images bref les fondamentaux à travers love2d. Le principe c’est de miser sur un langage et un framework simple et augmenter la difficulté après, aller sur du C#/monogame en appliquant ces mêmes grands principes puis enfin aller sur du C++ et sfml.

J’ai contacté un gars de l’enjmin qui m’a dit que le principal problème avec cette méthode d’apprentissage ce sont les petites choses telles l’allocation mémoire que je n’apprendrais pas qui est crucial dans un jeu vidéo.

Il m’a conseillé une méthode plus accès sur du C pour apprendre les grands principes, faire quelques exo puis passer sur du C++ pour faire un premier petit "pong" et a partir de là travailler et travailler encore et toujours.

J’ai donc deux choix c’est la méthode d’apprentissage là où j’ai pas envie de faire l’erreur…

@adri1

Super merci, donc en soit les deux méthodes amènerait, indépendamment de moi, aux même résultats ? C’est ça m’a question je veux vraiment obtenir une réponse indépendamment de moi, les deux sont viables objectivement ? Ou comme précisé je pourrais louper des choses style la mémoire etc que n’exige pas un langage haut niveau qui me porterai défaut ?

Merci les gars ;)

Salut,

l’allocation mémoire que je n’apprendrais pas qui est crucial dans un jeu vidéo.

Pourquoi ça. L’allocation mémoire à la main, c’est au contraire le truc casse-gueule auquel on évite de toucher. Et puis tu pourras toujours apprendre des choses plus tard si tu en as besoin.

Il m’a conseillé une méthode plus accès sur du C pour apprendre les grands principes, faire quelques exo puis passer sur du C++ pour faire un premier petit "pong" et a partir de là travailler et travailler encore et toujours.

Apprendre le C pour apprendre le C++, c’est l’un des meilleurs moyens de se tirer dans la jambe et de perdre beaucoup de temps dans son apprentissage du C++. Certaines bonnes pratiques en C sont mauvaises en C++, et t’auras quand même envie de les suivre vu que t’en auras pris l’habitude.


Plus sur le sujet, ta question ne t’aidera pas beaucoup. La première chose que tu dois faire c’est apprendre à programmer et de préférence dans un langage qui te sera utile pour les jeux-vidéos. Par exemple C# ou C++. Mais le plus important pour apprendre à programmer c’est pas le langage mais la qualité du tutoriel. Donc, ce que tu veux c’est de bons tutoriels en C++ ou en C#. Plus tard tu pourras embrayer sur un moteur de jeu (Unreal, etc.).

Bien sûr, le choix du moteur de jeu peut aussi orienter le langage que tu choisis d’apprendre, mais vraiment, le plus important c’est la qualité du cours que tu suivras.

+0 -0

Super merci, donc en soit les deux méthodes amènerait, indépendamment de moi, aux même résultats ? C’est ça m’a question je veux vraiment obtenir une réponse indépendamment de moi, les deux sont viables objectivement ? Ou comme précisé je pourrais louper des choses style la mémoire etc que n’exige pas un langage haut niveau qui me porterai défaut ?

Heu, ta capacité d’apprentissage ne peut pas être indépendante de toi. o_O Ma réponse, c’est qu’il y a peu de chance que ça change quoique ce soit, mais que de toute façon la meilleure façon de progresser est de s’y mettre plutôt que tergiverser sur la meilleure stratégie si tant est qu’une telle stratégie existe et soit universelle.

J’ai contacté un gars de l’enjmin qui m’a dit que le principal problème avec cette méthode d’apprentissage ce sont les petites choses telles l’allocation mémoire que je n’apprendrais pas qui est crucial dans un jeu vidéo.

Mouais, crucial si tu développes toi même un moteur ou que tu pousses un moteur dans ses limites je veux bien, mais tu es très loin d’en être là. Tu as le temps de voir venir.

Il m’a conseillé une méthode plus accès sur du C pour apprendre les grands principes, faire quelques exo puis passer sur du C++ pour faire un premier petit "pong" et a partir de là travailler et travailler encore et toujours.

C’est absurde. La légende selon laquelle apprendre C te permet de mieux comprendre le fonctionnement de ton ordi et de mieux coder par la suite est complètement aberrante. D’une part tu peux apprendre le fonctionnement d’un ordinateur et les problématiques de performances associées sans apprendre C (je dirais même qu’apprendre C est une façon inefficace d’apprendre le fonctionnement d’un ordinateur) ; d’autre part en apprenant C tu apprends surtout à coder en C avec ses particularités et son héritage un peu foireux parce qu’il a été conçu à une époque où toute la théorie autour de ce qui fait un bon langage de programmation était encore à ses balbutiements. Bref, tu peux oublier ces conseils.

Il m’a conseillé une méthode plus accès sur du C pour apprendre les grands principes, faire quelques exo puis passer sur du C++ pour faire un premier petit "pong" et a partir de là travailler et travailler encore et toujours.

adri1

Bon, je suis pas du même avis que adri1 mais je suis d’accord sur le fait que ce qu’il t’a raconté est faux. L’idée que le C t’aidera est absurde car le C n’est pas adapté pour le JV et l’optimisation de la gestion des ressources n’est pas si importante dans le domaine du JV.

Bref, il voulait juste montrer qu’il était supérieur là j’ai l’impression…

+0 -0

l’optimisation de la gestion des ressources n’est pas si importante dans le domaine du JV.

Elle est capitale, en fait. Les JV font partie des applications qui tirent le plus sur les performances de l’ordinateur, c’est au niveau du calcul haute performances avec toutefois des problématiques un peu différentes puisque destinés à tourner sur des machines personnelles "peu" puissantes. Par contre, ce sont les gens qui développent les moteurs qui s’occupent de ces problématiques, pas les gens qui développent les jeux vidéos eux-même. Les moteurs principaux (Unity, Unreal Engine par exemple) étant principalement développés en C++, apprendre C ne servira à rien non plus de toute façon.

Mon avis personnel pour les futurs développeurs de jeu vidéo, c’est qu’il faut choisir ce qu’on veut faire : un moteur de rendu, un moteur de jeu complet, le code d’un jeu vidéo, ou un produit complet (90% pas du code). Alors on peut faire tout ça, mais on le fera probablement mal, ou du moins extraordinairement lentement ce qui revient au même avec la progression technique constante dans le domaine.

Par exemple si on veut faire un moteur de jeu, clairement il faut être bon en optimisation. Si au contraire on veut uniquement faire un jeu vidéo, l’optimisation est largement moins nécessaire voire contre-productive puisqu’on réécrit le code d’un jeu vidéo plusieurs fois pendant la production - c’est donc quelque chose qui se fait à la fin au cas par cas.

Merci je vous ai lu attentivement et j’ai mes réponses.

Je vais donc partir sur l’encadrement qu’offre gamecodeur, trop peur de démarrer sur un tuto c++ et me retrouver très vite perdu ou bloqué en commençant.

Avec ma sympathie les gars 😉

+1 -0

@FougereBle : j’ai une 403 sur ton lien.

Sinon, pour compléter les propos de @Stranger avec ses propres mots, si ton but est de créer un jeu vidéo, la programmation n’est qu’un des aspects et je dirais même pas celui qui prend forcément le plus de temps.

Tout développer toi même est par contre avantageux quand tu veux simplement pratiquer un langage et qu’un jeu vidéo est un projet comme un autre, ou bien quand tu veux explorer le fonctionnement d’un petit moteur, voir les problématiques à résoudre, etc, en sachant que tu ne l’utilisera pas pour des projets sérieux.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte