Programación de Microaventuras (1): Estructura General

Hola a todos/as

Esta es la primera entrada de varias en las que describiré el diseño interno de una microaventura para todo aquel que esté interesado en los aspectos relacionados con la programacion de estos juegos. Deciros que todo el software es de creación propia, lo cual quiere decir que quizás haya desaprovechado la existencia de otras herramientas de creación de juegos más potentes y versátiles que me podrían haber facilitado la tarea, pero por otro lado de esta manera consigo tener control total sobre lo que hago, y he preferido esto último. En esta primera entrada sobre el tema hablaré un poco sobre la estructura general del juego.

Estructura General

Las microaventuras están creadas usando la estructura típica de las aventuras gráficas, consistente en un motor del juego y las microaventuras en sí. Cada microaventura no es más que un conjunto de datos mientras que el motor es simplemente una aplicación web capaz de leer los datos de la microaventura y convertirla en la página web donde el jugador puede jugar a la microaventura online.

Estructura General del Juego

Las microaventuras son datos con una estructura concreta que el motor es capaz de entender. El motor es un software invariable. Esto quiere decir que para crear una nueva aventura lo único que tengo que hacer es definir los datos de la nueva microaventura y pasárselo al motor, y él se encarga de mostrar el juego. Esto me permite crear nuevas aventuras sin tener que programar.

(Todo esto es en teoría, ya que en la práctica, con cada microaventura, me encuentro con nuevos problemas y siempre tengo que añadir alguna mejora al motor. Sin embargo espero tener con el tiempo un motor del juego estable)

Estructura Interna de una Microaventura

Cada microaventura, simplificándolo mucho, no es más que un conjunto de parejas de textos. Cada pareja de textos está formada por una entrada y una respuesta. Un ejemplo de pareja de textos podría ser el siguiente:

Entrada: "Examinar mesa" // Respuesta: "La mesa está en el centro de la habitación. Veo un cajón cerrado."

El texto de entrada es el texto que el jugador escribiría en el juego, mientras que el texto respuesta es el texto que el juego mostraría en respuesta a la entrada. Por supuesto, un jugador puede introducir distintas entradas. Todas estas posibles entradas deben estar contempladas en la microaventura.

Así pues, siguiendo con el ejemplo anterior, es de suponer que el jugador estará luego interesado en el cajón de la mesa, por tanto, la microaventura debería contener también esta otra pareja:

Entrada: "Examinar cajón" // Respuesta: "El cajón está cerrado, pero hay un botón a su lado."

Y esta otra...

Entrada: "Usar botón" // Respuesta: "Pulso el botón y el cajón se abre. Dentro veo una pistola."

Etc.

Para construir una microaventura recopilo todas las parejas [entrada-respuesta] que considero que pueden darse en el juego, y las almaceno en una base de datos MySQL. Esta base de datos no solo contiene estos textos, sino que también incluye otra información importante para el juego: localizaciones del juego, cambios en el inventario, entradas que activan otras entradas, etc...

Por otro lado hay que contemplar también el problema de los sinónimos. Un jugador podría expresar una misma orden de muchas formas distintas. Por ejemplo, las entradas "Preguntar por pistola", "Preguntar por arma" y "Preguntar por revólver" pueden referirse a la misma acción. Todo esto debe estar controlado dentro de la base de datos de la microaventura.

En próximos post hablaré un poco más sobre la estructura interna de la microaventura.

Aparte de la base de datos con los textos y la información de la microaventura, incluyo también una serie de imágenes que ilustran cada situación o localización en el juego. La unión de la base de datos junto con las imágenes forman la microaventura en sí.

Estructura Interna de una Microaventura Empaquetada

Motor del Juego

El motor del juego es una aplicación web programada con HTML-CSS-PHP-JAVASCRIPT que se encarga de crear la web que hace de interfaz del juego y que permite que se pueda jugar a éste de forma online desde la web de mesagames.es

Este motor muestra el texto de cada localización en el juego acompañado de su imagen y un cuadro de texto para que el jugador introduzca la acción que quiere realizar. Cada vez que el jugador introduce un texto de entrada, el motor busca en la base de datos de la microaventura la respuesta que le corresponde a dicha entrada, y a continuación muestra esa respuesta en la pantalla.

Captura de Pantalla de la Microaventura

Además de eso, el motor consulta la base de datos de la microaventura para saber si la acción introducida por el usuario ha provocado algún cambio en el inventario, o si ha activado nuevas posibles acciones, o si ha producido un cambio de localización, o si el juego ha terminado, etc. Según la información obtenida de la base de datos, el motor actúa en consecuencia cambiando el texto de la pantalla, la imagen que se muestra, o indicando que el juego ha finalizado si es el caso, etc...

Estructura Paquete Juego y Motor - Parser

En todo momento, el motor almacena el estado actual de la aventura en el ordenador del jugador a través de cookies, lo que permite que el jugador pueda dejar el juego y más adelante seguir jugando desde donde lo dejó.


En próximas entradas hablaré más en profundidad sobre el motor del juego y de la estructura interna de las microaventuras. También publicaré alguna entrada describiendo el proceso que sigo para diseñar estos juegos y las herramientas que utilizo.

José Manuel Rosado
mesagames.es

2 comentarios en “Programación de Microaventuras (1): Estructura General”

  1. Me encanta este nuevo misterio, «La Leyenda». Estoy progresando más suavemente que cuando jugué al «Señor García», pero otra vez estoy atascado. Tiene que ver con ‘los doce’ (Siendo vago para evitar spoilers).

    En la comunidad de ficción interactiva inglés, hay pocas historias de detectives. Creo que el Sr. Rosado tiene el don para este tipo de historias.

    Gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Responsable: José Manuel Rosado
Finalidad: Gestionar los comentarios / Controlar spam
Legitimación: Tu consentimiento
Comunicación de datos: No se comunicarán datos a terceros salvo por obligación legal
Derechos: Acceso, rectificación, portabilidad, olvido
Contacto: nepenteh@gmail.com