Projects

R-Type — ECS Game Engine

Network reproduction of the R-Type arcade game in C++ at Epitech: custom Game Engine (ECS pattern) and graphical client architecture, team of 5.

C++
ECS
Game Engine
Architecture
Network

R-Type is an Epitech team project (5 people): reproduce the R-Type arcade game in C++, with networking, using a custom game engine. I handled two structural parts: designing the Game Engine based on an ECS pattern, and architecting the graphical client.

Game Engine — Entity Component System

I designed an ECS from scratch in C++. The ECS choice is counter-intuitive (no inheritance, no rich “entity” objects) but it delivers concrete advantages: better cache locality, decoupled systems, and a flexibility that makes adding new behaviors non-destructive.

The main challenge was the API: the engine had to be usable by other team members without them understanding its internals. A poor interface would have blocked everyone.

To validate the engine independently of the R-Type project, I implemented Flappy Bird with the same ECS — an end-to-end test confirming the architecture holds outside its original context.

Graphical Client — Takeover

Toward the end of the project, facing delays in the graphical client development, I took over the architecture and designed a significant part of the rendering abstractions. I restructured the technical foundation to enable the delivery of a functional version within the deadline.

What This Project Taught Me

Architecture is the real risk in a systems project. An incorrect initial structure can’t be fixed cleanly — it’s paid for in delays, coupling, and bugs. The ECS held up to the end because I invested time in its structure before writing the first line of business logic.