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 :

Projet en C++


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut Projet en C++
    Bonjour je prévoie de développer un shooter online en 2D assez dynamique un peu comme ce jeu :

    Ce que je voudrais savoir est : est-ce qu'en apprenant le C/C++ je serais capable de réaliser ce jeu ? Dans le cas ou ce ne serait pas possible, connaissez vous d'autres moyens qui pourrait me permettre d'acquérir les connaissances nécessaires à la réalisation de celui-ci ?

    Merci, cordialement.

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut,

    Tu n'es pas le premier à demander ce genre de choses. C'est un bel objectif mais je pense que tu devrais le garder comme leit-motiv dans un coin de ta tête et réaliser d'autres choses plus faciles dans un premier temps.

    Néanmoins, nous ne connaissons rien de ton niveau en programmation, donc c'est difficile de juger.

    Finalement garde bien en tête que le langage C et le langage C++ sont deux langages distincts ! Et je te conseille de plonger directement dans le C++. Ou dans un langage orienté objet plus intuitif au départ comme Java.

    En plus de la programmation "technique", il te faudra au moins maitriser (ou du moins connaitre) les principes orientés objet avant de commencer ton jeu.


    Je te conseille de commencer ton apprentissage et de coder une bataille naval. N'imagine aucun effet graphique, c'est superflu. Utilise juste des lettres pour représenter les bateaux dans un premier temps.

    Une fois que tu auras fait quelque chose, n'hésite pas à revenir nous montrer ta réalisation et de nombreuses personnes te donneront des conseils précieux sur ta manière de concevoir et de coder

    Bonne chance !

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Super Trademark je n'aurais pas dit mieux ! Je n'ajouterais qu'une chose : acquérir ces connaissances te coûtera beaucoup de temps et de travail. Il vaut mieux le savoir et avoir de la patience.

    Ton jeu me fait penser à Teeworlds qui est open-source et codé en C++, et dont tu pourras t'inspirer avec un peu plus de connaissances.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Merci pour vos réponses, je comptais déjà gardé ce projet de coté le temps d'acquérir plus d'expérience !
    Mon niveau de programmation est très bas, j'ai quelques notions de C mais C tout (noté le jeu de mot ).
    Je commencerais donc par apprendre le C++ en revanche je ne sais absolument pas ce que sont les principes orientés objet .
    J'ai une autre question, combien de temps pensez vous qu'apprendre à coder correctement en C++ me prendra, environ ? Que je puisse me faire une idée.

    En tout cas merci beaucoup, je m'y mettrais bientôt !

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Code en C++ est assez facile.
    Coder proprement et correctement en C++ est beaucoup plus dur.

    Je te conseillerais de lire les cours et tutoriels pour apprendre C++.

    Après, tu peux essayer de faire ou trois trucs simples pour te familiariser avec ce que tu as appris.

    Et ensuite, je pense qu'il faudrait lire quelques tutoriels de C et C++ de ce site pour approfondir.
    Ne pas oublier aussi d'apprendre l'UML si tu veux concevoir de gros projet.



    Mais il faut bien comprendre que les tutoriels ne remplacerons jamais un vrai cours.


    Ensuite, une fois que tu te sens prêt, ne commence pas tout de suite ton projet et rejoins-en un pour voir comment ils s'organisent et pour progresser un peu plus.

  6. #6
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Citation Envoyé par Ne3zy Voir le message
    J'ai une autre question, combien de temps pensez vous qu'apprendre à coder correctement en C++ me prendra, environ ? Que je puisse me faire une idée.
    Il n'y a pas de réponses, tu mettras le temps qu'il te faudra, et si tu es trop pressé, tu échoueras (ou abandonneras) très certainement. Tout dépend de l'investissement que tu mets. Mais tu peux lire cette article : http://norvig.com/21-days.html

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Ne3zy Voir le message
    Mon niveau de programmation est très bas, j'ai quelques notions de C mais C tout (noté le jeu de mot ).
    Je commencerais donc par apprendre le C++ en revanche je ne sais absolument pas ce que sont les principes orientés objet .
    N'hésite pas à fouiller dans le forum, la plupart des principes sont expliqués un nombre incalculable de fois au cours de certaines interventions

    Les mots clés que tu peux utiliser sont de l'ordre de
    • LSP (principe de subsitution de Liskov / Liskov Substitution Principle)
    • DIP (principe de l'inversion des dépendances / Dependencies Inversion Principle)
    • OCP (Principe "Ouvert / Fermé" / Open Close Principle)
    • ISP (Principe de la ségrégation des interfaces / Interfaces Segregation Principle)
    • ORP (Principe de la responsabilité unique / One Responsability Rule)
    • La loi demeter
    • Les formes de coplien
    • et bien d'autres encore

    (c'est moi, ou ca ressemble à la liste des options d'une voiture )
    J'ai une autre question, combien de temps pensez vous qu'apprendre à coder correctement en C++ me prendra, environ ? Que je puisse me faire une idée.
    Tout dépend du niveau auquel on met la barre de "apprendre à coder"...

    Si tu te contente de "pisser du code" sur une conception technique et des algorithmes faits par d'autres, tu peux apprendre n'importe quel langage en moins de vingt heures (la syntaxe d'un langage quel qu'il soit n'est jamais vraiment très difficile), et je crois que je compte large

    Ce sera d'autant plus vrai que la syntaxe de C++ est fort proche de celle de C, et qu'il n'y aura pas "énormément" d'ajustement à faire pour apprendre la syntaxe (et uniquement elle, car beaucoup de pratiques courantes en C sont fortement déconseillées en C++ )

    Si tu veux pouvoir produire et "optimiser" tes algorithmes personnels avant de les implémenter sous forme de code, cela dépendra de la facilité avec laquelle tu arrives à penser à la logique qui doit être mise en oeuvre, mais, là encore, une expérience précédente dans "n'importe quel autre langage" s'avèrera être un atout majeur .

    Pour acquérir les bases de l'algorithmie, je crois qu'un grand maximum d'une quarantaine d'heure peut parfaitement suffire

    Pour assimiler les base de la programmation orientée objet, je ne crois sincèrement pas qu'il faille beaucoup plus d'une quarantaine d'heures non plus

    Si on faiit le total, tu devrais pouvoir être capable de "sortir" un code relativement complexe et malgré tout correct en moins d'une centaine d'heure

    MAIS

    C++ est un langage malgré tout très complexe, car très complet (c'est l'un des seuls langage qui permette de mélanger plusieurs paradigmes de manière aussi imbriquée) et certains principes, règles, lois de la programmation sont beaucoup plus complexe qu'il n'y parait d'un premier abord quand on décide de "gratter" un peu.

    Si bien que tu peux t'intéresser à tout ce qui touche à l'architecture logicielle de manière générale ou au C++ pendant plusieurs années sans en avoir fait le tour, et là, tout dépendra essentiellement de "l'engouement" et de l'intérêt que tu peux avoir

    Ceci dit, je peux te rassurer : je suis sur que tu "te sentiras prêt" à reprendre ton projet dans un délais qui se trouve "quelque part" entre les 100 heures "de base" et les plusieurs années "de maitrise"...

    En fonction du temps que tu investiras, je penses que tu devrais te sentir prêt à te lancer d'ici quelques mois, quitte à jeter dans six mois ce que tu auras fait dans trois parce que ta compréhension globale aura évolué et mis en évidence certaines faiblesses sur ce que tu auras fait

    En conclusion, je dirais qu'il est particulièrement difficile de "chiffrer" une boucle d'apprentissage pour quelqu'un dont on ne connait rien et que l'on ne peut pas "surveiller" pendant un temps bien défini par jour ou par semaine.

    Mais saches que, de toutes façons, tu apprendras toujours beaucoup plus de tes erreurs que de tes réussites. Tu ne dois donc pas hésiter à "tenter quelque chose", au risque de te ramasser, car c'est en te ramassant que tu feras réellement un bon dans ton apprentissage
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par Ne3zy Voir le message
    J'ai une autre question, combien de temps pensez vous qu'apprendre à coder correctement en C++ me prendra, environ ? Que je puisse me faire une idée.
    Moi, je dirais plutôt : des années.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Merci beaucoup à tous, je vais tout de suite me renseigner sur les principes orientée objet !

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Bonjour à tous,

    Afin d'apprendre le C++, je pense qu'il est très important de connaitre le C. Donc je ne te conseillerai pas de t'orienter directement sur de la POO C++ si tes notions de C sont trop faible.

    Maintenant tu présentes un jeu en 2D. Es tu sur de vouloir le faire en langage C++ ? Car il est possible avec d'autres technologies de créer des jeux 2D, sans avoir toutes les complications que le C/C++ (principalement la gestion de la mémoire). Je pense par exemple à l'AS3 qui donne de très bon résultat.

    Enfin, pour le développement d'un jeu, les connaissances d'un langage ne te suffira pas. Il te faudra également avoir des notions de développement de jeu vidéo.
    Par exemple, pour le développement 2D, la librairie SDL est pas mal et très simple a prendre en main. De plus, tu pourras connaitre les différentes techniques du développement 2D, tel que les Sprites, le double buffering, ... .

    Enfin chaque chose en son temps. Commence par connaitre un langage, la POO, et enfin tu pourras t’attaquer au développement de jeu vidéo.

  11. #11
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Citation Envoyé par gwadaboug Voir le message
    Afin d'apprendre le C++, je pense qu'il est très important de connaitre le C. Donc je ne te conseillerai pas de t'orienter directement sur de la POO C++ si tes notions de C sont trop faible.
    Oui, c'est l'approche qui est recommandée... dans les années 90. Depuis, le C++ a évolué (et le C aussi, de son côté) et les méthodes d'apprentissage aussi (en particulier parce que l'on sait maintenant, avec l'expérience, qu'apprendre le C avec le C++ est source de nombreuses confusions et mauvaises habitudes)
    Donc non, on commence directement a apprendre le C++

    Citation Envoyé par gwadaboug Voir le message
    sans avoir toutes les complications que le C/C++ (principalement la gestion de la mémoire)
    idem, ça fait longtemps que C++ sait gérer la mémoire tout seul comme un grand (vector, string, shared_ptr, etc.) Sujet déjà abordé 1000 fois (rien que cette semaine)

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    gbdivers, autant pour moi !!

    Ce sont les méthodes que l'on m'a enseignées (peut être pas les meilleurs ...). Mais le C et C++ ont tout de même beaucoup de points communs, notamment sur la syntaxe de base. Maintenant ce sont bien 2 langages distinct, l'un étant procédural et l'autre orienté objet. Donc on ne travail pas de la même façon.

    Enfin lorsque je parlais de gestion de mémoire, je parlais d'allocation et de libération, d'utilisation de pointeur, etc... Tout ce qui peut amener a un "segmentation default" par exemple si l'on ne sait pas ce que l'on fait (plus dur à produire sur des langages telque JAVA ou AS3).

  13. #13
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Citation Envoyé par gwadaboug Voir le message
    gbdivers, autant pour moi !!

    Ce sont les méthodes que l'on m'a enseignées (peut être pas les meilleurs ...). Mais le C et C++ ont tout de même beaucoup de points communs, notamment sur la syntaxe de base. Maintenant ce sont bien 2 langages distinct, l'un étant procédural et l'autre orienté objet. Donc on ne travail pas de la même façon.
    Pas de mal
    Je te comprend, pas d'inquiétude. Comme beaucoup de "vieux" développeurs, j'ai vu l'évolution des langages modernes, mais j'ai appris avant cela sur des langages impératifs (pascal, assembleur). J'ai donc aussi appris comme toi.
    Mais c'est l'expérience (et la confrontation avec les problèmes des débutants) qui permet de prendre du recul et de réfléchir à ce qui ne va pas dans la façon dont j'ai appris. Sans renier la programmation impérative (que j'utilise encore dans certain langages), je dois reconnaître que le paradigme objet nécessite pas simplement d'apprendre une nouvelle syntaxe, mais également de penser et concevoir les choses différemment.
    C'est en cela qu'apprendre le C pour faire du C++ est dangereux, tu apprends la syntaxe et le paradigme du C et quand tu passes au C++, certes tu connais la syntaxe (mais c'est pas difficile, comme le dit koala01, en 20 heures, tu apprends la syntaxe d'un nouveau langage), mais tu penses pas dans le bon paradigme. Et changer un mode de pensée est quelque chose de très dur et long.
    En fait, ça me choquerait moins si tu disais d'apprendre le C pour apprendre à faire de l'assembleur. La syntaxe n'a rien a voir et pourtant le mode de pensée est plus proche

    D'ailleurs, le message de koala01 est très significatif : pour apprendre le C++, il ne conseille pas d'apprendre des syntaxes (apprendre à écrire une classe, une fonction, une boucle for, etc.) mais il parle de principes et de lois. Apprendre un langage ne consiste pas à apprendre une syntaxe (ie approche "pisseur de ligne de codes"). Apprendre un langage consiste à exprimer correctement dans un langage ses problématiques et ses solutions (ie approche "développeur").

    Citation Envoyé par gwadaboug Voir le message
    Enfin lorsque je parlais de gestion de mémoire, je parlais d'allocation et de libération, d'utilisation de pointeur, etc... Tout ce qui peut amener a un "segmentation default" par exemple si l'on ne sait pas ce que l'on fait (plus dur à produire sur des langages telque JAVA ou AS3).
    C'est ce que je disais dans mon message : le C++ sait très bien gérer la mémoire tout seul.
    Mais comme le C++ est un langage permissif, qui autorise donc à gérer la mémoire manuellement, et que l'apprentissage "historique" est orienté "comment apprendre un syntaxe" et non "comment résoudre simplement et efficacement une problématique", on continue à voir de char*, de pointeur nus, des tableaux style C, etc. Bref, de la gestion manuelle de la mémoire. Ce qui me dérange pas.
    Par contre, ce qui me dérange, c'est que les débutants pensent que c'est la seule méthode utilisable, ne connaissent pas vector, string, les pointeurs intelligents, etc. et pensent donc que le C++ est un langage complexe et difficile à maîtriser. Ce qui est vrai, mais parce que le C++ est riche et complet, pas parce qu'il ne propose pas d'outils évoluer pour gérer automatiquement la mémoire.

    Combien de personne (débutant ou non) ne comprennent toujours pas pourquoi le C++ n'a pas besoin de garbage collector ? Le GC n'est pas la seule approche possible pour faire un système de suivi des références

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Je suis tout à fait d'accord avec toi

Discussions similaires

  1. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  2. [Delphi] Association composants-projet
    Par Pierre Castelain dans le forum Composants VCL
    Réponses: 6
    Dernier message: 31/07/2002, 16h20
  3. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33
  4. Réponses: 6
    Dernier message: 21/06/2002, 14h48
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

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