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 :

Info sur les template


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 56
    Points
    56
    Par défaut Info sur les template
    Bonjour,

    Je programme actuellement un petit jeu en 3D de type jeu de rôle.
    On déplace donc un bonhomme qui peut lancer des sorts.

    Je cherche maintenant justement à faire la partie "Sorts" proprement.
    Vu que je veux faire une multitude de sorts différents durant le développement du jeu, je cherche à faire un système évolutif ou je peux facilement rajouter un nouveau sort à mon jeu.
    Pour cela, je pensais faire une classe pour chaque sort, et chaque sort hériterais d'une classe "baseSort" qui contiendrait les données récurrente à chaque sort (temps de lancement, temps de recharge, ...).

    Je voudrais aussi avoir une classe "managerSort" qui contiendrait la liste des sorts qui ont été lancé (dans un vecteur par exemple) pour pouvoir les mettre à jours (position, effet, ...).
    Donc le vecteur pointerais sur des classes différentes mais ayant une base commune.

    Donc ma question est :
    - Est-ce la meilleur idée pour faire une palette de sort différents ?
    - Si oui, je n'est jamais eu besoin de template auparavant donc je les connait très peu, avez-vous des liens, idées pour m'aider à réaliser ceci.

    J'ai lu quelques liens tel que : http://www.velocityreviews.com/forum...-question.html qui semble ressembler à mon problème, mais je n'arrive pas à voir comment l'appliquer dans mon cas.

    Merci d'avance pour votre aide si petite soit elle

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Morrigan Voir le message
    Bonjour,
    - Si oui, je n'est jamais eu besoin de template auparavant donc je les connait très peu, avez-vous des liens, idées pour m'aider à réaliser ceci.
    En fait je ne comprends pas trop la relation entre les templates (qui en fait permettent de faire de la généricité) et la solution que tu évoques qui, si j'ai bien compris ce que tu as écrit, se limite à de l'héritage simple. Pour quelle(s) raison(s) parles-tu de template ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Citation Envoyé par Matarc Voir le message
    En fait je ne comprends pas trop la relation entre les templates (qui en fait permettent de faire de la généricité) et la solution que tu évoques qui, si j'ai bien compris ce que tu as écrit, se limite à de l'héritage simple. Pour quelle(s) raison(s) parles-tu de template ?
    Salut, moi non plus je ne vois pas pourquoi tu parle de template, un héritage simple comme tu nous as décrit avec BaseSort semble correspondre tout à fait à ce que tu souhaites.

    Dis-nous en d'avantage pour plus d'infos.

    NeoKript

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par Morrigan Voir le message
    Je cherche maintenant justement à faire la partie "Sorts" proprement.
    Vu que je veux faire une multitude de sorts différents durant le développement du jeu, je cherche à faire un système évolutif ou je peux facilement rajouter un nouveau sort à mon jeu.
    Pour cela, je pensais faire une classe pour chaque sort, et chaque sort hériterais d'une classe "baseSort" qui contiendrait les données récurrente à chaque sort (temps de lancement, temps de recharge, ...).
    Je pense que c'est rarement une bonne idée. Finalement, pour ajouter des sorts, tu vas dans ce principe devoir ajouter du code, alors qu'il serait préférable de pouvoir le faire simplement avec un fichier de configuration par exemple. Tes sorts ont plus de chose en commun que ce que tu crois, et plutôt que de créer une classe dérivée pour chaque type de sort, il serait probablement plus intéressant de créer des classes dérivées pour des sous parties de cette classe, de manière à pouvoir jouer à créer des sorts comme des legos.

    Par exemple, un sort à une zone d'effet, un ou plusieurs types d'effet, une catégorie de durée... et il semble plus intéressant d'avoir des classes dérivée d'une classe TypeEffet, d'une classe ZoneEffet, d'une classe... que d'une classe Sort.

    Tu pourras alors aisément créer un sort en forme de boule, faisant des dégâts, associé au froid, provoquant un ralentissement... en combinant ces composantes élémentaires.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    <game designer hat:on>
    Le mieux pour ce genre de truc est plutot d'voir une batterie de petite fonction ayant des effets tres cibles et de scripter le sort ave cun truc genre Falcon ou LUA comem ca les gens du creatif n'ont pas a coder pour de vrai.
    <game designer hat:off>

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Sans parler du fait qu'avec ce qui est proposé par Loïc et Joel, tu pourras rajouter des sorts, les modifier etc sans avoir à recompiler ton jeu. Les templates peuvent à la rigueur simplifier l'architecture, mais ce ne sont pas eux qui vont vraiment apporter une solution à ta conception.

  7. #7
    screetch
    Invité(e)
    Par défaut
    composition > héritage

    utilise des composants comme Loic le propose;

    un sort est une composition:
    * d'un effet graphique
    * d'un mouvement (peut-être) comme une boule de feu, etc
    * d'une liste d'effets gameplay
    (ralentissement, aveuglement, dégât (dégât de type froid, etc)
    les effets gameplay peuvent aussi avoir une zone, etc.

    pour le même sort, un niveau supplémentaire peut rajouter un effet de ralentissement très simplement.

Discussions similaires

  1. Petite info sur les NumAuto
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 28/12/2005, 16h08
  2. [Formation][IUT] Infos sur les iut info, gtr
    Par sand0z dans le forum Etudes
    Réponses: 9
    Dernier message: 14/06/2005, 09h54
  3. Réponses: 3
    Dernier message: 28/10/2004, 08h39

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