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

Développement 2D, 3D et Jeux Discussion :

Modèle "Entités / Composant / Système" recherche de tutoriel complet


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut Modèle "Entités / Composant / Système" recherche de tutoriel complet
    Salut à tous et à toutes !
    Après quelques recherchent j'ai pu retenir quelques notions de base sur le sujet du modèle entités / composant / système (ECS).
    Je sais par exemple qu'une entité peut se résumer par un simple id qui renvoie à un élément qui contient des composants. Ensuite arrivent les systèmes qui permettent la manipulation de ces composant (corrigez moi si je me trompe ) !
    Seulement voilà, mon problème arrive dans le manque d'explication clair sur le sujet, en effet il ne semble pas y avoir de standard pour ce modèle de ce fait chacun fait un peu à sa façon et je ne sais plus ou donner de la tête, je suis comme qui dirait dans le flou.
    Est-ce que vous connaissez des tutos / documentation / exemples de codes qui pourrai me faire avancer dans la compréhension de ce paradigme ? Je vous remercie d'avance !
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  2. #2
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Il n'y a aucune norme à ce sujet. Car la vraie question est "pour quoi faire ?".
    Tutoriels et FAQ TypeScript

  3. #3
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut
    Salut yahiko !
    Il est vrai que je n'ai exposer mon problème à proprement parler.
    L'apprentissage de cette solution me parait approprié à mon problème qui est le suivant, même si n'est pas vraiment un problème à proprement parler.
    Je cherche à créer des éléments qui pourrait se déplacer (personnage, ennemis, PNJ) mais aussi des éléments récoltable (rocher, gisements, arbres, ...). Ce modèle semble tout indiqué dans ce cas (je penses). Mais la grande question est comment mettre le dispositif en place pour qu'il soit facilement maintenable et utilisable.
    J'espère t'avoir éclairé un peu plus sur la question !
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  4. #4
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Reste simple. Des classes et des tableaux.
    Tutoriels et FAQ TypeScript

  5. #5
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut
    très bien donc je peux faire quelque chose qui ressemblerai à ça :

    classes :
    - Entity : l'entité en elle même, contient l'identifiant et une liste de Component
    - EntityManager : Permet de créer les Entity en leur attribuant un identifiant libre
    - Component : classe de base des components
    - System : classe de base des systems

    Quelque chose reste flou dans ma tête, si je stocke les composants dans la liste, comment savoir quelle component doit être traité par telle System. Ce sont des choses que je peine à m'imaginer dans ma petite tête ...

    Edit :

    Je viens d'avoir une idée mais je ne sais si elle est valable !
    Dans cette idée la classe entité est une classe abstraite qui pose les bases et ne contient aucun component, ce serai peut être même une interface (je programme en java actuellement). Ainsi je pourrais faire d'autres classes qui hériterai / implémenterai la classe / interface entité mais qui ajouterai des objets qui descendrai de component, ce serai donc des composant, ainsi j'aurai quelque chose comme ça :

    classe / interface : Entity
    protexted id
    +constructeur
    +getID
    + ...

    classe : PlayerEntity
    -PositionComponent pos
    -VelocityComponent vel
    - ...
    +getPos
    +getVel
    +...

    Je ne sais pas si c'est la meilleur façon de faire mais c'est ce qui vient de germer dans ma tête !
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  6. #6
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Lorsque tu crées un composant Drawable par exemple tu l'ajoutes au système qui gère le rendering et tu le supprimes du systèmes lorsque le composant est détruit.
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  7. #7
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut
    Je ne comprend pas trop ce que tu veux dire ... Tu veux que je crée un seul composant Drawable pour toutes les entités qui le possède dans le système drawable et dés qu'il n'y à plus d'entité qui possède ce composant je le supprime ?
    J'ai surement mal compris parce que ça ne me parait pas logique du tout ...
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  8. #8
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par yahiko Voir le message
    Reste simple. Des classes et des tableaux.
    Je rejoins yahiko , fait simple.
    Ensuite je me méfie un peu des théories personnel sur l'architecture de tel jeux a faire , ton architecture tu l'as deja testé ? tu as deja fait quelque chose de similaire ? Parce que pas mal d'idée sont cool sur le papier dans la pratique , faut mieux privilégié l'expérience.
    Pour faire du codes modulaire comme tout programme si tes méthodes/fonctions sont suffisamment indépendantes cela sera suffisant pour que cela soit modulaire.

    Et n'oublie que un bon programmeur est un programmeur qui arrivait a simplifiait un probleme qui est a la base compliqué
    Parce que quand je lis ça :
    Je cherche à créer des éléments qui pourrait se déplacer (personnage, ennemis, PNJ) mais aussi des éléments récoltable (rocher, gisements, arbres, ...)
    Cela me fait pensé a un Terraria ou un Minecraft , grosso modo c'est juste des tileset dynamique , le même principe a peu près en 3D , inutile donc de sortir artillerie lourde.

  9. #9
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut
    Salut kannagi !
    En fait je donnais ces exemple pour illustré mais je ne suis sur aucun projet actuellement, c'est la théorie et le modèle qui m'intéresse .. je sais ça peut paraître bizarre mais c'est comme ça ^^ !
    Je ne prétend pas être un bon développeur, je veux juste défendre mon morceau de steak et je m'en fiche que les autres penses que je sois bon ou pas, ce n'est pas mon but.
    En effet je pourrai faire ça très simplement sans me prendre la tête, mais pas de chance j'ai envie de me prendre la tête ...
    J'espérai que quelqu'un pourrai me conforté dans mes théorie farfelues ...
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  10. #10
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Aristote aussi était un grand théoricien, très doué pour inventer des concepts qui pour la plupart se sont révélés totalement faux.
    Tu apprendras plus en mettant tes idées en pratique et en concevant des idées pour la pratique, qu'en cherchant un joli modèle théorique, mais impraticable concrètement.
    Tutoriels et FAQ TypeScript

  11. #11
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut
    Je vais donc te faire confiance ! Je vais me retrancher sur des choses plus simple et je reviendrais sur la question quand je me sentirais de la mettre en pratique ! En attendant je vous remercie quand même pour les tuyau au niveau de la simplicité ! bonne continuation à vous !
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  12. #12
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Si tu ne comprends pas ce que je disais je pense surtout que tu ne comprends absolument pas l'intéret de ce que tu cherches à faire.
    Essais dans un premier temps de bosser comme tu le sens, tu te rendras vite compte des failles et c'est ainsi que tu progresseras.
    Si tu cherches un exemple d'utilisation d'ECS dans le jeu vidéo tu as Unity ( à leur sauce, comme à peu près toutes les implémentations que j'ai pu croiser... ).
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  13. #13
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut
    ok merci je met en résolu !
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  14. #14
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Citation Envoyé par smarlytomtom Voir le message
    (...) c'est la théorie et le modèle qui m'intéresse .. je sais ça peut paraître bizarre mais c'est comme ça ^^ ! (...)
    Dans ce cas tu peux faire de beaux diagrammes UML (par exemple) au lieu d'écrire la moindre ligne de code. Bien sûr cela ne sert à rien et te ferait sans doute proposer une "solution" archi à côté de la plaque, mais puisque tu dis par ailleurs te moquer de savoir si tu fais/feras un bon développeur ou non, alors pourquoi pas... et puis on a tous des trucs qu'on fait "juste pour tester" ou pour "voir plus clair" sans savoir si cela ne sera pas une perte de temps, moi le premier...


    (Petite parenthèse dont j'ignore si elle s'applique à smarlytomtom, mais sa question me fait penser au phénomère suivant :

    Parfois je me demande si les écoles d'informatique font encore leur boulot. On voit de plus en plus d'étudiants qui adorent "analyser", "concevoir" et qui parlent tout le temps d'une théorie à laquelle ils ne comprennent par ailleurs rien du tout... mais écrire du code, ça, c'est trop fort pour eux, et puis de toute façon ça ne les intéresse pas... laissons donc cette tâche aux êtres inférieurs qui aiment "pisser du code".

    Fin de la parenthèse )

  15. #15
    Membre averti
    Avatar de smarlytomtom
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 139
    Points : 373
    Points
    373
    Billets dans le blog
    1
    Par défaut
    Je n'ai pas dit que je ne voulais pas être un bon développeur mais je ne prétend pas en être un ! À côté de ça j'adore coder, c'est une passion qui m'entraine depuis plusieurs années et qui ma poussé à faire des études dans ce domaine ! Si je veux pousser dans le côté théorique c'est pour élever ma vision des choses et construire encore plus ma capacité de raisonnement. Après je comprends que tout le monde ne puisse pas comprendre ça !
    Du côté scolaire il y a un gros problème ! Les autres étudiants qui forme parfois un frein à l'avancé des autres ...
    Thomas Gredin.
    Développeur Unity 3D/VR

    Mon site personnel : http://thomasgredin.com/fr
    Mon portfolio : http://thomasgredin.com/fr/portfolio

  16. #16
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    Pour ce qui est de l'architecture, bien souvent, la pratique prime sur la théorie, il n'y a pas vraiment de modèle parfait convenant à un certain type d'application.
    De grandes lignes sont réutilisables, mais il y a toujours des ajustements, plus ou moins importants à faire; je te conseillerais donc d'éprouver une archi plutôt que l'imaginer.

    Pour répondre à ta question, j'utilise à système proche pour mon jeu, les Entity sont composé de Modules, et un module peut effectuer une et une seule action, cette action ayant une matérialisation(différence suivant que l'on soit sur client 'graphique, audio" ou server "physique").
    L'entity sert de façade afin de fournir au système extérieur toutes les infos dont il a besoin, et ces info l'entity les pioche dans les modules.

    Certains module partagent des données via des objets partagés(aliasing de références).

    Je n'utilise donc pas de système mais des composants de systèmes, qui sont dans les matérialisations.
    Cette archi fonctionne bien pour un système modulaire(les vaisseaux sont customizables dans mon cas), par contre je n'ai pas d'info supplémentaire sur ce pattern, dans mon jeu je l'ai désigné pour répondre au besoin, pas en suivant un modèle existant.
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche un tutoriel complet pour debuter
    Par Invité dans le forum Game Maker
    Réponses: 0
    Dernier message: 03/05/2014, 15h17
  2. Recherche d'entités par l'id de leurs entités "composants"
    Par ozymandias74 dans le forum Hibernate
    Réponses: 1
    Dernier message: 10/04/2014, 09h42
  3. [MySQL] Problème de simple quote dans le champ de recherche
    Par mesken dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 29/03/2012, 10h05
  4. [Système][fichier] recherche de fichier dans tout le disque dur
    Par helonear dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 15/12/2010, 10h43

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