Architecture Arcade
Architecture Commune Arcade
Architecture Commune Arcade

Bienvenu sur cette Architecture Commune de l'Arcade. Projet de 2ème année au sein de Epitech.

Source Tree:

include/
├── Api.hpp
└── Arcade
├── ArcadeStruct.hpp
├── Core
│   ├── ICore.hpp
│   ├── IDisplayModule.hpp
│   └── IGameModule.hpp
├── ECS
│   ├── IComponent.hpp
│   ├── IEntity.hpp
│   ├── IEntityManager.hpp
│   ├── IEventManager.hpp
│   ├── ISystem.hpp
│   └── ISystemManager.hpp
├── Game
│   └── IScene.hpp
└── Graph
├── GraphStruct.hpp
├── IMusic.hpp
├── ISprite.hpp
└── IText.hpp
6 directories, 16 files
Definition: ArcadeStruct.hpp:10

uml: https://github.com/ARCADE-TEK-2026/archi_arcade/blob/gh-pages/uml.svg full documentation: https://github.com/ARCADE-TEK-2026/archi_arcade/blob/main/documentation/uml.dox

Comme vous pouvez le voir, nous avons decider d'integrer un ECS directement dans l'architecture commune.

Le projet se compose en 3 parties:

  • Le Core (le binaire arcade)
  • Les jeux (sous forme de .so)
  • Les lib graphic (sous forme de .so)

LE CORE

À implementer:

/*
La classe principal pour le binaire arcade.
Elle doit avoir au moins le main menu, le IGameModule du jeux
actuel (si chargé), le IDisplayModule de la librairie actuel,
et un IEventManager qui sera passé en parametre
à la partie graphique et à la partie jeux.
À chaque frame, il faut appeler la méthode `update`.
La méthode `update` doit:
- regarder si des évènements survenus dans le IEventManager:
- demande à changer de lib graphique
- demande à changer de lib de jeux
- demande à quiter le jeux
- demande à quiter le programme
- si un jeux est chargé
- appeler le `update` du IGameModule
- sinon
- appeler le `update` du main menu
- appeler le `update` du IDisplayModule
*/
/*
Le gestionneur des évènements survenu dans toute
l'éxecution du programme.
*/
class Arcade::ECS::IEventmanager;
The ICore class.
Definition: ICore.hpp:24

LES JEUX

Utilisation de sprite communs, soit présents dans l'archi commune dans assets/, soit à ajouter en pr.

À implementer dans chaque jeux: ```cpp /* L'unité la plus petite de l'ECS, elle possède des composant. C'est la relation composant-system(expliqué plus tard) qui permet à un ECS de réaliser des actions.