Système de composants d'entité
Qu’est-ce qu’Entité-Composant-Système ?
Entity-Component-System (ECS) est un modèle architectural. Ce modèle est largement utilisé dans le développement d’applications de jeux. ECS suit la composition selon le principe d'héritage, ce qui offre une meilleure flexibilité et vous aide à identifier les entités où tous les objets de la scène d'un jeu sont considérés comme une entité.
La programmation ECS est une méthode d'écriture de code qui offre des performances élevées par défaut.
Ce système se compose de trois termes.
- Entité
- Composant
- Système
Apprenons ce concept en détail :
Dans ce didacticiel Système entité-composant, vous apprendrez :
- Qu’est-ce qu’Entité-Composant-Système ?
- Qu'est-ce qu'une entité ?
- Qu'est-ce qu'un composant ?
- Quel est le système ?
- Composition
- Avantage de l'ECS
- Inconvénients de l’utilisation d’ECS
- Exemple de système de composants d'entité
- Flux de données dans ECS :
Qu'est-ce qu'une entité ?
Une entité est un objet distinct représentant un acteur dans un espace simulé. Il n’a pas de données ou de comportement réels. Ce composant donne à une entité ses données. Il s'agit généralement d'un support ou d'un dictionnaire.
Par exemple, si nous simulons l'univers d'un jeu Minecraft, toutes les « choses » visibles et tangibles dans l'univers du jeu sont comptées en entités.
Qu'est-ce qu'un composant ?
Un composant est un comportement singulier attribué à une entité. Le nom d'un élément doit idéalement communiquer le comportement que l'entité présentera. Cependant, le composant lui-même n'a aucun comportement. Ce sont des modules réutilisables attachés aux entités. Le composant fournit l'apparence, le comportement et la fonctionnalité.
Toute la logique est implémentée à l'aide de composants qui vous aident à définir différents types d'objets en mélangeant et en configurant les composants.
Quel est le système ?
Un système itérera de nombreux composants pour effectuer des tâches de bas niveau.
fonctions telles que le rendu graphique, l'exécution de la physique
calculs ou recherche de chemin. Il offre une portée, une gestion et des services globaux pour les classes de composants.
Cependant, les systèmes ne sont pas facultatifs, mais nous pouvons les utiliser pour séparer la logique et les données. Il vous aide également à gérer les composants logiques, à agir comme des conteneurs de données.
Exemples
- Gravité (Velocity) – Il vous aide à accélérer la vitesse due à la gravité
- Cela ajoute de la vitesse à la position
- Définit l'entrée d'une entité contrôlée par un robot en fonction d'un agent IA
- Rendu (Position, Sprite) – Dessine des sprites
- Player Control (Input Player) vous aide à définir l'entrée de l'entité contrôlée par le joueur en fonction d'un contrôleur.
Composition
Une composition est un élément auquel vous pouvez attacher plusieurs composants pour ajouter une apparence, un comportement ou une fonctionnalité supplémentaire. Vous pouvez également mettre à jour les valeurs des composants pour configurer l'entité.
Avantage de l'ECS
Voici les avantages de l’utilisation d’ECS en programmation :
- Vous pouvez créer du code plus court et moins compliqué.
- Comportement émergent très flexible.
- Il fournit une architecture pour le développement 3D et VR.
- Permet la création de scripts par comportement par des non-techniciens.
- Cela vous aide à diviser vos classes monolithiques.
- Rebut facile et compossibilité.
- Une option simple pour les tests unitaires et les moqueries.
- Il vous permet de créer une application VR en termes de complexité.
- Remplacez les composants par des composants simulés au moment de l'exécution.
- Il vous aide à étendre de nouvelles fonctionnalités.
- ECS est une méthode conviviale pour le traitement parallèle et le multithreading,
- Vous aide à séparer les données des fonctions qui agissent sur elles
- Offre une meilleure flexibilité lors de la définition des objets en les mélangeant avec des pièces réutilisables.
- Il offre une conception épurée utilisant les méthodes de découplage, d’encapsulation, de modularisation et de réutilisabilité.
Inconvénients de l’utilisation d’ECS
Voici quelques inconvénients de l’utilisation d’ECS
- Pas aussi concrètement défini que d'autres modèles tels que MVC.
- Difficile à appliquer correctement, facile à utiliser à mauvais escient. Les bons composants nécessitent plus de réflexion sur la conception.
- ECS nécessite d'écrire de nombreux petits systèmes qui allègent sur un nombre potentiellement énorme d'entités, ce qui présente le risque d'écrire du code très inefficace.
- La plupart des gens n’ont jamais entendu parler de ce modèle.
Exemple de système de composants d'entité
Regardons l'exemple d'un lapin :
Voir l'encadré en pointillés autour de ces composants. C’est l’entité lapin – rien d’autre qu’un conteneur de composants. Vous pouvez également définir des entités comme une agrégation de n'importe quel sous-ensemble de composants.
Vous pouvez voir l'image ci-dessus. C’est l’une des entités lapins – rien de plus qu’un conteneur de composants. Vous pouvez définir des entités comme une agrégation de n'importe quel sous-ensemble de composants, comme Carrot :
Flux de données dans ECS :
Le comportement des systèmes est le modèle ECS qui passe d'un état à un autre.
Comprenons à l'aide de cet exemple :
Comportements : « Un lapin assis sur un arbre tombe à cause de la gravité. »
Comment implémenter le comportement ci-dessus ?
Vous pouvez le faire avec une valeur z supérieure à 0 qui diminue avec le temps jusqu'à 0.
Comportement : « Les êtres vivants vieillissent. »
Voyons comment vous pouvez implémenter ce comportement ?
Vous pouvez faire en sorte que les composants vivants aient une valeur d'âge, qui augmente avec le temps.
Résumé :
- Entity-Component-System (ECS) est un modèle architectural.
- Une entité est un objet distinct représentant un acteur dans un espace simulé.
- Un composant est un comportement singulier attribué à une entité.
- Un système itérera de nombreux composants pour exécuter des fonctions de bas niveau telles que le rendu graphique, l'exécution de calculs physiques ou la recherche de chemin.
- Une composition est un élément auquel vous pouvez attacher plusieurs composants pour ajouter une apparence, un comportement ou une fonctionnalité supplémentaire.
- En utilisant le modèle ECS, vous pouvez créer un code plus court et moins compliqué.
- Il n'est pas aussi concrètement défini que d'autres modèles tels que MVC.
- Le comportement des systèmes est le modèle ECS qui passe d'un état à un autre.