Skip to content

GameManager

storm1er edited this page Sep 27, 2017 · 2 revisions

Accueil > Spécifications techniques > GameManager


4.2. GameManager

Le Game Manager permet de gérer tout les éléments du jeu, c'est le moteur de jeu.

4.2.1. Le principe

"Un bon gros manager pour gérer tout le bordel et dire à tout les éléments comment ça marche ... si si."
Constat simple : On va avoir plein d'élément qui vont 1) se répliquer et 2) inter-communiquer.
Solution simple : Un outil de gestion de dépendance et de communication.

4.2.2. La gestion des dépendances

  • Peu importe quel élément dépend de quel élément, pour le GameManager, tout les éléments seront des GameElement (original non ?).
  • Tout les GameElement peuvent avoir des ressources communes partagé, auxquels tout les autres éléments pourront avoir accès.
    • Donc les GameElement peuvent demander au GameManager de charger des GameElement qui ne le serait pas encore, ou retourner l'instance d'un gameElement déjà chargé.
  • Un GameElement est unique, il doit gérer ses réplicats comme un grand.
  • Un GameElement doit obligatoirement expands GameElement

Donc sauf modification critique, tout les éléments de jeux sont contenu dans /src/js/*/*.js et sauf exception ne doit pas nécessité de modification à GameManager

4.2.3. Les events

GameManager est un extands de Emitter, il gère aussi les événements des GameElements. Les events système (du GameManager) sont les suivants :

  • Core::loadGameElement : Emit lorsqu'un élément est chargé (concerne tout les éléments)
  • Core::loadGameElement[MonSuperSysteme::MonSuperGameElement] : Emit lorsque le GameElement MonSuperSysteme::MonSuperGameElement est chargé
  • Core::getGameElement : Emit lorsqu'un élément est récupéré (il a déjà été chargé)
  • Core::getGameElement[MonSuperSysteme::MonSuperGameElement] : Emit lorsque le GameElement MonSuperSysteme::MonSuperGameElement est récupéré (il a déjà été chargé)
  • Core::update : Emit dans le callback de requestAnimationFrame(), c'est ici que l'actualisation des gameElement doit se faire
  • Core::destroy : Emit lors d'une erreur fatale du système (n'est pas censé arriver ...)

#13

Accès rapide :

  1. Règles et Story line
    1.1. Map
    1.2. Appareils
    1.3. Données
    1.4. Vous
    1.5. Les quêtes
  2. Utilis. & Config. client
    2.1. Compte
    2.2. Interface
    2.3. Appareil
    2.4. Quêtes
  3. Utilis. & Config. serveur
  4. Spécifications techniques
    4.1. Env. de développement
    4.2. GameManager
    4.3. GameElement
  5. WorkFlow
    5.1. Guideline du Wiki
    5.2. Guideline du tracker
Clone this wiki locally