Razón Artificial

La ciencia y el arte de crear videojuegos

[RAGE] La clase App

Escrito por adrigm el 20 de enero de 2013 en Proyectos, RAGE | 0 Comentarios.

Esta es la clase principal del engine ya que es la encargada de ponerlo en funcionamiento y de cargar los componentes necesarios. La clase App se encarga de lo siguiente:

  • Inicializar y Cerrar la aplicación.
  • Inicializar los componentes necesarios.
  • Crear y gestionar la ventana de la aplicación.
  • Crear y gestionar el log de la aplicación.

Vamos a pasar a analizar cada uno de ellos por separado.

Inicialización y cierre de la aplicación

En algo importante en un sistema como este, se encarga de inicializar el Game Engine, establecer el punto de entrada y por último se encarga de las operaciones de cierre como liberación de memoria y cierre de ficheros.

En motores más complejos contendría la reserva y gestión de memoria, pero es algo no necesario en nuestro engine.

Inicializar los componentes necesarios

RAGE es un software basado en componentes, es decir, varias piezas que se unen para formar un sistema. Hay algunos de estos componentes que se consideran esenciales para el funcionamiento del Engine y son los siguientes.

File System

Se encarga de definir un sistema de archivos confiables para la aplicación. Sirve para acceder a rutas de recursos y directorios donde guardar archivos. Debe ser independiente de la plataforma y sencillo de usar.

La idea es poder usar un sistema sencillo que defina rutas relativas al ejecutable de la aplicación.

Scene Manager

Se trata de un sistema de escenas. Los juegos están basados en escenas diferentes como una pantalla de inicio, un video de introducción, un menú o una pantalla de puntuaciones. Todo esto es mejor gestionarlo por escenas o estados, en otro artículo hablaré más extendidamente del Scene Manager.

Asset Manager

Se encarga de la gestión de recursos. Carga los recursos necesarios buscando en los directorios definidos, evita la carga duplicada de recursos, debe tener varias formas de cargar un recurso.

Log System

El sistema de Log me he basado en el principio KISS (Keep it Simple, Stupid). Así que en lugar de usar logs complicados será un simple ofstream de la STL redirigido a un fichero.

Estos serían los sistemas básicos a inicializar, pero dependen de otros componentes.

Componentes auxiliares

Strings Utils

Se ha de crear una colección de funciones para el manejo eficiente de cadenas, conversión rápida y eficiente, así como un método de hash para una comparación rápida.

Executable dir

Se debe de obtener un método para obtener la ruta del ejecutable que es con la que opera el sistema de ficheros y a través de este el gestor de recursos para la carga de archivos desde una memoria secundaria (discos duros, cds, dvds, etc).

INI Parser

El Engine se basará en archivos .ini para su configuración por lo que se necesita poder poder leer este tipo de ficheros así como crearlos si no existen.

Todo esto no es más que componentes básicos que se necesitan desde un principio y no los únicos, se ha hecho un repaso por arriba, en futuros artículos hablaremos de cada uno de ellos en profundidad.

Deja un comentario