Question

Je suis un programmeur amateur maîtrisant assez bien Python et j'apprends actuellement le C. Depuis peu, je parlais à un collègue qui souhaite également apprendre à programmer. Dans son cas, il souhaite apprendre le C ++ en tant que chemin d'accès à la programmation de jeux Windows à l'aide de DirectX. Personnellement, j’ai le sentiment de plonger directement dans C ++ car votre langue maternelle est un peu trop difficile - il est assez difficile de rester motivé dans une langue plus facile, et je pense qu’il est préférable d’apprendre une autre langue pour bien comprendre les concepts de base, puis quelque chose comme C ++.

J'ai trouvé que Python fonctionnait bien comme langue maternelle, car je suis plus intéressé par la programmation réseau et Web sur les plates-formes Linux / Unix, mais pour quelqu'un qui était principalement intéressé par la programmation de jeux Windows, je pensais que le C # pourrait être un meilleur choix que lui. apprenez à utiliser Visual C # Express Edition et XNA, puis basculez vers Visual C ++ lorsqu'il est prêt à commencer à apprendre le C ++ et donc à être déjà dans un environnement familier. Je pense que la gestion de la mémoire est une tâche ardue, et C # au moins le gère afin de pouvoir le remettre à plus tard jusqu'à ce qu'il commence à apprendre le C ++.

Que pensent les autres utilisateurs du C ++ en tant que premier langage de programmation pour ce type d’application? Devrais-je le recommander à la place pour C #?

Était-ce utile?

La solution

C ++ devrait bien se passer. Je pense qu'il vaut mieux en apprendre davantage sur la gestion de la mémoire, les pointeurs, etc. AVANT de passer à C #, car il comprendra comment le programme fonctionne mieux. Sinon, il verra simplement que la mémoire est magique et le ramasse-miettes n'aura pas de véritable sens. Il est toujours bon de bien comprendre les langages sous-jacents (C, C ++, Assembly, etc.) pour produire le meilleur code.

Autres conseils

C ++ est la langue principale utilisée pour la plupart "sérieuse". titres de jeux. Si la programmation est destinée à un grand studio de jeu, il a besoin de connaître les petits détails sales de C ++.

Commencer avec C ++ peut être un peu difficile pour un novice complet. Je recommanderais C comme un excellent point de départ. Vous vous familiariserez avec les concepts de gestion de la mémoire et d’autres éléments de bas niveau avant d’ajouter à la complexité du C ++.

Etant donné que C # est un code géré, il ne gagnerait pas les connaissances de la gestion de la mémoire de bas niveau. Cela ne lui sera pas utile s'il doit traiter avec C ++. Dans ce cas, se rapprocher du métal l’aidera à long terme.

La programmation de jeux C ++ est excellente. Mais à moins que vous n'aimiez la douleur totale pendant que vous apprenez à programmer, vous pouvez commencer par XNA. Cela vous permettra de travailler sur le contenu et la logique du jeu au lieu de vous battre avec votre code moteur.

Maintenant, si vous aimez la douleur, commencez par les routes DirectX et C ++.

Je pense qu’il est préférable d’apprendre à fond un langage tel que Java ou C # avant de passer à C ++. La raison pour laquelle je dis cela est parce que vous pouvez facilement vous perdre dans les détails et les subtilités de C ++.

J'ai eu des difficultés avec le C ++ (passe-temps) pendant quelques années, puis à Uni, j'ai appris à Java, arrêté de faire du C ++, obtenu un travail de Java pendant quelques années, puis passé au développement C ++. J'ai tout ramassé très rapidement parce que je savais déjà quels motifs et quels concepts je voulais appliquer et que c'était juste une question d'apprentissage de la syntaxe et des bizarreries et de nous habituer à nouveau aux pointeurs. Je devais juste apprendre comment et pas pourquoi. Prendre C ++ comme première langue principale consiste à apprendre comment et pourquoi simultanément et cela peut être très déroutant!

XNA est une bonne suggestion.

