Colegio Erevest
Descripción del contenido de la página
Tres versiones de una aventura conversacional escrita en Sinclair BASIC para la Sinclair ZX Spectrum, ambientada en un colegio de curas nada simpáticos, escritas entre 1985 y 1986.
Presentación
Cuando empecé a escribir esta aventura conversacional habían pasado menos de dos años desde la primera vez que abrí el manual de la ZX Spectrum, mi primera computadora, poco después de sacarla de su caja. Ya entonces la programación se había convertido en mi pasión y, entre todas sus muchísimas aplicaciones, los juegos de aventuras conversacionales eran los que más me atraían, aunque no tanto como jugador sino como programador.
Colegio Erevest es la primera aventura conversacional que escribí. Desde que la terminé en 1986, a lo largo de los años, empecé a escribir otras aventuras técnicamente mucho más avanzadas, en varios lenguajes de programación (Z80, Forth, Clipper...); pero hasta el momento de escribir estas líneas ninguno de dichos proyectos está terminado. Quería perfeccionar tanto el intérprete de comandos y la representación interna del mundo virtual que la escritura del argumento, los contenidos, el diseño de problemas y, por supuesto, los gráficos, siempre estaban al final de la lista de tareas pendientes. Colegio Erevest es pues hasta la fecha no sólo la primera aventura conversacional que escribí, como ya he dicho, sino la única que he terminado (con la excepción de la aventurilla experimental La aventura de Ug).
Entre 1985 y 1986 escribí tres versiones de Colegio Erevest, cada una con algunas mejoras respecto a la anterior, tanto en las interioridades del programa como en su manejo y el desarrollo del juego. Afortunadamente conservé las tres versiones, pues resulta muy curioso ver las diferencias en el código al cabo de tantos años. Ninguna de las tres versiones es un ejemplo de programación estructurada sino todo lo contrario. Las características de Sinclair BASIC, unidas a la complejidad y al tamaño del programa, no facilitaban mucho escribir de forma clara; eso por no hablar de la limitación de memoria, que en la tercera versión empezó a ser un condicionante.
Con sus muchas limitaciones, Colegio Erevest tiene algunas características brillantes, especialmente la versión 3: por ejemplo, una rutina de entrada de comandos que funciona asíncronamente con el flujo principal, y unos personajes seudo-interactivos que se mueven por los escenarios mientras el jugador teclea (o no) sus instrucciones. El resultado es que, independientemente de que el jugador dé intrucciones, los personajes se mueven y podemos encontrarnos con ellos.
En la primera versión programé un intérprete de comandos demasiado sencillo, que obligaba siempre a escribir dos palabras, ni una más ni una menos, y no lo mejoré sustancialmente en las dos siguientes versiones. Ese detalle es como una espinita que tengo clavada desde entonces, pues con un intérprete más sofisticado el juego ganaría mucho en comodidad de uso. Tiempo después escribí un intérprete muy potente para una nueva aventura, Finen per Imago, escrita en Z80.
Entre mis proyectos de programación hay una aventura conversacional que es una secuela tácita de Colegio Erevest: La legionela del pisto.
Argumento y objetivo
Es de noche... Y esto es lo que el programa nos cuenta al empezar:
Estás en las cercanías del famoso colegio Erevest (centro de formación integral).
Mañana tendrá lugar el examen final del curso y no sabes ni de qué va.
Un compañero te dio ayer una llave maestra de todas las cerraduras del colegio. Quizá si lograras entrar y copiar las preguntas del examen podrías aprobar... y de paso cambiarías tus notas de todo el curso. Puede que a estas horas todavía haya algun cura dentro, pero hay que arriesgarse.
Las notas y el examen están en una caja fuerte que debes hallar sin ayuda de nadie, así como la combinación para abrirla.
El objetivo es pues entrar en el colegio, llegar hasta la caja fuerte, copiar el examen del día siguiente, cambiar las notas y salir a la calle de nuevo sin ser sorprendido por algún cura (o saliendo airoso del encuentro).
Para lograr el objetivo necesitaremos algunos objetos sencillos y la combinación de la caja. Para encontrarlos deberemos recorrer el colegio.
Características del programa
La versión 2 y la versión 3 añadieron algunas funcionalidades nuevas que están descritas en sus páginas. Aquí sólo menciono las características comunes a las tres versiones:
- 30 escenarios.
- 3 personajes seudo-interactivos, los curas del colegio, que se mueven de un escenario a otro independientemente del jugador y cuyos encuentros pueden resultar fatales o no dependiendo del lugar donde se produzcan, de los objetos que llevemos en ese momento o de la respuesta que demos a sus preguntas.
- Puertas cerradas en muchos puntos de mapa, que pueden abrirse mientras conservemos la llave.
- 11 objetos manipulables.
- El jugador puede llevar consigo 3 objetos al mismo tiempo.
- Siempre un poco diferente: los objetos y los personajes empiezan cada vez en lugares nuevos elegidos al azar, dentro de ciertos márgenes. Nunca me gustaron las aventuras cuyas partidas son siempre iguales y que por tanto pueden terminarse conociendo previamente los pasos a seguir.
- El jugador puede explorar el mapa libremente.
- Algunos escenarios a oscuras; para ver lo que hay en ellos el jugador necesitará una fuente de luz.
Vocabulario y sintaxis
Uno de los puntos débiles de Colegio Erevest es su limitado vocabulario y su más que espartano intérprete de comandos, que espera siempre dos palabras: un verbo y un objeto o complemento. Esto obliga a escribir «MIRA TODO» en lugar de «MIRA»; «VE NORTE» en lugar del habitual «N»; y aun peor: «HAZ INVENTARIO» en lugar de simplemente «I». Como consolación, el intérprete sólo utiliza las cuatro primeras letras de cada palabra, así que podemos escribir: «VE NORT» y «HAZ INVE».
Los verbos deben escribirse en imperativo, no en infinitivo (aunque dado que sólo las cuatro primeras letras cuentan, en la mayoría de los casos daría igual). Los verbos aceptados en las dos primeras versiones son: VE, COGE, DEJA, ABRE, COPIA, CAMBIA, HAZ, MIRA, ENCIENDE y LEE. La lista se amplió con algunos sinónimos en la versión 3: VETE, CONECTA, RECOGE, TIRA, SUELTA y EXAMINA.
Los objetos y complementos aceptados en las tres versiones son: NORTE, SUR, ESTE, OESTE, PUERTA, INVENTARIO, TODO, LLAVE, NOTAS, EXAMEN, BOLI, FOLIO, CAJA, LAPIZ, LINTERNA, ZAPATO, CALCETIN y PAPELITO.
Pantallazos
Cada una de las tres versiones tiene una página propia que incluye entre otras cosas pantallazos de algunos momentos del juego. Aquí muestro sólo las pantallas de presentación o carátulas:
Pantalla de presentación de Colegio Erevest 1 (se ve de lejos que para dibujar la nariz del cura me inspiré en los personajes del genial Jan, el dibujante de los cómics de Superlópez):
Pantalla de presentación de Colegio Erevest 2, una versión más elaborada de la anterior:
Pantalla de presentación de Colegio Erevest 3, un diseño nuevo mucho más impactante, que de los anteriores sólo aprovecha la nariz, el brazo y poco más:
Código fuente
Los listados del código fuente pueden verse en las páginas de cada una de las tres versiones:
Variables
Para ayudar a la comprensión de los listados, muestro a continuación el uso de las variables y matrices principales. Salvo indicación, se usan igual en las tres versiones del programa:Nombre | Uso |
---|---|
A$ |
orden; y uso general para imprimir |
B$ |
verbo de la orden; y uso general |
C$ |
objeto o complemento de la orden |
CA |
¿caja fuerte abierta? |
CC |
¿notas cambiadas? |
E$() |
preguntas del examen |
EC |
¿examen copiado? |
EXP |
(en las versiones 1 y 2) ¿expulsado? |
EXPU |
(en la versión 3) ¿expulsado? |
FAL |
contador de faltas de disciplina |
HAY |
número del primer objeto que puede ser transportado |
IS |
número del objeto o complemento de la orden |
L$() |
asignaturas y notas |
LUZ |
¿linterna encendida? |
M$() |
mandamientos |
N$ |
nombre del jugador |
NC |
número de objetos transportados |
NCM |
número máximo de objetos que el protagonista puede llevar |
NH |
número de habitaciones |
NP |
número de personas |
NS |
número total de objetos y complementos |
NV |
número de verbos |
O() |
lugar en que están los objetos |
P$() |
nombres de los personajes |
P() |
lugar en que están los personajes |
PER |
número del personaje con el que se encuentra el protagonista |
R$ |
(en la versión 3) nombre del jugador que ha completado la aventura en menor tiempo |
S$() |
objetos y complementos |
S() |
salidas de cada habitación |
SCA |
habitación en que está la caja fuerte |
SIT |
habitación actual |
T$() |
(en la versión 3) tabla de relaciones entre verbos y objetos |
T() |
(en las versiones 1 y 2) tabla de relaciones entre verbos y objetos |
V$() |
verbos |
V() |
(en las versiones 2 y 3) ¿ha habido un encuentro previo con el personaje? |
X$ |
clave de la caja fuerte |
Descargas
He recopilado las tres versiones de Colegio Erevest en ficheros DSK y TAP, con un cargador que permite elegir jugar a cualquiera de ellas.
Las versiones 2 y 3 del programa están actualizadas por última vez en fecha 2011-03-25 (había un pequeño error en el cálculo de la dirección de CLEAR
antes de cargar el juego de caracteres).
Las tres versiones del programa en un fichero DSK (imagen de disquete de la ZX Spectrum +3; aunque el programa es para el modelo de 48 KiB, funciona sin problemas en los modelos de 128 KiB):
- colegio_erevest.dsk (190.25 KiB)
- colegio_erevest.dsk.zip (52.85 KiB)
- colegio_erevest.dsk.gz (53.08 KiB)
Las tres versiones del programa en un fichero TAP (imagen de cinta de casete):