Et que penses-tu de mes remarques alors ? Notamment que ces événements ne font pas vraiment partie de l'état du système
Je ne suis pas sûr d'avoir un avis bien tranché là dessus. À vrai dire c'est surtout les listeners que je rejette pour conserver la cohérence (ex : le changement des niveau est toujours traité au même endroit du code, et au même moment dans chaque frame).
Par contre, utiliser un «système de messages» basé sur des entités a plusieurs intérêts :
* les messages font partie du design E/S
* la synchro de ses entités messages suffit pour implémenter un mode réseau basique :)
d'ailleurs, je suis surpris de voir un composant Button
Oui, de ce que j'ai pu voir du code de libes nos composants sont très différents.
Dans mon cas un composant fournit une fonctionnalité complète, par exemple : Button, Rendering, Transformation, Sound, Grid, etc
Ensuite chaque composant déclare ses propriétés, ce qui permet :
* de les afficher pour du debug (en utilisant AntTweakBar)
* de les charger depuis un format de fichier texte
* de sérialiser/désérialiser les entités persistantes pour sauvegarder l'état du jeu et le restaurer plus tard
* de sérialiser/désérialiser les entités (celles avec un composant Network) pour implémenter un mode réseau
[^] # Re: Systèmes à entités et événements
Posté par pepp . En réponse à la dépêche Je crée mon jeu vidéo E07 : cartes, données et systèmes à entités. Évalué à 1.
Je ne suis pas sûr d'avoir un avis bien tranché là dessus. À vrai dire c'est surtout les listeners que je rejette pour conserver la cohérence (ex : le changement des niveau est toujours traité au même endroit du code, et au même moment dans chaque frame).
Par contre, utiliser un «système de messages» basé sur des entités a plusieurs intérêts :
* les messages font partie du design E/S
* la synchro de ses entités messages suffit pour implémenter un mode réseau basique :)
Oui, de ce que j'ai pu voir du code de libes nos composants sont très différents.
Dans mon cas un composant fournit une fonctionnalité complète, par exemple : Button, Rendering, Transformation, Sound, Grid, etc
Ensuite chaque composant déclare ses propriétés, ce qui permet :
* de les afficher pour du debug (en utilisant AntTweakBar)
* de les charger depuis un format de fichier texte
* de sérialiser/désérialiser les entités persistantes pour sauvegarder l'état du jeu et le restaurer plus tard
* de sérialiser/désérialiser les entités (celles avec un composant Network) pour implémenter un mode réseau