27 votes

Faut-il choisir C # ou C ++ pour apprendre la programmation des jeux (consoles)?

J'ai jeu de base de connaissances en programmation en c et c++. Je suis en train d'apprendre le c# de nos jours. Si je veux faire une carrière dans les jeux de la console de programmation, qui je doit utiliser pour procéder? J'ai remarqué que beaucoup de sociétés de jeux sont à l'aide de C++/C (probablement à cause de raisons d'héritage). Probablement aussi C++ bénéficie d'un plus grand nombre de bibliothèques prises en charge? Dans les langues modernes, les moteurs de jeu(unreal/crysis etc) sont écrits dans?

Ce thread suggère d'utiliser le c# en début et plus tard c++. Dans l'avenir C++ maintenir sa place dans l'industrie des jeux?

En gardant tous ces points à l'esprit, de la langue serait un meilleur choix? et pourquoi?

43voto

Will Points 30630

C++, pour deux raisons.

1) beaucoup de jeux sont programmés en C++. Pas ordinaires jeu n'est pas encore programmé dans un langage managé.

2) C++ est aussi dur qu'il obtient. Vous devez maîtriser le manuel de gestion de la mémoire et généralement pas de vérification des limites (au-delà de l'excellente Valgrind!). Si vous maîtrisez le C++, vous trouverez ce transférables à géré les langages procéduraux. Moins dans l'autre sens.

C++ a un niveau de complexité à proximité de l'APL! On ne fait pas mieux en jouant contre des adversaires plus faibles.

Joel fait un point très fort sur ce. Les gens qui les comprennent le fonctionnement de la machine à faire de meilleurs programmeurs, parce que toutes les abstractions sont fuit.

26voto

zackery.fix Points 489

Ok, voici mes deux cents.

Si vous envisagez sérieusement à obtenir dans l'industrie du jeu je vous recommande d'apprendre les deux langues. Commencer avec le C++ puis en se déplaçant dans un langage géré comme C#. C++ a ses avantages par rapport à C#, C# a aussi des avantages par rapport à C++.

Personnellement, je préfère C#, C++, tous les jours. C'est parce que de nombreuses raisons:, juste un peu:

  1. C# rend la programmation du plaisir à nouveau ;).
  2. C'est le code managé m'aide à remplir des tâches complexes facilement et ne pas oublier la sécurité.
  3. C#s' est de la pure programmation orientée objet, les forçant les règles votre code qui vous permet de conserver votre code plus lisible, 'soutenable' et l'exécution est plus stable. Le taux de productivité dépasse C++ par au moins 10%, le meilleur de C++ programmeur pourrait être encore mieux Programmeur C#.
  4. Ce n'est pas vraiment une raison, de plus en plus comme quelque chose de " je " comme sujet de C#: LINQ.

Maintenant...il y a beaucoup de choses qui me manque le C++. Je manque de pouvoir (complètement) de gérer ma propre mémoire. Je ne peux pas vous dire combien de fois je me suis surpris à essayer de supprimer une instance de référence. Une autre chose que je n'aime pas le C# est l'incapacité à utiliser le multi-héritage, mais encore une fois il m'a forcé à réfléchir sur la manière de structurer mon code.

Il y a eu plus de discussions sur ce sujet qu'il y a d'étoiles dans l'univers connu et ils ont tous près à une impasse. Ni la langue est mieux que l'autre et en refusant, soit l'un pour l'autre vont seulement vous faire du mal dans le long terme. Les temps changent et les normes pour la programmation informatique.

Quelle que soit la langue que vous choisissez de le garder en haut de votre liste, de toujours garder vos options ouvertes et ne pas mettre votre esprit à une seule langue. Vous dites que vous connaissez déjà, C++, pourquoi ne pas apprendre le C#, il peut pas faire de mal et je "promesse" de vous, il fera de vous un meilleur programmeur C++.

19voto

kyoryu Points 8281

Il dépend

Cela dépend de beaucoup de choses - vos objectifs, votre expérience, votre calendrier, etc.

La majorité de la programmation de jeu n'est pas spécifique à une langue. Mathématiques liés à la 3D est 3D de mathématiques en C# d'autant qu'il est en C++. Alors que les Api peuvent être différents, et différents "comptabilité" est peut-être nécessaire, les fondamentaux de la logique et des mathématiques restera le même.

Et c'est vrai que la plupart des AAA moteurs de jeu sont C++ avec un langage de script au-dessus d'eux. C'est indéniable. Cependant, la plupart des AAA moteurs ont également un tas d'outils en interne les soutenir, et ceux-ci peut être en quoi que ce soit - Java, C#, C++, etc.

Si vous voulez écrire un jeu, et êtes un développeur expérimenté C++ et C# ont beaucoup de choses pour eux. C# a moins de ménage, tandis que le C++ a plus d'outils et de bibliothèques. Pour quelque chose de très complexe, cependant, vous seriez mieux d'essayer d'utiliser un moteur existant comme point de départ.

Si vous voulez écrire un jeu, et sont un nouveau développeur , puis ne pas écrire un moteur. L'utilisation d'un moteur existant, et mod ou l'utilisation de ses installations à l'écriture de votre jeu. Faites-moi confiance.

Si vous voulez apprendre comment écrire un moteur, et êtes un développeur expérimenté , vous devriez probablement penser en C++. C# est possible, mais la quantité de code et la facilité d'intégration de C++ probablement le met sur le dessus.

Si vous voulez apprendre comment écrire un moteur, et sont un nouveau développeur , je recommenderais C#/XNA. Vous obtiendrez le jeu "trucs" plus vite, avec moins de maux de tête à apprendre les tenants et les aboutissants de C++.

Si vous voulez un travail dans l'industrie, alors vous avez besoin de comprendre à quel type de travail que vous voulez. Un langage de haut niveau peut aider à obtenir un pied dans la porte de traiter avec des outils et/ou développement web, ce qui peut conduire à des opportunités sur le jeu réel de travail. Même la connaissance de langages de script peuvent vous aider si vous voulez aller pour plus de le game designer/scripter position. Les Chances sont que vous serez pas obtenir un emploi de travail sur le moteur de base de choses immédiatement, car les compétences requises pour le faire sont assez élevés. Forte de développement en C++ compétences sont toujours utiles, surtout en temps réel ou en réseau des scénarios.

AAA moteur de jeu de développement implique de graves cerveau-torsion code.

Si vous voulez démarrer une activité de développement professionnel de la maison , alors vous n'êtes probablement pas la lecture de cette, mais déjà savoir que C est probablement la seule réponse viable.

Si vous voulez faire un jeu occasionnel de développement , alors vous devriez probablement envisager Flash ou une technologie similaire.

5voto

Marcus Johnson Points 148

Je ne vais pas répondre à la question d'origine depuis plus de post ici ont. Je vais remarquer une chose à vous que vous avez manqué dans votre post. Il suffit de savoir C\C++\C# n'est pas pour vous une carrière dans le développement de jeux. La plupart des studios de jeux en reçoivent des dizaines à des centaines d'applications pour un simple code monkey travail. Ce qui fait de vous démarquer par rapport à eux? Ce qui fait de vous une meilleure location que quelqu'un d'autre qui a de l'expérience dans la fabrication de jeux à un autre studio?

Si vous voulez vraiment une carrière dans l'industrie des jeux, même sur consoles, vous devriez faire une démo qui montre ce que vous savez. C++ serait grand choix de la langue à utiliser dans la démo si vous postulez pour une console de développement de position. Vous pourriez vous montrer plus en faisant un outil en C#\XNA pour créer l'actif de votre démo. Vous pourrez afficher les gestionnaires responsables de l'embauche et de la technologie conduit que vous n'êtes pas JUSTE un C++ mec ou JUSTE un C# guy: vous êtes un développeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X