Partage
  • Partager sur Facebook
  • Partager sur Twitter

Nouveau cours C++ "moderne"

28 août 2017 à 19:04:20

Tu peux commencer à bosser sur la partie réseau par exemple.
  • Partager sur Facebook
  • Partager sur Twitter
28 août 2017 à 19:05:37

theo2000 a écrit:

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.

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

28 août 2017 à 19:42:38

je le sais bien, et peut-etre je n'ai pas étais clair mais je demandais juste si a la fin de ce cours, quel type d'activité je peux faire en console ?
  • Partager sur Facebook
  • Partager sur Twitter
28 août 2017 à 19:55:19

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.

-
Edité par gbdivers 28 août 2017 à 20:00:04

  • Partager sur Facebook
  • Partager sur Twitter
28 août 2017 à 20:58:15

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.

  • Partager sur Facebook
  • Partager sur Twitter
Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
28 août 2017 à 21:06:47

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) ?
  • Partager sur Facebook
  • Partager sur Twitter
28 août 2017 à 21:21:49

theo2000 a écrit:

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.

  • Partager sur Facebook
  • Partager sur Twitter
29 août 2017 à 10:20:43

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) ?

  • Partager sur Facebook
  • Partager sur Twitter
29 août 2017 à 11:03:07

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.

  • Partager sur Facebook
  • Partager sur Twitter
30 août 2017 à 9:03:11

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

-
Edité par int21h 30 août 2017 à 9:18:23

  • Partager sur Facebook
  • Partager sur Twitter
Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
Anonyme
30 août 2017 à 15:28:38

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.

  • Partager sur Facebook
  • Partager sur Twitter
30 août 2017 à 17:53:32

int21h a écrit:

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.

-
Edité par michelbillaud 30 août 2017 à 17:56:23

  • Partager sur Facebook
  • Partager sur Twitter
8 septembre 2017 à 16:49:09

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;
}

  • Partager sur Facebook
  • Partager sur Twitter
8 septembre 2017 à 17:25:28

theo2000 a écrit:

je n'arrive pas a afficher toutes les valeurs contenues dans le tableau

Pour cela, la solution de base (*) c'est de faire une boucle

pour chaque element e du vecteur v
{
     afficher l'élément e
}



(*) il y en a d'autres à coups de fonctionnelles, mais c'est pas pour les débutants.

  • Partager sur Facebook
  • Partager sur Twitter
8 septembre 2017 à 17:42:02

Dans le chapitre qui présente les collections :

courscpp a écrit:

Afficher le contenu d'une collection

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.

-
Edité par gbdivers 8 septembre 2017 à 17:42:46

  • Partager sur Facebook
  • Partager sur Twitter
8 septembre 2017 à 19:34:17

ah desole, j'etudie un chapitre par jour ou tous les deux jours donc j'oublie certains trucs, en tout cas merci pour votre reponse.
  • Partager sur Facebook
  • Partager sur Twitter
9 septembre 2017 à 7:16:54

Que ceux qui étudient mettent en pratique,

Que ceux qui mettent en pratique étudient.

(Confucius)

  • Partager sur Facebook
  • Partager sur Twitter
9 septembre 2017 à 11:14:09

Il est clair que le manque de mises en pratique dans mon cours est plus gros problème que le fait qu'il n'est pas encore fini.
  • Partager sur Facebook
  • Partager sur Twitter
7 août 2019 à 20:22:34

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.

Merci a tous.

  • Partager sur Facebook
  • Partager sur Twitter
8 août 2019 à 20:51:28

@Gbdivers: Merci pour tout.:)

  • Partager sur Facebook
  • Partager sur Twitter

Mon site web de jeux SDL2 entre autres : https://www.ant01.fr