Introducción
Desde hace ya algunos meses llevo metido en un proyecto personal creo que bastante interesante. Se trata de un parser de aventuras conversacionales. Si, esos juegos que solo tienen texto y que para jugar, es necesario introducir órdenes del tipo “examinar caja, este, coger linterna, oeste, abrir puerta, norte, bajar escalera, encender linterna, comer manzana”. Si todavía no sabes lo que es, puedes ver una reseña sobre “La aventura Original” aquí. Y ya para rematar sobre cómo se juega, la guia paso a paso y solución completa al Don Quijote aquí.
Y es que estos tipo de juegos son muy entrañables. Al no poseer gráficos (al menos, no como parte fundamental del juego, sino a modo anecdótico como decoración), su potencial se basa en la parte narrativa.
Al igual que un libro crea personajes y situaciones en nuestra imaginación, la literatura de la aventura conversacional nos transporta más allá de las letras para meternos en el papel del protagonista que interpretamos.
El género de la aventura conversacional
Jugar a una aventura conversacional no te deja indiferente: o las odias (no tienen gráficos, hay que teclear y te aburres) o las amas (en el sentido en el que alguien puede amar algún tipo de juegos).
Hubo un tiempo hace años, muchos años, en el que los ordenadores de 8 bits reinaban. Estos ordenadores tenían muy pocos recursos (en comparación con los de ahora) y las compañías de videojuegos creaban este tipo de aventuras. Pero hoy en día, ya no es negocio. Nadie paga por una aventura conversacional, ni nadie cobra. Los jugadores de antes son los autores de ahora, que con los nuevos parsers pueden crear más y mejores aventuras que las de entonces.
No es un genero muerto, pero si en peligro (al menos en el mundo de habla hispana, ya que la aventura de habla inglesa es realmente potente). No de extinción, ya que los que ya pertenecen a algún tipo de club de amantes de la aventura no van a dejar de serlo, pero es necesario que la gente conozca y juegue estas aventuras para asegurarnos que siempre permanezcan. Pero, ¿cómo hacerlo si las grandes compañías hace tiempo que ya no desarrollan estos juegos? ¿tiene el genero suficiente potencial como para subsistir por sí mismo sin necesidad de grandes producciones? Yo creo que sí, pero ¿cómo? pues jugando aventuras, creando aventuras, creando competiciones de aventuras y, claro está, creando parsers.
Parsers
Muchos parsers han nacido desde entonces y otros muchos han muerto también. Algunos todavía duran en su versión de 8 bits, que algunos autores utilizan en emuladores de Spectrum, como Paws. Otros, como Inform, Adrift, TADS, presentan nuevas formas de crear aventuras más modernas. Aunque todas en ingles, por suerte tenemos dos buenas traducciones de Inform (el parser a mi entender más potente y más extendido) al castellano llamadas InformATE e INFSP
Entonces, crear un nuevo parser para realizar este tipo de aventuras ¿va a ayudar a la aventura conversacional hispana? No lo sé con exactitud, pero el enfoque de parser que estoy desarrollando así lo pretende. Llevo desde septiembre del 2006 programándolo y puedo decir que está bastante avanzado. No he querido hablar de ello antes por miedo a abandonarlo antes de acabarlo, como ha ocurrido con otros (por ejemplo, la programación de un juego de estrategia online basado en turnos, que en la actualidad está abandonado).
¿Y cual es este enfoque? La divulgación masiva de la aventura conversacional. Hasta ahora, las aventuras se crean en un ordenador, se compilan, se distribuyen y se juegan en el ordenador de cada jugador. Si son autónomas, se ejecutarán directamente, sino, deben utilizar una máquina virtual, intérprete, kit de jugador o similar para arrancarlas. Demasiados pasos para una persona que nunca ha jugado una aventura.
Sin embargo, ¿qué pasaría si con hacer click en una dirección te llevara a una página donde pudieras jugar a una aventura? No lo sé, pero voy a intentar comprobarlo.
Parte técnica
El parser que estoy desarrollando (lo siento, todavía no le he puesto un nombre ¿alguna sugerencia?) es completamente online: tanto para crear como para jugar las aventuras, tan sólo hace falta un navegador con Javascript.
Sí, ya sé lo que estáis pensando: existen intérpretes de máquina Z en formato Applet Java, lo que permite jugar aventuras hechas con Inform en una página web. Pero no es lo mismo, yo pretendo ir más allá: el interfaz es html puro con todo lo que ello conlleva: css, texto, imágenes, javascript, flash, lo que sea. La actualización se hace directamente en el DOM de la página con Ajax por detrás (en concreto, usando Prototype). El servidor guarda las aventuras y las partidas. Ejecuta cada juego, recibiendo las ordenes enviada por todos los jugadores a la vez y enviandole a cada uno el resultado de su acción. Con la creación de aventuras sucede lo mismo: no hay compilador, el código se edita directamente en una página y lo compila el servidor. Como veis, un enfoque bastante distinto al del applet de la máquina Z.
Esta desarrollado en Java (servlets y JSP) y por ahora no utiliza base de datos, pero creo que será necesario utilizar una para guardar los usuarios (hasta ahora todo se guarda en ficheros en disco). Dado que el parser esta realmente avanzado, en sucesivos posts iré comentando como lo he desarrollado, que problemas he tenido y como he enfocado todo el desarrollo.
Espero que a los amantes de la aventura les guste y les motive incluso a crear sus propios parsers. Y si no te gusta la aventura, pero te gusta programar, también te gustará. Hablaré de parseo de frases, diccionarios de palabras, ejecución de eventos, mundos virtuales con objetos contenedores donde meter o poner encima otros objetos, conversación con personajess, desarrollo de puzzles, interacción Ajax con Json para el envío de peticiones sin refrescar el navegador, software de Wikis para acometer la monolítica tarea de documentar el parser y, como no, sobre los problemas al crear tu propio lenguaje.
Espero que os guste mi aventura sobre cómo crear un parser de aventuras. Dentro de muy poco, mucho más.
Más información: