Théodore Billotte
← All projects

2024 · Academic software architecture projectCompleted

Arcade

A retro-gaming platform with hot-swappable graphics libraries.

Developer (Epitech academic project, 2nd year)

Arcade

Arcade is a C++ retro-gaming platform where both the graphics libraries and the games are hot-swappable shared libraries (.so), loaded dynamically at runtime. An Epitech 2nd-year software-architecture project.

Home menu The platform menu for choosing a graphics backend and a game.

The idea

A graphics-agnostic core talks only to a set of object-oriented interfaces, so:

  • Graphics backends are interchangeable. It ships with SFML, SDL2 and ncurses, switchable live at the press of a key.
  • Games are plugins too, loaded the same way.

Snake Snake running through the abstract display interface.

Pac-Man Pac-Man using the same core to drive a different game.

The interfaces were standardised with other teams so libraries could be shared across projects. It was a real exercise in abstraction, dynamic loading and clean design.

My role

Developer (Epitech academic project, 2nd year). Core architecture, interfaces and dynamic library loading.

Tech

C++ · SFML · SDL2 · ncurses · dlopen

Team

Connections

Projects

Education