Razón Artificial

La ciencia y el arte de crear videojuegos

[RAGE] Estructura básica del Engine

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

Una de las primeras cosas a definir en el engine es la estructura. Barajé varias opciones sobre la forma que le quería dar. Una de ellas era hacer un Game Engine independiente de cualquier biblioteca de terceros, esto es, haciendo una capa de abstracción de otras bibliotecas a usar como SFML o Boost, pero ya que gran parte del proyecto está basado en la biblioteca gráfica SFML decidí que fuera un framework para éste mas que una capa de abstracción. Aún así he decidido que tenga los juegos que se creen con RAGE tengan las menos dependencias posibles y aunque RAGE depende de otras bibliotecas como SFML, Boost, PugiXML y en el futuro es posible que otras los juegos creados con RAGE solo tendrán como dependencia la propia RAGE, SFML y la STL.

Lo ideal sería que los juegos solo dependieran de RAGE, pero esto supondría crear toda una capa de abstracción sobre SFML que no es necesaria pues SFML es una biblioteca muy bien diseñada y con clases muy útiles. Así que desde este momento RAGE queda ligado a SFML y no se podría cambiar el “motor multimedia” por así decirlo, puesto que si fuera una capa de abstracción en un futuro podríamos definir SDL u otros sin que afectara al Engine.

Estructura general del sistema

Una vez decidido el tipo de relación vamos a definir lo que sería RAGE a grandes rasgos y que aporta a SFML.

esquema

 

En el esquema se ve que SFML y Core System aislan al usuario de bibliotecas de terceros y al Sistema Operativo del usuario. En este contexto tenemos que los juegos están formados por escenas que hacen uso de todo lo que tiene SFML más lo añadidos del Core System que son los siguientes:

  • App – Inicialización y cierra de la Aplicación así como la gestión de la ventana del juego.
  • Scene Manager – Gestor de escenas.
  • Strings Utils – Varia utilidades para trabajar con cadenas de textos, parseadores de cadenas y hash ID.
  • Parser INI – Parseador de archivos .INI, .cfg, etc.. (Fallo en el gráfico de arriba pone Parser XML cuando es Parser INI).
  • Parser TMX – Parseador para le formato de mapa de Tiled.
  • FileSystem – Acceso seguro al sistema de ficheros del SO independiente de la plataforma.
  • Log System – Sistema de Log de la aplicación.
  • Asset Manager – Gestor de recursos.

Todo esto es a rasgos generales en próximos artículos iremos explicando cada componente de forma detallada y su función.

2 Comentarios en "[RAGE] Estructura básica del Engine"

  1. Carlos dice:

    Dentro de Scene, no te faltarían las entidades del tipo: NPC, player, jugador, item, etc. ?

    • adrigm dice:

      Carlos, todo eso son SceneGraph, defino este concepto como todo aquello como objetos de escena que son dibujable: En principio habrá tres tipos: Sprites, Figuras y Texto.

      De estos en la capa Game el usuario crea su propio sistema de objetos, item y demás según las necesidades del juego.

Deja un comentario