Template ECS
Moteur Entity Component System en C++20 avec architecture modulaire
C++ · ECS · Game Engine · SFML · Architecture
Moteur Entity Component System universel en C++20. Architecture modulaire, réutilisable pour tous types de jeux 2D.
Contexte
Moteur ECS né du Jeu Libre de 2e année (mars à mai 2025), puis extrait et publié comme template réutilisable.
Objectif : créer un moteur réutilisable comme base pour d'autres projets, avec une architecture propre et extensible.
Ce que ça fait
Types de jeux supportés :
- Temps réel : FPS, platformers, action
- Tour par tour : stratégie, tactical RPG
- Grille : roguelikes, puzzles
- Hybride : combinaison des modes
Architecture :
- Entités comme IDs purs
- Components comme données
- Systems pour le comportement
- Découplage total logique/données
Demo : Pirate Space Explorer - jeu complet (30+ Components, 35 Systems) utilisant le moteur, livré dans le repo en exemple.
Liens
Architecture ECS
Architecture pure Entity-Component-System :
Entity (ID)
│
├── Component A (Data)
├── Component B (Data)
└── Component C (Data)
│
└── Systems (Behavior)
├── Active (continuous)
├── Reactive (event-driven)
└── TurnBased (discrete)
Stack Détaillé
| Tech | Version | Rôle |
|---|---|---|
| C++ | 20 | Langage core |
| SFML | 2.5+ | Rendu 2D |
| CMake | 3.20+ | Build system |
| Patterns | ECS, Factory, Observer | Architecture |
Statistiques
- 36 Components modulaires
- 35 Systems découplés
- 8+ Modules : core, transform, graphics, gameplay, inventory, interaction, AI, audio, network
Optimisations Collisions
Spatial hashing O(n) vs O(n²) :
| Entités | Brute Force | Spatial Hash | Speedup |
|---|---|---|---|
| 125 | 125,000 checks | 1,000 checks | 25x |
| 1000 | 500,000 checks | 2,000 checks | 250x |
Memory Safety
- Smart pointers + RAII
- Memory pooling pour allocations fréquentes
- Thread-safe avec mutexes et atomics