Arquitectura de Código - SeriousGamesStudio/Serious-Train-2-3D GitHub Wiki

Aquí expondremos la arquitectura del proyecto cuando terminemos de definirla

Para ver mejor la imagen recomendamos: hacer click derecho sobre la imagen/ abrir en una pestaña nueva

Definicion de Clases

Game

Game es un singleton el cual está compuesto de Managers en los que delega cada una de las funciones de la aplicación. Posee el bucle principal de la aplicación.

GameManager

GameManager es un singleton el cual se encarga de la gestion de escenas. La gestion de escenas se realiza mediante una pila de escenas. Esta clase implementa mediante las operaciones basicas de la pila. Además transmite el tick hasta la escena

ResourceManager

ResourceManager es un singleton el cual se encarga de la gestion de recursos (assets), se encarga de dar una interfaz para la carga y manipulación de los recursos

DataManager

DataManager es un singleton el cual se encarga de almacenar el estado del juego, así como de gestionar la carga y guardado de ficheros.

PhysicsManager

Es un singleton que se encarga de gestionar todas las físicas del juego. Contiene todo el contexto del motor de físicas, así como proporciona una interfaz para los componentes que dependen de él.

GraphicsManager

Es un singleton que se encarga de gestionar toda la carga gráfica del juego. Contiene todo el contexto del motor gráfico (OGRE con SDL)

InputManager

Es un singleton que se encarga de gestionar todo input generado por el usuario. Proporciona una interfaz sencilla que permite a los componentes que así lo quieran subscribirse a eventos concretros y ser avisados cuando sea sea necesario

... ... ...