← Tous les projets d'école

terminé2025

Template ECS

Moteur Entity Component System en C++20 avec architecture modulaire

C++ · ECS · Game Engine · SFML · Architecture

GitHub ↗

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é

TechVersionRôle
C++20Langage core
SFML2.5+Rendu 2D
CMake3.20+Build system
PatternsECS, Factory, ObserverArchitecture

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ésBrute ForceSpatial HashSpeedup
125125,000 checks1,000 checks25x
1000500,000 checks2,000 checks250x

Memory Safety

  • Smart pointers + RAII
  • Memory pooling pour allocations fréquentes
  • Thread-safe avec mutexes et atomics