Análisis del sistema

Para lograr los objetivos propuestos, es decir, que alguien sin experiencia pueda crear un juego de rol de computador, o ayudar a alguien que quiera separar la programación del diseño del juego, es necesario definir qué contenido o reglas serán fijos y que será editable, al menos en la versión presentada actualmente.

Reglas fijas y limitaciones

  • El juego no tiene scroll. Consiste de escenarios fijos.
  • El personaje no tiene animaciones.
  • Los escenarios no tienen animaciones.
  • Los objetos (tiles) solo tienen la propiedad de actuar como muros.
  • Los items solo despliegan su gráfico y no tienen interacción con el personaje.
  • Se puede navegar a través del mundo ya sea definiendo "portales" al medio de un escenario, o definiendo salidas en los bordes Norte, Sur, Este y Oeste del escenario actual.
  • Se puede poner un máximo de 400 (20x20) tiles (objetos) por escenario, y la imagen de cada tile debe ser de 32x24 pixeles.
  • La única resolución posible del juego es 640x480.

Contenido y reglas modificables

  • Se puede crear una cantidad ilimitada de escenarios, enlazados entre sí de cualquier manera.
  • El diseño de un escenario es una imagen, el límite es tu imaginación.
  • El personaje puede ser de cualquier tamaño y diseño.
  • Se puede crear tantos diseños de objetos como carácteres tenga una tabla ASCII (100+).
  • Se puede tener una cantidad ilimitada de portales en un escenario además de las 4 salidas estándar (N,S,E,O).
  • Se puede ubicar una cantidad ilimitada de items en un escenario.
  • Portales, items y objetos pueden ser posicionados prácticamente en cualquier lugar del escenario.
  • La música de fondo puede ser cualquier archivo MP3!

Entidades principales del Motor RPG

  • Escenario: Esto corresponde al lugar donde existe el personaje en todo momento. Un escenario consiste de una imagen de fondo, objetos, salidas estándar, portales e items.
  • Objetos: Los objetos se comportan como muro. Van ubicados en una grilla de 20x20 en el escenario y su posición, diseño y cantidad es modificable por el usuario.
  • Salidas estándar: Se refiere a las salidas que están en el borde N,S,E,O de cada escenario. A que escenario llevan es decisión del usuario.
  • Portales: Se comportan igual que las salidas estándar con la diferencia de que estos pueden estar ubicados en cualquier parte del escenario. Esto es útil para definir por ejemplo la entrada a una casa a través de su puerta.
  • Items: Concepto a medio programar, destinado eventualmente a ser objetos recojibles y utilizables por el personaje. Por el momento solo se pueden desplegar visualmente sin mayor efecto para el personaje. El despliegue puede ser en cualquier lugar

Para poder editar el contenido modificable, por el momento se utiliza un simple editor de textos. A continuación se muestran algunos casos de uso para la edición de niveles y mapas.

Para comprender mejor, se muestra la estructura de directorios que se debe respetar para que el Motor RPG pueda leer los archivos. Los directorios se muestran en mayúsculas:

  • MAIN
    • Archivo 'ejecutable' del Motor RPG
    • DATA
      • AVATAR
      • ITEMS
      • NIVELES
        • LVL1
          • fondo.jpg
          • escenario.txt
          • items.txt
          • portales.txt
          • salidas.txt
        • LVL2
        • ...
      • SONIDOS
      • TILES
Directorio

Vistazo a /DATA/



Caso 1: Creación y edición de objetos presentes en el escenario

Como se dijo antes, los objetos deben ser de 32x24 pixeles. Lanzamos nuestro editor favorito y creamos una imagen de acuerdo al juego que queremos hacer:

Nuevo tile

Objeto 4.jpg

Una hermosa textura tipo panal de abeja. La guardamos en el directorio en donde se guardan los objetos, es decir en /DATA/TILES/. El nombre del archivo, que debe ser de una letra, es el nombre que se utilizará para la inclusión de este objeto en el juego. Nos vamos entonces a /DATA/NIVELES/1/escenario.txt, esto es, estamos editando el escenario del nivel 1.

Edición de escenario.txt

Edición de escenario.txt para nivel 1