Python est bon en programmation de jeux. Voir Je veux jouer pour apprendre -développement-quelle-langue-devrait-je-utiliser . Envisagez d'apprendre à Pygame .

  

Pygame est un ensemble de modules Python conçus pour l’écriture de jeux. Pygame ajoute des fonctionnalités au-dessus de l'excellente bibliothèque SDL. Cela vous permet de créer des jeux et des programmes multimédia complets en langage Python. Pygame est très portable et fonctionne sur presque toutes les plates-formes et systèmes d'exploitation. Pygame a été téléchargé des millions de fois et a reçu des millions de visites sur son site Web.

S'il veut entrer dans l'industrie, il est vital de connaître le C ++, car la majorité des moteurs de jeux utilisent le C ++. (Je souhaite également que le développeur ait quelque temps un maigre C ou C ++)

Cependant, s'il veut écrire des jeux (comme dans, finir d'écrire un jeu), le C ++ peut ne pas être la solution. Il est très complexe et comporte de nombreux pièges qui en font un langage lent à développer. Ce n’est pas simplement la gestion de la mémoire, mais des choses comme les horribles erreurs de compilation liées à stl, etc., qui rendent très difficile d’obtenir quoi que ce soit lors de la première tentative programmer.
Regarder quelque chose comme C # ou Python serait une meilleure option, car ce sont des langages beaucoup moins complexes et chacun a de bonnes bibliothèques de jeux.

S'il décide que C ++ est la bonne solution, je recommanderais au moins une bibliothèque de rendu. Quelque chose comme Ogre3D à tout le moins. La raison en est abordée dans cet article Écrire des jeux non des moteurs . Bien qu'écrire (ou essayer d'écrire) un moteur à partir d'une API de base soit une bonne expérience, il est peu probable que le jeu se termine.

Vous devez tenir compte des kits de développement logiciels existants, vous ne voulez probablement pas tout programmer tout . Par exemple, il existe de très bons moteurs 3D avec différents types de licences qui peuvent vous convenir.

Vous devriez donc consulter les bibliothèques existantes et les kits de développement logiciel (SDK), ainsi que les quelques langues que vous souhaitez conserver en même temps. S'adapter au C ++ ou au C # n'est pas si difficile, le premier est plus strict et plus exigeant alors qu'il vous donne un contrôle plus étendu de la mémoire, le second vous permet de vous concentrer sur le principal domaine de développement mais prend en charge (principalement) la gestion de la mémoire, ce qui signifie que vous pourriez avoir des problèmes en temps réel.

À la fin de la journée, l’aide que vous pouvez obtenir pour construire votre application sera toujours supérieure aux petites différences entre ces langues OO (dans une certaine mesure).

Il existe de nombreux moteurs de jeu. La plupart d'entre eux sont répertoriés sur cette page . Dans le monde libre, un intérêt particulier:

Les forfaits non-gratuits incluent Unity et d'autres.

Si vous ne souhaitez pas utiliser l'un de ces moteurs, il existe encore de très bonnes bibliothèques comme Qt pour C ++, cela permet de créer des scripts - bien que ce ne soit pas directement Python, vous devrez l’incorporer vous-même - et d’autres pour C #, mais la liste risque d’être assez longue.

Généralement, les gens s'essoufflent avant d'avoir terminé leur premier match. Par conséquent, à moins que votre ami ne soit déterminé avec détermination, je vous recommanderais l'option la plus évoluée qui soit. Si vous choisissez entre C ++ et C #, ce sera C #.

Je préférerais XNA et C # pour une introduction rapide et simple. J'utiliserais C ++ et une bibliothèque comme DirectX, pour la programmation de jeux, après avoir acquis une certaine expérience du sujet. La plupart des jeux les plus réussis ont écrit en C ++.

Si votre objectif est de vous amuser et de terminer vous-même (ou par petites équipes) des jeux relativement petits, alors je dis C # et XNA.

Si votre objectif est de travailler dans l'industrie, sur des jeux à très gros budget avec des équipes géantes ... Alors C ++ ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top