CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Le C ou le C++ ?

Gameengine
Gameengine
Niveau 6
27 août 2010 à 11:08:08

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

b0w
b0w
Niveau 4
27 août 2010 à 11:28:48

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.

Gameengine
Gameengine
Niveau 6
27 août 2010 à 11:48:22

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

b0w
b0w
Niveau 4
27 août 2010 à 12:02:22

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

Shakaan
Shakaan
Niveau 10
27 août 2010 à 14:09:37

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.

chris_27
chris_27
Niveau 10
27 août 2010 à 18:52:09

« le C++ est comme le C juste avec quelques trucs rajoutés tels que les classes. » :d) 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. :malade:

Ç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).

hyrulink2
hyrulink2
Niveau 7
27 août 2010 à 20:39:19

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" .

chris_27
chris_27
Niveau 10
27 août 2010 à 21:38:29

« le C est inutile en soi car obsolète » :d) Ha bon ? pourtant, 90% de mon système est en C, et le reste est essentiellement en shell.

PaulAimik
PaulAimik
Niveau 10
27 août 2010 à 22:22:26

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.

Lapintade
Lapintade
Niveau 30
27 août 2010 à 23:53:23

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.

chris_27
chris_27
Niveau 10
27 août 2010 à 23:57:17

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.

hyrulink2
hyrulink2
Niveau 7
28 août 2010 à 10:58:36

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?

chris_27
chris_27
Niveau 10
28 août 2010 à 12:51:57

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). :-)))

Lapintade
Lapintade
Niveau 30
28 août 2010 à 13:08:03

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é :ok: )

chris_27
chris_27
Niveau 10
28 août 2010 à 13:19:39

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 ?

hyrulink2
hyrulink2
Niveau 7
28 août 2010 à 15:13:48

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

chris_27
chris_27
Niveau 10
28 août 2010 à 15:19:48

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 :-))) ).

hyrulink2
hyrulink2
Niveau 7
28 août 2010 à 15:30:31

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.

godrik
godrik
Niveau 30
28 août 2010 à 22:27:01

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.

scproinc
scproinc
Niveau 4
29 août 2010 à 17:52:36

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

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment