Bonjour , je vais faire un stage dans une grande entreprise de création de jeu bientôt ( j'ai une ami à ma mère qui a des relations avec de grands patrons )
Donc quel langage faut til connaitre ?
Comment bien l'apprendre ?
J'ai pas réussi à apprendre sur le site du zero car j'ai eu mal à la tête
Apprends le C, le C++ est comme le C juste avec quelques trucs rajoutés tels que les classes.
Si tu connais rien en prog jte conseillerais d'essayer un langage très simple soit comme le Visual Basic ou du scripting comme Lua.
Merci beaucoup de tes réponses
Est ce que on peut trouver le langage visual basic ou le scripting en livre ?
car sur ordinateur c'est pas top et ça donne mal aux yeux
Pour ma part, je n'ai jamais appris à programmer en utilisant des livres, c'est long et ça me paraissait toujours compliqué, j'ai tout appris en faisant quelques mods bidon sur Quake 3 afin de comprendre plus facilement le fonctionnement du langage, en faisant par exemple des statistiques pour les joueurs, activer le grappin, rajouter des nouvelles commandes... Ca apprend beaucoup de choses de manière assez simple.
Mais sinon si tu veux vraiment des livres, essaye de voir à la fnac la plus proche ou.. http://www.amazon.fr/s/ref=nb_sb_noss?__mk_fr_FR=%C5M%C5Z%D5%D1&url=search-alias%3Daps&field-keywords=visual+basic&x=0&y=0
Je te conseillerai le C++.. En jeu vidéo, c'est pas du C qu'on utilise, et le C++, même si il est compatible avec le C, est quand même largement différent et penser en objet au lieu de penser en séquentiel, ça peut faire mal aux fesses au début. Quand aux livres, il y a plusieurs références qui tournent mais le mieux est d'experimenter, et le site du zero est pas mal pour commencer. Ca ne sert a rien de lire un livre sans pratiquer derrière.. Apprend a supporter le mal de crane, t'en bouffera a la pelle si tu te lance dans le truc sérieusement.
« le C++ est comme le C juste avec quelques trucs rajoutés tels que les classes. »
quelques trucs … qui demandent des années d'apprentissage.
Sinon, je suis d'accord. Il vaut mieux commencer par du C pur et dur.
La plupart du temps, les cours de C++ c'est un gros mélange flous entre du C et des objets.
Ça me rappelle que je dois toujours essayer ça moi :
https://www.jeuxvideo.com/forums/1-47-47173-1-0-1-0-c-methode-ngck-exercices-debutants.htm#message_47218
(le message initial peut intéresser l'auteur de ce thread d'ailleurs).
Il faut apprendre les 2: le C est inutile en soi car obsolète dans la plupart des cas(surtout pour le jv) mais indispensable pour bien connaître le C++ et comme c'est un langage bas niveau ca permet de savoir ce que tu fait vraiment, à la différence des langages de scripts.
Le C++ est assez austère par rapport à d'autres langages(pas de garbage-collector, boucle foreach et tout ça) mais déjà bien plus sympa que le C et a l'avantage d'être très portable, il vaut mieux le connaitre pour faire du jv.
Et si ca te fait mal aux yeux de voir un ecran je sais pas comment tu vas faire en stage mon pauvre, le site du zero est un excellent site pour les débutants, j'ai jamais vu un tuto ou il prends le temps de t'expliquer aussi clairement et avec autant d'humour un concept. Les livres sont pour le niveau au dessus, même les editions "les nuls" .
« le C est inutile en soi car obsolète »
Ha bon ? pourtant, 90% de mon système est en C, et le reste est essentiellement en shell.
hyrulink2 << je suis pas d'accord avec la totalité de ton message...
Perso je te conseillerais également un langage de script type lua (pas mal utilisé dans les jeux) et surtout le XML en parallèle (très rapide à apprendre vu que c'est juste un langage de description et non de programmation).
C'est à mon avis ce qu'il te sera plus utile pour ton stage.
Car sauf s'il a lieu dans 5ans, tu auras pas le temps d'en savoir suffisamment long en prog pour qu'on te laisse touche aux "gros trucs". En revanche tu pourras rapidement avoir quelques bases dans un langage de script type lua.
Sachant ca, ton maître de stage pourrait te donner des travaux concrets du style : définir le comportement d'une nouvelle arme, faire une quête simple, scripter un dialogue, etc.
Ca sera beaucoup plus gratifiant pour toi d'avoir participé réellement à un JV (même de manière modeste) plutôt que de faire des trucs qui seront effacés après ton départ.
Tous les jeux vidéos sont écrits en C++ (voila la réponse courte).
Pour t'entrainer, un bon bouquin et quelques exercices sympa.
Je te conseille ma methode NGCK pour t'entrainer au C++/C tout en faisant des trucs en rapport avec les jeux.
Lapintade : Je préfère ta réponse longue alors. ![]()
Mais bon, c'est HS ici, et puis de toute façon je pense que c'est impossible de choisir correctement entre C et C++ sans connaître les deux. Donc il faudra qu'il goûte aux deux.
Chris 27, c'est pour ça que j'ai dit dans la plupart des cas, en effet le C est utile pour certains cas comme un OS, un système embarqué et pour l'apprentissage par exemple mais de toute façon ici le sujet est le jeu vidéo et je ne pense pas me tromper en affirmant que le C++ est beaucoup plus adapté que le C pour ce domaine.
PaulAimik, en quoi n'est tu pas d'accord?
hyrulink2 : J'ai l'impression que tu es beaucoup trop catégorique surtout. La plupart des petits jeux 2D peuvent très bien être fait en C. La SDL typiquement, c'est du C.
Ici, le sujet c'est le jeu vidéo réalisable par un amateur (et même par un amateur débutant sur ce thread précis). ![]()
J'ai l'impression que beaucoup voient le C++ comme un langage à part entière. Dans la pratique, le C++ introduit une nouvelle philosophie "objets" et quelques nouveaux concept, mais utilise toujours une grosse base de C.
Donc pour les débutants, je pense que quand ils apprennent le C++, il ne font même pas attention de ce qui est C ou purement C++ (et on s'en fout un peu pour être honnête).
Les nouveaux concepts apportés par le C++ sont a mons ens optionnels. Chacun est libre de les utiliser ou pas.
Par exemple, utiliser un malloc ou un new, utiliser un printf ou un cout, utiliser une classe ou une struct ... etc, etc ... chacun fait comme il veut et surtout chacun trouveras une utilité dans chaque mécanisme.
J'ai pour habitude de programmer "simple". Donc en gros je fait de l'objet, qui au final revient en grande partie a ecrire du C, et quand j'ai besoin j'utilise des notions de C++ "avancées". La mauvaise idée serait de dire "allez je code tout avec que des trucs C++ car je fais du C++". Ca rendrai le code laid, peu compréhensible et pas maintenable. (oui oui, je suis un codeur C à la base).
hyrulink2> "en effet le C est utile pour certains cas comme un OS, un système embarqué et pour l'apprentissage par exemple"
Il n'y a pas de différence entre du C++ compilé et du C. Sur DS je programme en C++, sur téléphone portable aussi. Si faire un new, c'est faire du C++, tu vois bien que la difference entre C et C++ est fine.
C'est de toute facon un debat sterile qui revient cycliquement. Il y aura toujours les adaptes du "moi je fais du C++ a fond" et ceux qui sont "le C c'était mieux avant". Perso, je dis que je fais du C/C++ et comme ca tout le monde est content. (et franchement, du moment que mon code tourne, peu d'importance comment il est codé
)
Lapintade : pour devoir enseigner un mélange batard (désolé, j'ai pas trouvé d'autre mot
) entre du C et du C++, je peux te dire que l'étudiant moyen il est vite perdu. Vas lui expliquer pourquoi on fait des char* aujourd'hui alors qu'hier c'était des string… Vas lui expliquer pourquoi dès fois c'est int& et des fois int*… etc.
De plus avant de programmer des vrais choses, il faut apprendre l'algorithmique et les bases de la compilation. Tout ça gagnerait à être fait en C pur, avant d'amener les débats sur les différents conceptions des langages de programmation.
gameengine : tu as bloqué à quel niveau sur le site du zéro ? Tu as des problèmes précis sur lesquels ont peut t'aider ?
Chris, oui je suis catégorique car il me semble que l'auteur du sujet parle de travailler dans une grande entreprise donc ça m'étonnerai qu'il soit amené à travailler sur un jeu amateur.
Lapintade, le C++ est bien un langage à part entière, ce que tu décrit est plus du "C with classes" mais tu as raison, c'est un débat stérile qui n'a pas sa place ici donc je m'arrête là, en attendant cette page de Bjarne Stroustrup's est très intéressante pour ceux qui sont intéressés par le sujet: http://www2.research.att.com/~bs/C++.html
En même temps, il a 16 ans. Donc le stage ne volera pas bien haut niveau programmation (il aura de nombreux intérêts par ailleurs hein
).
Ah au temps pour moi j'avais pas vu ce détail. Dans ce cas c'est si c'est le stage de 3ème qui dure une semaine c'est pas nécessaire de connaitre le C++ en effet.
hyrulink: il faut voir ce que les gens appellent C++ en pratique. La plupart du temps c'est exactement ce que decrit lapintade. Des structs et des fonctions associe aux struct. Eventuellement, un peu d'heritage (en C on appelle ca de la composition et des pointeurs de fonction).
C'est sur que le C++, c'est aussi, des templates, des exceptions, de l'heritage multiples, et un peu de tout ca en meme temps. Mais ce sont des concepts beaucoup plus avance de C++ que les gens (sur ce forums et ailleurs) veullent bien le reconnaitre en regle general. Ce sont des concepts difficile d'utilisatoin qui vont te sauter a la gueule a moins que tu saches parfaitement ce que tu fais.
En conclusion. Dans une demarche d'apprentissage, partir directement dans du C++ c'est rajouter immediatement une couche de complexite enorme. Parceque C++ est bien plus difficile a debugger que le C. Et quand on a compris ce que c'est que du C et comment ca marche, faire du C++ devient beaucoup plus facile: les templates, ce sont des macros avec de l'information de type, utile pour avoir du code modulaire mais compiler en dur. Les exceptions ce sont du setjump/longjump rarement utile. L'heritage multiple c'est pour presenter des interfaces externes. Rien de nouveau sous le soleil, juste une syntaxe plus sympathique.
J'ai commencé par apprendre le C++ et je connais bien le C aussi, et je dois dire que c'est totalement faux de dire que le C++ est plus compliqué à apprendre. Il est même plus facile d'utiliser l'opérateur de flux d'un std::cout qu'un pointeur d'un printf(). De plus, pour ceux qui ont fait du C, le C est totalement supporté par le C++ et on pourrait donc faire un programme avec un compilateur C++ avec strictement du code C. Le C++ est alors rétro-compatible avec le C (d'où le nom C++), mais le fait que l'on dise que le C++ est un langage à part vient du fait que le code C++ ne peut pas être compilé par un compilateur C.
Et quand on me sort l'histoire du débutant qui ne comprendra rien C++ plutôt qu'en C, c'est ni plus ni moins qu'un ramassis de conneries : Un débutant qui n'à jamais codé quoi que se soit de ça vit doit d'abord apprendre ce qu'est un if, un else, un while, un switch, etc. et ensuite ce qu'est un fonction et ses paramètres, et puis ce qu'est les pointeurs et les référances de mêmeque tout ce qui touche à l'allocation de mémoire par un new ou un alloc, et puis ensuite les structures et s'il est en C++ il pourra apprendre les classes avec ce qui s'y rattache et finalement des truc beaucoup plus avancé comme les manipulations de flux, les namespaces, les templates, ect. Et même s'il apprenait tout du C++, il n'utiliserait activement pas plus de la moitié de ces notions là puisque les notions avancé sont utilisé plus rarement.
Le C++ n'est pas compliqué. Il est simplement plus long à apprendre puisqu'il peut faire plus que le C grâce aux options qu'il a de plus que celui-ci. Alors, épargner moi les "le C++, c'est compliqué!", merci.
tl;dr : C++ > C