Projets

R-Type — Game Engine ECS

Reproduction réseau du jeu R-Type en C++ à Epitech : conception du Game Engine (pattern ECS) et architecture du client graphique, en équipe de 5.

C++
ECS
Game Engine
Architecture
Réseau

R-Type est un projet Epitech en équipe de 5 : reproduire le jeu d’arcade R-Type en C++, en réseau, avec un game engine maison. J’ai pris en charge deux parties structurantes : la conception du Game Engine basé sur un pattern ECS, et l’architecture du client graphique.

Game Engine — Entity Component System

J’ai conçu un ECS from scratch en C++. Le choix d’un ECS est contre-intuitif (pas d’héritage, pas d’objets “entités” riches) mais il offre des avantages concrets : meilleure localité cache, systèmes découplés, et une flexibilité qui rend l’ajout de nouveaux comportements non-destructif.

L’enjeu principal était l’API : l’engine devait être utilisable par les autres membres de l’équipe sans qu’ils en comprennent les détails internes. Une mauvaise interface aurait bloqué tout le monde.

Pour valider l’engine indépendamment du projet R-Type, j’ai implémenté un Flappy Bird avec le même ECS, un test end-to-end qui confirme que l’architecture tient hors de son contexte d’origine.

Client graphique — Reprise

En fin de projet, face à un retard sur le développement du client graphique, j’ai repris l’architecture et conçu une grande partie des abstractions de rendu. J’ai restructuré le socle technique afin de permettre la livraison d’une version fonctionnelle dans les délais.

Ce que ce projet m’a appris

L’architecture est le vrai risque d’un projet système. Une structure de départ incorrecte ne se rattrape pas proprement — elle se paie en retard, en couplage et en bugs. L’ECS a tenu jusqu’au bout parce que j’ai investi du temps sur sa structure avant d’écrire la première ligne de logique métier.