Cómo hacer un parser de aventuras conversacionales (I)
Miércoles, 24 de Enero de 2007Introducció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?
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:
- FAQ de aventuras
- Aventuras conversacionales: El inicio del camino hacia la ficción interactiva por Marcelo Huerta
- CategorÃa Aventuras conversacional en la Wikipedia
- Algunos páginas personales dedicadas a las aventuras: Literactiva, Clérigo Urbatain, Baltasar, el arquero y La lÃnea dura (muy técnico) y agnas (muy técnico también).
















Enero 26th, 2007 2:49 pm
Joder, tÃo, eres un crack… y yo que no he pasado de programarme un acceso web a una base de datos para los programas/juegos/pelis/series que tengo… y todo con un simple j2ee…
Ojalá tuviera tiempo y paciencia para acometer mayores metas personales…
Te admiro.
Salu2!