• [^] # Re: Systèmes-Entités-Composants

    Posté par (site web personnel) . En réponse à la dépêche Je crée mon jeu vidéo E15 : J'arrête.... Évalué à 5.

    on ne sait pas très bien où récupérer les entrées, et comment les dispatcher vers la bonne entité

    Il faut séparer les deux avec un pattern command: le joueur n'appuie pas sur des touches pour se déplacer, il donne des ordres de déplacement à une entité de la simulation.

    Par contre je déconseille vivement, sauf pour des jeux très simples, de permettre à une entité de gérer elle même quoique ce soit (et donc le "dispatch vers"), SURTOUT pas la mise à jour d'autres entités: imagine deux tanks qui se tirent dessus dans un RTS. C'est au moteur du jeu d'appliquer les règles de dommages dans le bon ordre, car si tu mets le code aux niveaux des tanks, tu vas te retrouver avec une entité morte qui continue à tirer :-)

    Autre exemple, l'affichage. Au début, c'est simple, tu as un système Render qui affiche toutes les entités qui doivent être affichées. Sauf que pour certains trucs, c'est un peu plus complexe

    Il te faut un scenegraph: tes entités auront des composants faisant référence à des noeuds du scenegraph.

    Un système de gestion d'événements est indispensable mais son interaction avec le système à entités n'est jamais explicité et c'est un grand oubli.

    Il suffit de plugger n'importe quel système d'évènements avec un composant Publisher et un composant Subscriber.

    Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board