01 // PROJECT AT A GLANCE
ARCADE
C++A platform where you switch game and graphics engine mid-play, without restarting.
An arcade cabinet able to launch several retro games and to switch from one display to another — graphical window, ASCII art in the terminal — at the press of a key, without leaving the program or losing the game in progress. The core of the subject is not the games but the architecture: every game and every display lives in a separate file that the main program does not know about and discovers at launch.
An application core dynamically loading graphics libraries and games through dlopen, behind abstract interfaces; five games and three display engines.
PRIMARYC++
DELIVERYTEAM RECORD
VERIFICATIONmake
SOURCEINSPECTOR READY
03 // KEY OUTCOMES
- Three display technologies and five games, all hot-swappable
- Adding a game requires no recompilation of the core
- Interfaces negotiated with another group, to run our games in their launcher and vice versa
BEYOND THE BRIEF
- Five games instead of the two required
- Three graphics libraries instead of the two required
- A conformance check of the loaded libraries before use (LoadHandling.cpp), which cleanly refuses an incomplete .so instead of crashing
- A score file shared between the games
04 // SOURCE TREE
READING SOURCE…