jueves, 22 de abril de 2010

Desarrollando una aventura en Alan, capítulo 2: Diseño de la aventura y primeras habitaciones

anterior | índice | siguiente


Vamos a diseñar la aventura a implementar en este tutorial.

La idea básica es que estás en paro, y tu novia te echa del piso y te dice que o bien vuelves con un trabajo y dinero, o que no vuelvas. Por lo tanto, el objetivo de esta aventura es conseguir dinero y un trabajo.

La aventura transcurre en el siguiente mapeado:


En este sencillo mapeado colocaremos los elementos básicos que nos interesan:
  • lugares: las habitaciones del mapa
  • objetos: con los que interactua el jugador
  • PSIs: personajes con los que interactuar
  • scripts de eventos: que hacen que pasen cosas en el tiempo


Por comodidad, yo utilizo templates básicos de lugares y objetos que voy copiando y editando. A continuación tenéis los códigos:
----- templates --------------------

The xx Isa location
  Name xxx.
  Description 
    ".........."
  Exit norte To xx1.
  Exit sur To xx2.
  Exit este To xx3.
  Exit oeste to xx4.
End The xx.

The yy Isa object At xx
  Name yyy.
  Description
    ""
  Verb examinar
    Does Only
      ""
  End Verb.
End The yy.


Una localización necesita un nombre interno, xx, el nombre que muestra el intérprete, xxx, una description, la que ve el jugador, y las conexiones. Como veremos más adelante, se pueden incluir condiciones a las conexiones para hacerlas más complejas.

Un objeto es similar. Consta de un nombre interno yy, es de tipo object, se encuentra en xx. Tiene un nombre yyy (el que el jugador utiliza para cogerlo, examinarlo, etc). En Description va la descripción que aparece del objeto inicialmente en la habitación donde se encuentra, por ejemplo, si fuese una silla Description "Junto a la mesa hay una silla.". La descripción del objeto cuando el jugador lo examina, se da sobreescribiendo el verbo examinar, en la sección Verb examinar.

El Does Only es importante. Hay varios tipos de Does:
  • Does: realiza la acción especificada y después la original del verbo en la librería. (equivalente a un Does Before)
  • Does Only: ignora la librería y solo realiza esta acción.
  • Does After: realiza la acción tras realizar la de la librería

Ahora añadiremos una segunda localización, el lavabo. Y veremos como limitar el acceso con puertas.

Para añadir una dirección, contamos con la instrucción
Exit dirección To lugar
donde dirección es una de las usuales (norte, sur, este, oeste, etc.) y habitación el nombre de uno de nuestros lugares.

The bareto Isa location
  Name Bareto.
  Description
    "Un viejo y maloliente bareto de mala muerte... tu favorito.$nAl norte está el lavabo."
  Exit norte To lavabo.
End The bareto. 

The lavabo Isa location
  Name Lavabo.
  Description
    "De este infecto lavabo sale el olor característico del bareto.$nAl sur puedes volver al bareto."
  Exit sur To bareto.
End The lavabo.

Si ejecutamos la aventura, ahora ya podemos movernos entre los dos lugares por medio de norte y sur.

En el siguiente capítulo, dedicado a los objetos, veremos como añadir un objeto típico de todo bar que se precie: la jarra de cerveza. Y en el cuarto capítulo, aprenderemos a crear puertas y demás objetos similares que afectan a la movilidad entre lugares.

anterior | índice | siguiente

Desarrollando una aventura en Alan, capítulo 1: instalando Alan

índice | siguiente


Vamos a desarrollar una aventura en ALAN con la librería pALANte para ver como se hace.

Lo primero será preparar nuestro entorno de trabajo. Necesitamos:
-Nos bajaremos de la web de ALAN el AlanIDE, y la última versión del compilador (para desarrollar, nos conviene bajarnos el Command line compiler and interpreter).
-La librería española, que la encontramos en el CAAD.

-Instalamos el AlanIDE en el directorio que nos interese, por ejemplo: C:\util\AlanIDE y el command line compiler en C:\util\AlanIDE\alan.
-Instalamos la librería española en C:\Util\AlanIDE\lib_es.
-Configuramos AlanIDE:

En el menú edit -> preferences



En el menú Alan -> Selected compiler seleccionamos el compilador alan.exe, en nuestro caso, C:\Util\AlanIDE\Alan\alan.exe.
El campo path to standard library por ahora escogemos la librería en castellano standard. En nuestro caso, C:\Util\AlanIDE\lib_es. Cabe notar que la forma en que está pensado ALAN para trabajar incluye copiar la librería al proyecto que desarrollamos, y modificarla según nuestras necesidades.

Vamos a probar que hemos instalado bien. Para ello, crearemos un nuevo proyecto, en nuestro caso Parao, y añadiremos un archivo fuente alan, parao.alan.

En el IDE, creamos lo básico para una aventura en castellano. Podemos utilizar el menú File -> New Wizards -> Alan Main File. Le llamamos Parao.alan . Los tipos de archivo de Alan son:

  • .alan : archivo fuente
  • .a3r: archivo de recursos (gráficos, etc)
  • .a3c: archivo compilado


import 'palante.i'.
The bareto Isa location
Name Bareto.
Description
"Un viejo y maloliente bareto de mala muerte... tu favorito."
End The bareto.


Start At bareto. 
schedule ini_terms at limbo after 0.

"$tParao: un tutorial para Alan en castellano.$n"

Para grabar este código, en AlanIde pulsamos CTRL+S. Esto graba y compila automáticamente y nos indica si hay errores. Si acabamos de crear el archivo, es posible que no veamos lo que ha creado, y debamos refrescar el proyecto (botón derecho sobre la carpeta Parao en el Ide, opción Refresh). Nos aparecerá entonces además de parao.alan el archivo parao.a3c, que es el compilado.

Básicamente, tenemos un lugar, en este caso el bareto.
Definido con la instrucción:
The bareto Isa location

bareto: el nombre interno del lugar
location: tipo al que pertenece bareto, en este caso, location, un lugar.

Name Bareto.
El nombre de la entidad (lugar bareto) que se muestra en el intérprete.

Description "Un viejo..."
La descripción que muestra el intérprete.

End The bareto.
Cerramos la entidad bareto.

La sección de código:
Start At bareto. 
schedule ini_terms at limbo after 0.

"$tParao: un tutorial para Alan en castellano.$n"
Es la introducción.

Con Start At especificamos en que lugar empieza la aventura.
El schedule ini_terms at limbo after 0. es fundamental en castellano. Lanza un script que traduce opciones internas.
índice | siguiente

Desarrollando una aventura en Alan, índice

Vamos a desarrollar una aventura en alan en los siguientes capítulos:

jueves, 15 de abril de 2010

¿Qué es ALAN?

ALAN es un lenguaje de programación de ficción interactiva. Por defecto, permite generar ficción interactiva (o aventuras) en inglés, alemán y sueco.

Para poder desarrollar ficción interactiva en castellano, Marcos Donantuonni inició la librería en castellano pALANte, y este inestimable trabajo inicial fue ampliado hasta contar con toda la librería inglesa en castellano por el autor de este blog.

La página web de ALAN.
La librería de ALAN en español, pALANte 0.6.0e.
La aventura Vampiro para ALAN, del proyecto vampiro.