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
... ... ...
- Paradigma: Vamos a utilizar una arquitectura basada en componentes y paso de mensajes
- API por Objetos
- Comunicación entre componentes
- Descriptión de Objetos