Bibliothèque Entity-Composant-System-System-Système de compilation multithread expérimentale et travail
Le développement réussi d'applications et de jeux complexes en temps réel nécessite un système de gestion des entités flexible et efficace. À mesure qu'un projet devient plus complexe, il est essentiel de trouver un moyen élégant de composer des objets afin d'éviter la répétition du code, d'améliorer la modularité et d'ouvrir de puissantes possibilités d'optimisation.
Le modèle architectural entité-composant-système a été conçu pour réaliser les avantages susmentionnés, en séparant les données de la logique.
Les entités peuvent être composées de petites composantes, réutilisables et génériques.
Les composants peuvent être stockés dans des zones de mémoire contigutes, améliorant ainsi la localité des données et la convivialité en cache.
La logique d'application peut être facilement parallélisée et abstraite des objets eux-mêmes et de leurs politiques de stockage.
L'état de l'application peut être sérialisé et partagé sur le réseau avec moins d'efforts.
Une base de code plus modulaire, générique et facilement testable.
"EXCE" a été développé comme mon projet de remise des diplômes BCS.
Construire des instructions
Exemple de code
Licence
Thèse d'accompagnement
Diapositives
Entités: définies par Adam Martin (voir thèse) comme des «blocs de construction conceptuels fondamentaux» d'un système, qui représentent des objets d'application concrètes. Ils n'ont pas de données ou de logique spécifiques à l'application.
Composants: petits, réutilisables, types qui composent des entités. Encore une fois, citant Adam Martin dans (voir thèse) , un type de composant «étiquette une entité comme possession d'un aspect particulier». Les composants stockent les données mais ne contiennent aucune logique.
Systèmes: Fournisseurs de la logique d'implémentation pour les entités possédant un ensemble spécifique de types de composants.
Parallélisme extérieur: terme utilisé dans l'extaterie qui définit le concept de gestion de plusieurs systèmes qui ne dépendent pas les uns des autres en parallèle. Ses détails de mise en œuvre seront analysés au chapitre 10 (voir thèse) . Conceptuellement, un graphique acyclique dirigé implicite est créé au moment de la compilation grâce à la connaissance des dépendances du système. L'exécution du DAG implicite est gérée par un type de planificateur système spécifié lors de la définition des paramètres.
Parallélisme intérieur: Autre que l'exécution de systèmes séparés en parallèle, ETCT prend en charge la division d'un seul système en plusieurs sous-tâches, qui peuvent être exécutées sur des threads séparés. De nombreux systèmes, tels que ceux qui représentent des comptations fonctionnellement purs, ne contiennent pas d'effets secondaires qui modifient leur propre état ou qui définissent les interactions entre les entités souscrites: ce sont des exemples principaux de calculs «embarrassants parallèles».
"Où puis-je trouver de la documentation pour l'API?"
"Pouvons-nous avoir des composants qui ne sont pas constructibles par défaut?"
"J'essaie de lire / écrire à / depuis mon composant, mais j'obtiens une erreur de compilation. Que se passe-t-il? "
"Est-il possible d'itérer les composants attachés aux entités, sans être à l'intérieur de la fonction de processus d'un système?"
"Comment contrôler si mon système s'exécute en parallèle ou en tant que thread unique? "
"Quelle est la différence entre la fabrication de mon système unique vs parallélisme intérieur invalide?"