Non merci,je prefererais apprendre vraiment et developper mon jeu entierement dont le moteur de jeu plutot que travailler avec un moteur pre-codé.
Développer un moteur c'est un projet à part entière et développer un jeu c'en est un tout autre (qui n'ont pas tant de choses en commun l'un avec l'autre). La première chose c'est que tu ne feras pas les deux en même temps, il faut que le moteur tienne la route à l'usage pour développer un jeu avec et déjà développer un moteur c'est démesurément long. Pour te donner un idée, tu peux aller voir par là : https://openclassrooms.com/forum/sujet/moteur-de-jeu-nazara-engine-69732 .
Bref si ton but c'est de faire des jeux, utilise les outils fait pour ça : des moteurs de jeu.
Pour etre concret et rester de l'idee des jeux videos, regardes cette image :
C'est la structure d'un moteur de jeux.
Chaque rectangle est un module. Et dans tous ces modules, une dizaine seulement necessite d'utiliser autre chose que du C++ "console". Et tous les programmes sont un peu comme ca : une petite couche graphique et une grosse partie interne non graphique.
Et pour repondre au probleme de la faisabilite de creer un jeu : chaque module necessite des mois d'apprentissage et des mois d'ecriture. Un personne seule mettra des annees pour creer un tel moteur. Regardes Nazara, SFML ou Castor3D, qui ont tous ete developpe par une personne seule (ou presque), cela a pris des annees, et contient tres tres peu de fonctionnalites par rapport a un vrai moteur de jeux.
En plus de ce que @michelbillaud a dit, si tu veux faire un jeu, utilise un moteur de jeu, sinon tu te retrouveras à faire un moteur de jeu (ce qui est déjà un projet complet). Suivant la complexité du jeu que tu veux faire, coder un « petit » moteur de jeu ne va pas prendre « trop » de temps, mais sinon tu vas clairement passer ton temps à coder ton moteur et pas ton jeu. Pour te donner une idée, regarde ce moteur de jeu qui est commencé depuis plus de cinq ans.
okay, merci de m'avoir explique, donc si je comprend bien,la plupart des modules pour la creation d'un jeu video c'est du code C++, mais le reste des modules, est-il explique comment les creer dans ton cours(gbdivers) ?
okay, merci de m'avoir explique, donc si je comprend bien,la plupart des modules pour la creation d'un jeu video c'est du code C++, mais le reste des modules, est-il explique comment les creer dans ton cours(gbdivers) ?
Non. Et meme pour les modules qui ne nécessite que du C++ "non graphique", tu ne pourras pas les créer simplement après avoir lu mon cours.
Tu ne réalises pas du tout la tâche que cela représente de créer un jeu. Je peux expliquer le code pour utiliser une lib reseau, tu ne sauras pas pour autant faire de la programmation réseau. Je peux expliquer le code pour utiliser un thread, tu ne saurais pas faire de la programmation concurrente. Et si je t'explique comment utiliser une lib graphique, tu ne sauras pas pour autant créer la partie graphique d'un jeu.
Et pour chaque module du schema precedent, tu auras sans problème l'équivalent d'un livre complet a lire.
Mon cours est une introduction au C++, pour apprendre les bases du langage C++. C'est un pré-requis pour programmer en C++, mais il y a 10000 autres choses a apprendre pour créer une application.
je réalise parfaitement ce que c'est de créer un jeu-vidéo, je sais que ça prend des années pour une personne seule et expérimenté, mais ce n'était qu'un exemple.
Je vais réitérer ma question plus concrètement, je suis quelqu'un qui se motive très facilement pour apprendre et persévérer dans un domaine seulement pour ça,j'ai besoin de savoir qu'est-ce que je pourrais faire a la fin d'un cours ? Je pense bien que le projet d'un jeu-vidéo est trop complexe pour moi actuellement,mais je ne pense pas qu'il n'y a que ça. Donc viens ma question: que pourrais-je faire a la fin de ce cours (de plus simple qu'un jeu-vidéo) ?
Si on ne t'a pas donné de liste, c'est que c'est trop vague. Tu peux tout faire ce qui n'est pas graphique. En vrac, des analyseurs, des compilateurs, des serveurs, de l'analyse de données, de la prog systeme, du web (même si ce n'est pas le plus courant en C++), de l'algo, des bases de donnees, de la crypto, de la prog embarque, etc. etc.
C++ est Turing-Complet, ce qui veut dire que si un programme est faisable, alors il peut être écrit en C++ (là c'est des maths, je laisse la démonstration en exercice, parce qu'elle ne tiendra pas dans un post, et que je suis incapable de la faire ). Autrement dit, c'est quasiment du No Limits.
Après sur l'aspect jeux vidéo, là il faut recadrer, un jeu 3D AAA, est tout simplement irréalisable pour une personne seule, c'est beaucoup trop de travail et il y a beaucoup trop de compétences nécessaires pour qu'une seule personne puisse les acquérir toutes (programmation,musique,dessin...).
AwpSoLeet, avait donné ici-même une idée de la charge de travail pour un jeu comme TESO. Si je me souviens bien, il parlait de 7 ans de développement et d'une équipe d'environ 50 personnes (et ils ne partaient pas de zéro). Si on ramène ça à une seule personne, le chiffre devient vertigineux: 350 ans. L’espérance de vie moyenne en France se situe un peu en dessous de 80 ans, ce qui veut dire que même si vous y consacriez votre vie toute entière, ça ne suffirait même pas pour faire un petit tiers du travail...
Un autre exemple est le projet sur lequel je travaille avec un ami depuis plus de trois ans, en utilisant le meilleur moteur de jeu sur le marché. "Faire un jeu vidéo en quelques années" c'est le scénario optimiste avec un moteur de jeu, pas sans.
C++ est Turing-Complet, ce qui veut dire que si un programme est faisable, alors il peut être écrit en C++ (là c'est des maths, je laisse la démonstration en exercice, parce qu'elle ne tiendra pas dans un post, et que je suis incapable de la faire ).
Euh non, Turing complet, ça veut dire qu'on peut calculer tout ce qu'on sait exprimer par sur des machines de Turing, les fonctions calculables, qui le sont aussi par le lambda-calcul. Par contre, les machines de turing manquent cruellement de trucs rigolos, comme les interfaces d'entrées sorties :-) donc il y a des choses qui ne sont pas faisables avec les machines de turing, comme écrire "hello world" en rouge. Voila ce que c'est de comparer avec un objet théorique.
En fait Turing complet, c'est à deux tranchants
on sait qu'on n'est pas trop limité dans ce qu'on peut faire
par contre que certaines propriétés des programmes seront indécidables. Inutile de demander à un compilateur de vérifier qu'un programme ne boucle pas, par exemple.
mais ça ne dit absolument rien sur la facilité avec laquelle on peut programmer des applications utiles.
J'ai (encore) un petit souci, dans le cours au niveau de la creation de std::vector et std::array, on nous explique comment faire pour rajouter ou modifier les valeurs qui sont a l'interieur de vector et array et les afficher, mais le probleme,c'est que je n'arrive pas a afficher toutes les valeurs contenues dans le tableau créé grace a un std::cout .
#include <iostream> #include <vector>
int main() { std::vector<int> v { 1, 2, 3 }; std::cout<<v<<std::endl; }
Pour afficher le contenu d'une collection, il n'est pas possible d'utiliser directement std::cout dessus. Il faut afficher individuellement chaque élément avec std::cout, ce qui implique de voir comment parcourir une collection. Vous verrez cela dans la suite du cours, pour le moment, voici deux syntaxes pour faire cela. ...
Donc il ne faut pas hésiter a lire correctement le cours.
Bonne nouvelle ! Le cours sur le site Zeste de Savoir https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/ continue de se développer et la partie POO est en cours de rédaction. C'est un cours collectif, écrit par plusieurs auteurs et relus par encore plus de personnes. Bref, de la qualité.
Autre bonne nouvelle, cela veut dire qu'il n'est pas nécessaire de conserver mon propre cours, qui n'est pas complet et qui devient obsolète avec le temps. Et si vous avez lu l'introduction qui se trouve sur mon site, vous connaissez mon point de vue : un cours qui n'est pas maintenu à jour est un mauvais cours. Et comme je pense qu'il est préférable qu'un cours soit supprimé pour éviter que les débutants continuent d'apprendre des choses incorrectes, vous devinez quelle va être la destinée de mon cours...
J'ajouterai dans quelque temps un entête sur chaque chapitre du cours, pour conseiller de se diriger vers le cours de ZdS. Et le cours finira par etre supprimé, lors que le cours de ZdS sera suffisamment avancé (au moins quand la partie POO sera publiée), probablement dans 6 mois à 1 an.
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Discord NaN. Mon site.
Discord NaN. Mon site.
Discord NaN. Mon site.
Discord NaN. Mon site.
Discord NaN. Mon site.
Discord NaN. Mon site.
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr