c'est interessant comme principe
il faudrait faire un proto c++, pour lancer tout le monde ;)
ou alors on part sur javascript.
On Jun 14, 10:47 pm, Laurent Vaucher <
laurentvauc...@gmail.com> wrote:
> Un des trucs qui a pas mal le vent en poupe ces derniers temps dans le
> développement de jeux, c'est ce qui s'appelle l'architecture
> Entity-Component-System.
> On trouve pas mal de truc sur Google là-dessus<
http://www.google.fr/search?q=game+entity+component+subsystem>.
> Ça prend un peu de recul par rapport à l'orienté-objet à proprement parler,
> pour éviter les casse-têtes liés à l'héritage.
>
> Le principe de base, c'est que tous les objets du jeu sont de *bêtes* conteneurs
> de composants, eux-mêmes *bêtes* conteneurs de données. Par exemple le
> composant qui s'appelle généralement *Transform* contient la position de
> l'objet dans l'espace, le composant *Input* indique que l'entité reçoit les
> entrées utilisateur, le composant *Camera* indique que l'objet définit la
> vue, le composant *RigidBody* indique que l'objet est soumis à la
> simulation physique...
> Du coup, un objet peut contenir n'importe quelle collection de composants,
> et cette collection peut évoluer dans le temps : un objet qui était mobile
> peut devenir immobile, un objet silencieux peut se mettre à faire du bruit,
> etc. Cette composition dynamique a l'avantage de s'affranchir de la
> rigidité de l'héritage.
> Le troisième élément, les systèmes, sont ceux qui contiennent réellement le
> code et la logique propre à certains composants.
>
> Un avantage supplémentaire de cette architecture, c'est que les dépendances
> sont réduites. Un composant ne dépend de rien et un système ne dépend que
> des composants qui l'intéressent. Par exemple le système physique n'a rien
> à faire de l'aspect sonore d'un objet. Le système d'IA se fiche des
> animations graphiques d'un personnage. Le résultat c'est qu'on peut plus
> facilement se partager le codage, que c'est plus facile à tester, que c'est
> plus modulaire.
>
> Du coup, histoire d'illustrer un peu mon propos, j'ai fait un petit proto
> JavaScript sur la page des protos <
http://slowfrog.github.com/chickenpix/>.