IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Mise au point sur la création de jeux vidéo


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Mise au point sur la création de jeux vidéo
    Bonjour ,

    j'ai 16 ans et j'ai envie de créer des jeux depuis mes 8 ans environ ,

    j'ai commencer l’algorithme avec les bases de Python puis de C++ et cette année je suis en STI2D option SIN,

    voilà en gros ce vers quoi je veux tendre :
    j'ai follement envie de créer un jeu style warcraft 3 niveau graphisme , avec comme gameplay un des mods qui était disponible à l'époque.
    j'ai parler de ce projet à mon professeur de techno et il m'a dit de commencer le C et à être solide dessus.

    je veux donc tout reprendre de 0 sur de bonnes bases,

    -sachant que je vais choisir le C sous conseil d'un professeur, avez vous un tuto à me conseiller pour apprendre le langage C correctement

    -combien de temps dois-je passer à apprendre le langage avant de passer à des projet de petit jeux vidéo 3D? (je ne suis absolument pas presser et ne compte pas avoir un résultat "propre dans moins de 1-2 ans , j'ai un minimum conscience des difficultés).

    -quelle sont les outils nécessaire à la création d'un jeu style Warcraft 3 ,

    -le langage C est il suffisant pour créer des jeu qui ne seront pas énorme niveau ressources?

    -Ce projet est en méditation depuis 2 ans avec un amis qui s'exerce à la 3D depuis 2 ans , peux-t-on ésperer un résultat style Warcraft 3 à 2?

    -est-ce compliquer de programmer sur des moteur de jeu? (est-ce dur de programmer de la 3D en géneral)?

    pour résumer : j'aimerais commencer à apprendre et m’exercer pour de bon sur la programmation et voir enfin mes projets naître (je veux tendre vers Warcraft 3 en passant par des petits jeu Android probablement)

    merci à tous de vos futurs réponses.

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 813
    Points : 7 102
    Points
    7 102
    Par défaut
    Bonsoir,

    Quelques questions

    Comment ton professeur justifie-t-il ce choix ? Pourquoi pas le C#, le C++ ou voir même python ou mieux l'interfaçage entre 2 ou 3 langages ? Pourquoi pas Lua ? Connaît-il toutes les technos ?

    POO or not POO ?

    La Programmation orienté objet est une façon sympa de créer un jeu en créant différents objets et en les faisant interagir les uns avec les autres, cette façon de penser est utilisé dans beaucoup de langages, sauf le C (du moins pas naturellement)

    Conclusion

    Pourquoi ne pas écouter ce que tu ressens ? Tu as testé des langages, tu en aimes certains plus que d'autres, tu maîtrises certains plus que d'autres, pourquoi ne pas te renseigner sur la façon de créer un jeu avec ton langage préféré ou que tu maîtrises le plus ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Eh bien, mon professeur m'a dit que les langages était tous plus ou moins basés sur le C et que ainsi, je serai plus à même de passer sur un autre langage à l'avenir, en deuxième point, le C sera le langage utiliser dans ma filière technologique durant mes années de STI2D.

    Je t'avoue que je ne connais rien, je ne sais pas par où se commence un jeu vidéo, c'est pour cela que mon post est fait : j'aimerais tout savoir (du moins un maximum) pour pouvoir avoir les moyens d'apprendre.

    Et bien avec les bases que j'ai lues je n'ai pas forcément de préférence. J'ai apprécié tout les langages que j'ai commencé, étant donné que je ne m'en suis jamais servi que pour des petits programmes question/réponse sur cmd, style casino (choisir une mise sur un numéro de roulette).

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 813
    Points : 7 102
    Points
    7 102
    Par défaut
    Prenons un exemple (pourquoi pas l'objectif que tu souhaites, Warcraft)

    Que dit Wikipedia sur le langage Lua ?

    Citation Envoyé par wikipedia
    Il est particulièrement apprécié pour le développement de jeux vidéo comme pour l'interface du jeu World of Warcraft de Blizzard Entertainment, pour Garry's Mod ou Far Cry (et le moteur CryEngine en général) de Crytek Studios, voire encore pour SimCity 4 et Natural Selection 2 de Unknown Worlds Entertainment qui a entre autres développé Decoda, un IDE pour Lua.
    Je ne fais pas de Lua, mais il semble tout de même adapté à ce que tu souhaites faire... Apprendre le C apportera des bases, peut-être mais apprendre le langage directement choisi pour son projet me paraît moins chronophage...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    je me risque à tenter une analogie : je fais pas beaucoup de sport, juste une fois par semaine à l'école, mais depuis 2 mois avec un copain on va courir (on fait 5x le tour du patté de maison, lui en fait même 6 ou 7 des fois !)
    on voudrait s'inscrire aux prochains jeux olympiques l'été prochain, vous pensez qu'on devrait choisir un survet' Nike ou Addidas ?

    ton prof te conseille le langage C, simplement parce que c'est considéré comme une base indispensable, non pas pour faire des jeux vidéos mais pour connaitre l'informatique et la programmation
    en général les gros jeux (comme Warcraft 3 donc) sont écrits en C++ et embarquent un langage de script comme LUA ou Javascript

    programmer un jeux comme Warcraft 3 est très compliqué et nécessite avant tout de savoir très bien programmer, ça ne s'improvise absolument pas
    je pense qu'avoir un objectif ambitieux est une bonne chose, c'est utile, ça motive à apprendre, mais la finalité en tant que débutant -et avec toute la lucidité cynique dont je dispose - c'est d'apprendre à programmer et apprendre l'informatique, apprendre à faire le job, et non faire le job directement

    du coup perso je te conseillerai au pied levé d'approfondir python et jeter un oeil du coté de la lib pygame par exemple, qui permet de mettre un pied dans le coding graphique assez facilement, de continuer éventuellement en parallèle sur OpenGL et essayer des petits trucs, et pourquoi pas tout en apprenant le C ou le C++ dans le même temps, pour la culture, la vision bas niveau qu'offre le langage, les problématiques mémoire qu'ils soulèvent et rendent plus concrets la programmation de plus haut niveau etc.

    my 2 cts.

    Edit: un exemple concret de "gros jeux" dont le code source est disponible c'est Ryzom, écrit donc en C++ et LUA pour la partie scripting, c'est très intéressant de regarder comment est foutu le code, ça permet notamment d'avoir une idée plus précise d'à quoi s'attendre et comment le tout est structuré/agencé

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Pour mieux voir comment commencer, je propose de lire cet article : Faire un jeu vidéo : par où commencer.
    Ensuite, moi, je vous conseillerai de rester en Python (avec pygame) OU de prendre un moteur de jeux vidéo style Unity 3D.
    Le premier choix, c'est si la programmation est votre dada et que vous n'êtes pas nécessairement intéressé par le résultat. Le second choix, c'est pour avoir le résultat le plus rapidement possible (et il y aura aussi de la programmation ).
    Pour Unity 3D, il y a des ressources ici : http://unity.developpez.com/

    En tout cas, bon courage
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    La programmation de jeux vidéo - 2D et 3D - fut mon métier pendant plusieurs années. Aujourd'hui je n'en fais plus professionnellement mais ce sur quoi je travaille reste assez lié à la problématique de la simulation - soit l'évolution du « monde » virtuel - et du rendu - soit la génération et l'affichage des images - en temps réel. Pour ces raisons et le fait que je retrouve mon « ancien moi » dans les questions que tu te poses, je me permets de te répondre point par point.


    Citation Envoyé par marata Voir le message
    j'ai 16 ans et j'ai envie de créer des jeux depuis mes 8 ans environ
    C'est bien ça, rien ne remplace la passion.


    Citation Envoyé par marata Voir le message
    j'ai follement envie de créer un jeu style warcraft 3 niveau graphisme , avec comme gameplay un des mods qui était disponible à l'époque.
    j'ai parler de ce projet à mon professeur de techno et il m'a dit de commencer le C et à être solide dessus.
    Le bon point c'est que tu as une vision claire de ce que tu veux obtenir. Le mauvais c'est que tu es bien trop ambitieux. Voici ce que ton prof aurait dû te répondre : « non, c'est impossible car cela nécessite un bagage que tu n'as pas encore et une quantité de travail qu'il te sera probablement impossible de fournir, seul ou à deux, en menant tes études en parallèle ».


    Citation Envoyé par marata Voir le message
    -sachant que je vais choisir le C sous conseil d'un professeur, avez vous un tuto à me conseiller pour apprendre le langage C correctement
    Le C est mon langage de prédilection, ce n'est donc pas moi qui vais te décourager de t'orienter vers lui. Cela dit je ne sais pas si c'est le bon choix lorsque l'on n'a vraiment aucune base. Sais-tu déjà comment fonctionne un ordinateur ?

    Voici deux cursus complets de programmation moderne que je trouve très bien écrits :
    http://learnpythonthehardway.org/book/ est un cours complet de programmation destiné aux débutants, je déteste personnellement Python mais :
    • il y a pire que Python ;
    • apprendre avec Python ne t'engage nullement à continuer avec ;
    • je ne connais pas de tutoriel assez bien fait pour commencer par le C.

    http://c.learncodethehardway.org/book/ est un cours de C destiné aux programmeurs ayant déjà une expérience en algorithmique générale et dans un autre langage. Il est donc fortement conseillé de suivre le cours de Python avant le cours de C, cela dit tu fais comme tu veux mais il est rarement profitable de sauter les étapes.

    Ah oui, c'est de l'anglais. Je commence tout de suite car il faudra t'y faire.

    Il te faudra choisir un environnement de programmation. Dans l'ordre de mes préférences :
    • sous Linux ;
    • sous Windows avec MSYS2 et un éditeur de texte (Notepad++ par exemple) ;
    • sous Windows avec Cygwin et un éditeur de texte ;
    • sous Windows avec Pelles C.

    MSYS2 et Cygwin « émulent » en quelque sorte un environnement GNU/Linux sous Windows, cela inclut un shell (interface en ligne de commande bien plus puissante que cmd), un compilateur (MinGW, portage de GCC) et les bibliothèques de base compatibles POSIX (appels système, signaux, threads...).

    Pelles C est un environnement de travail complet (IDE et compilateur) qui a l'avantage de totalement prendre en charge la dernière norme C (C11), ce que GCC ne fait pas.

    Je ne saurais trop te recommander de programmer au sein d'un environnement de type Unix (les trois premiers), ce n'est pas requis mais cela simplifie beaucoup de choses. Et tu peux y programmer aussi bien en C qu'en Python ou dans des dizaines d'autres langages.


    Citation Envoyé par marata Voir le message
    -combien de temps dois-je passer à apprendre le langage avant de passer à des projet de petit jeux vidéo 3D? (je ne suis absolument pas presser et ne compte pas avoir un résultat "propre dans moins de 1-2 ans , j'ai un minimum conscience des difficultés).
    Longtemps. Très longtemps.

    Citation Envoyé par marata Voir le message
    -quelle sont les outils nécessaire à la création d'un jeu style Warcraft 3 ,
    Des programmeurs avec leurs machines, des graphistes avec leurs logiciels de modélisation, du temps, de l'argent, un moteur de jeu.

    Je ne parle pas d'un moteur 3D mais bien d'un moteur de jeu, c'est-à-dire :
    • un moteur 3D pour charger et afficher des données 3D en temps réel, avec gestion de l'éclairage et d'effets graphiques divers ;
    • un gestionnaire d'entrées utilisateur pour reconnaître et traiter les commandes des joueurs ;
    • une couche audio pour la gestion de la musique et des effets sonores ;
    • une couche réseau pour la gestion du multijoueur à distance ;
    • un simulateur pour la gestion de la physique (collisions, effets de particules...).


    Citation Envoyé par marata Voir le message
    -le langage C est il suffisant pour créer des jeu qui ne seront pas énorme niveau ressources?
    En mode utilisateur, on peut absolument tout coder en C. Parfois c'est simplement un peu plus long et complexe que dans d'autres langages de plus haut niveau.

    Citation Envoyé par marata Voir le message
    -Ce projet est en méditation depuis 2 ans avec un amis qui s'exerce à la 3D depuis 2 ans , peux-t-on ésperer un résultat style Warcraft 3 à 2?
    Non. Enfin ce n'est pas impossible, vous êtes peut être très doués et prêts à y passer beaucoup de temps. C'est simplement très peu probable.

    Citation Envoyé par marata Voir le message
    -est-ce compliquer de programmer sur des moteur de jeu?
    C'est théoriquement plus simple que de tout réaliser soi-même. On se concentre sur le jeu en lui-même et on voit plus vite le résultat de son travail. Une bibliothèque ou un moteur de jeu t'affranchissent des tâches bas-niveau, parfois ingrates.

    Un exemple ? Afficher un modèle 3D dans un moteur de jeu type Unity, c'est deux lignes à écrire. Le faire en C en partant de rien nécessite des centaines de lignes de code. Il faut bien comprendre que ce n'est pas de la magie : il a quand même fallu que quelqu'un les écrive toutes ces lignes, mais c'est le développeur du moteur qui l'a fait (en C ou en C++ probablement) et qui a mis cela à ta disposition pour que tu puisses occuper ton temps à coder autre chose.

    Citation Envoyé par marata Voir le message
    (est-ce dur de programmer de la 3D en géneral)?
    Tout dépend de ce que tu désires réaliser. Sans information supplémentaire ma réponse par défaut serait : oui, c'est difficile. As-tu déjà les bases d'algèbre linéaire pour aborder les transformations 3D ? Cela s'apprend en première année post-bac je crois.

    Citation Envoyé par marata Voir le message
    pour résumer : j'aimerais commencer à apprendre et m’exercer pour de bon sur la programmation et voir enfin mes projets naître (je veux tendre vers Warcraft 3 en passant par des petits jeu Android probablement)
    Oulà, Android c'est encore différent. Il y a tout un bordel à mettre en place pour envoyer le programme sur le téléphone. De plus, je déconseillerai Java qui donne de très mauvaises habitudes.


    Si le programmeur est la seule personne indispensable dans la réalisation d'un jeu vidéo, il faut savoir que c'est rarement l'œuvre d'un seul invididu et que cela mobilise plusieurs corps de métier. Malgré son apparente simplicité graphique, un titre comme Hotline Miami a nécessité à deux personnes plusieurs longs mois de travail. Idem pour BroForce. Ou Minecraft. Je prends volontairement des exemples dans la scène indépendante pour que tu visualises ce qu'il est possible de réaliser avec une petite équipe expérimentée et des ressources limitées. Jette un œil sur les jeux de Lukas Pope, ce gars fait ses jeux seul mais il a une grande expérience professionnelle derrière lui.

    Je te conseille de :
    • regarder du côté des jeux indépendants pour te rendre compte de ce qui peut être fait seul (avec énormément de travail toutefois), https://www.tigsource.com/ est une bonne adresse de départ ;
    • t'assurer que tu aimes l'activité de programmer en soi, en suivant les cours en ligne et en réalisant de petits programmes qui n'ont pas forcément à voir avec le jeu vidéo : si ça ne te fait pas kiffer, passe ton chemin ou vise un autre corps de métier (graphiste, game designer...) ;
    • commencer un projet peu ambitieux en ligne de commande comme un jeu de société (dames, reversi/othello), un jeu de cartes (commence simple, pas le bridge )... Une fois que ton jeu fonctionne à deux joueurs humains, essaie de le perfectionner en ajoutant une IA. Rien que ça va t'occuper pendant quelques semaines.
    • continue avec un tetris (plus compliqué qu'il n'y paraît), un jeu de plate-forme en 2D (ça, ça peut devenir très complexe) ;
    • Après tout ça, considérer un projet plus ambitieux avec ton pote graphiste sur la base d'un moteur de jeu existant. Les géants du secteur (Unity, Unreal Engine...) se valent plus ou moins, il faut les tester et déterminer avec lequel vous êtes le plus à l'aise.

  8. #8
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Pour donner une idée de l'ampleur du projet:
    Warcraft 3 a été créé pendant une bonne dizaine d'années, par des dizaines de gens, qui avaient déjà créé Warcraft 2.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. Renseignements sur la création de jeux vidéo
    Par marata dans le forum Débuter
    Réponses: 5
    Dernier message: 30/11/2015, 16h10
  2. Création de jeux vidéo multijoueur sur Internet
    Par jbat64 dans le forum Réseau et multijoueurs
    Réponses: 16
    Dernier message: 13/10/2009, 22h38
  3. mise au point sur le poste de support technique
    Par digger dans le forum Emploi
    Réponses: 2
    Dernier message: 07/05/2008, 12h08
  4. mise au point sur la new, class, stack et heap
    Par cdm1024 dans le forum C++
    Réponses: 1
    Dernier message: 18/03/2008, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo