J'ai décidé que je voulais vraiment faire de la programmation de jeux. Donc la question est, en tant que 18 ans qui veut apprendre la programmation autodidacte, quel est le langage de programmation le plus adapté entre C # et C ++? (Je dois dire que je ne me soucie pas d'Unix car je pense que Windows sera toujours le système d'exploitation le plus utilisé)
Je connais les bases du C ++, mais rien sur le C #. Je sais que C ++ a plus de guides de didacticiels, de DLL et d'autres trucs comme ça, alors que C # ne le fait pas, mais c'est beaucoup plus facile à apprendre et à utiliser pour une seule personne pour développer un programme, mais j'ai lu même si le programme est obscurci il est facile d'en obtenir la source.
Eh bien, je veux d'abord me concentrer sur le basique, je dois dire que j'ai une préférence pour le C ++ juste parce qu'il me semble plus approprié, mais je dois considérer que je travaille seul. Donc, même si j'aime ça, ce n'est peut-être pas la meilleure chose à faire.
Je ne sais vraiment pas lequel choisir, j'ai lu beaucoup de discussions sur divers sites Web et il semble que C # devienne plus populaire que C ++. Mais oui, cela dit, j'ai également précisé que je voulais faire de la programmation de jeux. J'ai donc besoin de connaître de meilleurs points que simplement "C # est plus facile à cause de la gestion de la mémoire .net alors que C ++ ne l'est pas" parce que je ne pouvais pas le trouver.
la source
Réponses:
J'apprends le C ++ en programmant un jeu. Ce fut une expérience très agréable. Je vous encourage fortement à faire de même!
Cependant, maintenant que je suis un programmeur C #, je sais que j'aurais été beaucoup plus productif si C # était disponible à l'époque.
C # est le choix parfait pour apprendre le développement de jeux. Il a tout ce dont vous avez besoin pour commencer des frameworks aux livres et le langage est incroyable.
J'ai vu des dizaines de livres spécifiquement écrits sur la programmation de jeux C # et Microsoft met beaucoup d'efforts pour améliorer ses cadres, y compris DirectX et XNA .
Mise à jour : vous pouvez être intéressé par ce aussi bien. Il s'agit d'un récent article de blog de Miguel de Icaza .
MISE À JOUR 2013-02-22 Microsoft prévoit de cesser la prise en charge de XNA .
la source
La plupart des sociétés de jeux utilisent C ++, peut-être avec des scripts python ou d'autres langages exécutés en arrière-plan. Moreso parce que les liaisons pour OpenGL et DirectX sont destinées à C ++ (mais je suis presque sûr que vous pouvez faire autant de choses Direct3d en C #) mais pour la programmation de jeux, C ++ est le langage MAIN.
Je vais vous donner un avertissement juste (et ne laissez pas cela vous dissuader), mais les graphiques 3D peuvent devenir extrêmement compliqués. Le nouveau Direct3D a rendu les choses un peu plus faciles que par le passé, mais c'est quand même un peu de mathématiques (qui peuvent devenir assez déroutantes) et seules les bibliothèques elles-mêmes peuvent être déroutantes.
Je commencerais par quelque chose de très simple en premier. pour les trucs 2D, SDL (Simple Directmedia Layer) est beaucoup plus facile à utiliser (pour quelque chose comme un jeu descendant) une fois que vous entrez dans la 3D, je pense PERSONNELLEMENT qu'OpenGL est plus facile à apprendre (mais ce n'est qu'une opinion). MS a de beaux tutoriels / exemples dans leur documentation SDK DirectX, donc ça vaut le coup d'y jeter un œil. Les tutoriels Nehe bien qu'un peu dépassés sont quand même sympas.
mais pour répondre à votre question, elles se font toutes en C ++ typiquement.
la source
Vous voudrez d'abord définir certaines priorités. Voulez-vous simplement créer un jeu d'abord, puis découvrir les aspects plus avancés de la programmation plus tard, ou vice versa. Les deux approches ont leurs avantages et leurs inconvénients, mais elles sont toutes deux légitimes à mon avis.
Si vous voulez commencer à créer des jeux, je vous recommande d'apprendre le C #. Si vous connaissez déjà les bases du C ++, vous ne devriez avoir aucun problème à choisir C #. Faire de C # votre outil présente des avantages. C'est un langage facile à apprendre (par rapport au C ++) et c'est un "langage managé", ce qui signifie qu'il fait automatiquement la plomberie de la mémoire pour vous (quelque chose que beaucoup de débutants C ++, et même pas les débutants, ont des problèmes avec ). Il vous donne également accès au framework XNA de Microsoft qui fait encore plus de plomberie fastidieuse pour vous. Cela vous laisse vous concentrer sur des choses comme le cycle de jeu et la conception, sans avoir à vous soucier (trop) de le faire fonctionner. Certes, toute cette insta-plomberie a ses frais généraux, ce qui signifie que vous ne ferez probablement pas de jeux 3D de qualité industrielle, mais que vous vous lancez dans la programmation de jeux, donc je doute que vous fassiez le prochain Halo lors de vos premiers essais. :)
Voici un post mortem du gars qui a développé un jeu XNA réussi (Weapon of Choice). Il détaille comment l'utilisation de C # / XNA lui a fait gagner du temps de développement au lieu d'avoir à utiliser C ++. http://www.gamasutra.com/view/feature/3899/postmortem_mommys_best_games_.php
Cela étant dit, vous devez consacrer du temps à au moins savoir comment les choses fonctionnent en arrière-plan. Comment un programmeur C ++ le ferait. Apprendre à créer un jeu en C ++ pourrait rendre plus facile de rejoindre une autre équipe de développement de jeux (car la plupart d'entre eux travaillent en C ++), si ce que vous voulez, c'est prendre pied dans l'industrie du jeu. Mais même si vous n'utilisez jamais C ++, savoir comment fonctionnent les internes ne peut que faire de vous un meilleur programmeur, quel que soit le langage que vous utilisez.
la source
Je fais la promotion de C ++ pour le développement de jeux. Il y a quelques obstacles supplémentaires, avec divers avantages et inconvénients, l'une des meilleures raisons étant la portabilité.
Avec C #, vous pouvez développer un peu plus ces jours-ci, et il y a à coup sûr des moteurs incroyablement excellents. Les deux sont de bons langages pour la programmation de jeux, si vous ne ciblez que les plates-formes Windows / Xbox, vous aurez surtout des raisons de vous pencher vers C #.
La langue que je pense que vous devriez apprendre le plus serait OpenCL ou CUDA, une langue GPGPU. Personnellement, je préfère OpenCL car il semble susceptible de durer plus longtemps et de se développer davantage, il s'agit essentiellement d'un style C. Il y a OpenTK qui est un joli wrapper pour C ++ ou C #.
Je me suis toujours demandé à quoi ressemblerait la programmation du jeu Ruby avec l'accélération matérielle ...
la source
La programmation du jeu brut va vous laisser assez froid. Travailler avec des appels graphiques de bas niveau en C # ou C ++ est un cauchemar mineur et vous ne voulez vraiment pas reconstruire la roue du rendu des sprites 2D et encore moins des modèles 3D. Étant donné que vous êtes seul et que vous souhaitez apprendre la programmation, votre meilleur pari est de trouver un cadre qui peut vous mettre un peu en avant.
Puisque vous avez une certaine familiarité avec le langage C, ma suggestion serait de donner à Unity 3D un look. Non seulement il connaît une adoption sérieuse dans les magasins de développement de jeux commerciaux et possède des options de plate-forme intéressantes (y compris les runtimes PC, Android, iPhone et Web), mais il a également une version gratuite très facile à utiliser et de nombreux tutoriels pour vous montrer comment passer du concept à la mise en œuvre. Le meilleur de tous (IMO), l'un des langages de script pris en charge est C #.
la source
J'ai fait un jeu pour une classe il y a deux ans (j'avais 18 ans à l'époque) et nous l'avons fait en C #. Bien que j'observe que les grands programmes C # fonctionnent généralement plus lentement que les grands programmes C ++, C # nécessite également beaucoup moins de travail de votre côté. La gestion de la mémoire se fait automatiquement, et pour la portée d'un premier jeu, c'est assez rapide. (Notre jeu est un RTS multijoueur 2D à part entière de type Starcraft.)
Je prendrais racine pour C # car il devrait être plus facile à gérer. Cependant, si vous souhaitez devenir un développeur de jeux professionnel, n'oubliez pas qu'il ne fonctionne que sur les plates-formes Microsoft. (Pourtant, C # peut être un bon tremplin vers C ++, et si je devais réapprendre les deux langages, j'essaierais d'abord d'apprendre C #.)
la source
Je voterais C ++ - principalement parce qu'il peut être multiplateforme (selon la façon dont vous écrivez votre code, bien sûr) et aussi parce que je pense qu'il vous donne plus de connaissances sur la gestion de la mémoire - parce que vous devez vous en soucier. Mais comme vous ne vous souciez pas de linux / unix, si vous voulez laisser de côté la complexité de la mémoire pour l'instant, pourquoi ne pas vous concentrer en C # tout de suite et apprendre aussi le C ++?
la source