Las X significan que no existe ningún objeto puesto ahí, y solo sirven para conservar la estructura tipo matriz. El número '1' presente se refiere al objeto 1.jpg existente en /DATA/TILES/. Por lo tanto, si queremos incluir nuestro objeto '4' creado, solo debemos borrar las X y reemplazarlas por 4s:

Edición de escenario.txt

Edición de escenario.txt para nivel 1

Lanzamos el juego y vemos que en el escenario inicial nuestro muro-panal de abejas se despliega tal y como lo dispusimos:

Juego con muro panal de abeja

Juego con muro panal de abeja



Caso 2: Definición de salidas N,S,E,O y creación de nuevo escenario

Comenzaremos creando el nuevo escenario, para luego enlazarlo con el mapa ya existente.

Para comenzar la creación del nuevo escenario, creamos una carpeta en /DATA/NIVELES/, por ejemplo, /DATA/NIVELES/NIVEL_PRUEBA/

Para la rápida creación de un nuevo nivel, se dispone de la carpeta /TEMPLATE/, que contiene los archivos necesarios para crear un nivel vacío. Copiando y renombrando esta carpeta, hemos creado nuestro nuevo nivel 'NIVEL_PRUEBA', modificando fondo.jpg para que muestre nuestro fondo deseado.

Carpeta de nivel_prueba

Carpeta de nivel_prueba

Fondo para nivel_prueba

Fondo para nivel_prueba. Puede ser hasta una foto!

Podemos editar escenario.txt de acuerdo a los objetos que queramos desplegar en este escenario

Ahora falta enlazar este escenario con el resto del mapa. Para esto debemos preguntarnos, ¿Desde donde quiero llegar a este escenario?. Para este caso, decidimos que queremos llegar a este nuevo escenario desde la salida sur del nivel 1.

Para lograr este cometido, debemos ingresar a la carpeta del nivel 1 que es /DATA/NIVELES/1/, y editar el archivo salidas.txt.

Salidas.txt del nivel 1

Salidas.txt del nivel 1

Viendo las mini-instrucciones desplegadas en el archivo, vemos que editando el segundo caracter podemos enlazar la salida sur a nuestro nivel de prueba, queda entonces:

Salidas.txt del nivel 1, modificadas

Salidas.txt del nivel 1, modificadas

Ya podemos acceder a nuestro nuevo nivel! No hay que olvidar establecer la salida norte de nuestro nuevo escenario al escenario de donde provenimos, es decir, nivel 1.

Nuevo nivel

Nuevo nivel, con algunos objetos al azar.



Caso 3: Creación de un portal y enlace hacia su escenario correspondiente

En el caso que queramos crear una salida o enlace hacia otro escenario sin tener que recurrir a las salidas N,S,E,O, existe la posibilidad de crear una salida en cualquier sector del escenario editando el archivo portales.txt correspondiente a cada nivel o escenario.

Supongamos que queremos enlazar la puerta de la casa (dentro del círculo azul) mostrada en el escenario 1, con algun escenario que muestre como es la casa por dentro:

Ubicación del portal

Ubicación del futuro portal en escenario 1.

El procedimiento es igual de sencillo que en los casos anteriores. Se ingresa a /DATA/NIVELES/1/ y se abre el archivo portales.txt para ser editado:

Portales.txt

Portales.txt dispuesto a ser editado

Con nuestro editor de imagenes favorito, vemos en que ubicación queremos poner nuestro portal. En este caso, el medio de la puerta esta aproximadamente en la posicición x=331, y=311. El nivel que crearemos para mostrar el interior de la casa se llamará 'p1', editamos el archivo portales.txt de la siguiente manera:

Portales.txt

Portales.txt editado

Y listo!, la proxima vez que nuestro personaje pase por esa posición en el escenario, será transportado hacia el escenario p1.



Pruebas de lo anterior: Diseño de un pequeño mundo.

Utilizando los métodos descritos en los casos de uso, se creó un pequeño mundo recorrible por el personaje. El personaje al avanzar emite un sonido de pasos junto a una agradable música de fondo. En esta iteración del programa más que un juego RPG es un juego de relajación y recorrido de niveles creados por el usuario. El mundo junto está disponible junto con el programa en la sección de descargas.