logo xyzzy


SPAC #27

Mayo - 2003

Editor abreviado: dhan <dhan@interlap.com.ar>
En este número colaboran: Alfredo Liu-Pérez, Baltasar El Arquero, el Clérigo Urbatain, Pedro Antonio Sanz y Presi.
Asistente de correcciones: Morgul.

Web de SPAC http://usuarios.lycos.es/SPAC

índice

Editorial

Noticias

Artículos:
'Librería de Armas (II)', por Baltasar El Arquero.
'¿Programar sin aprender?', por Presi.
'Introducción práctica a los juegos de aventura', por El Clérigo Urbatain.
'Licencia General Pública de Aventuras Conversacionales', por Emily Short, traducción de El Clérigo Urbatain.
'El Arte de la Aventura (IX): Capítulo 51, La descripción de la localidad', por Graham Nelson, traducción de dhan y Alfredo Liu-Pérez.

Comentarios:
'Anchorhead', por Pedro Antonio Sanz.
'Earth and Sky', por Pedro Antonio Sanz.
'Earth and Sky 2: Another Earth, Another Sky', por Pedro Antonio Sanz.


editorial

Este mes el editorial va a adentrarse en las movedizas arenas de la historia-ficción, y no lo llamo ciencia-ficción por no menospreciar un género que tiene muchos adeptos por aquí y del que conozco bien poco. Un extraño juego de paralelismos. Imaginad que un día no se estrena ninguna película nueva, que la industria americana sufre un imprevisto, las películas españolas e incluso europeas no es que se prodiguen mucho y nada de cine asiático o hindú que nadie va a ir a ver. Imaginad que la situación se prolonga, y que incluso es muy difícil conseguir materia prima para poner en marcha y de urgencia un montón de cine español para llenar ese hueco. Un desastre, vamos.

Pobre público, tan acostumbrado a sus historias enlatadas y a su consumo en salas enormes y oscuras. ¿Qué podría pasar luego? ¿Se acostumbraría la gente a cambiar de estilo de películas? Lo cierto es que la India produce más de medio millar de películas anuales. ¿Se rescatarían las antiguas? ¿Se iría más al fútbol? Lo dudo bastante. Quiero pensar que la gente con historias por contar, y con ánimo para impulsar a que otros traten de contar las suyas, se apañarían de algún modo para filmar de la forma que sea. Quizá en vídeo, quizá incluso con sábanas y sombras chinescas.

Te preguntarás si esto es realmente un fanzine de aventuras... Y ahora, al leer esta frase quizá trates de buscar alguna equivalencia entre lo anterior y la debacle de las conversacionales como género comercial. En fin, te dejo pensar un poco, se hace tarde y el último rayo de luz se filtra por mi ventana para proyectarse en estas viejas sábanas.

dhan

subir al índice


noticias

Segundo juego en la Brevecomp
'El libro que se aburría', de Jenesis, es la segunda aventura inscrita en la II Brevecomp, concurso que actualmente y hasta el 31 de Mayo se encuentra en su etapa de recepción de juegos. Atención porque ya sólo quedan pocas semanas para presentar juegos, y aún no se sabe si se ampliará el plazo. La web del concurso ha vuelto a su dirección original en CAAD, gracias a la subida de ficheros de Baltasar el Arquero, co-organizador de la misma. Puedes descargar los dos juegos participantes en: http://caad.mine.nu/brevecomp2

Nueva web para los Premios Hispanos
JSJ ha cambiado el sitio donde alberga la información de estos premios y de paso ha actualizado las secciones con la inclusión de las anteriores convocatorias. Puedes cotillearlo todo en http://premioshispanos.w3jsj.com/

Convocada la nueva IfComp 2003
Aunque el plazo de entrega de aventuras se cerrará en Septiembre, Stephen Granade madruga y abre desde ya la web que albergará el concurso, para que se animen los donantes de premios. Curiosamente ya hay dos vales de 50 y 25 dólares y unos sorpresivos panties o calzones elásticos muy curiosos. Más información en http://ifcomp.org

Las aventuras como arte contemplativo
Existe un concurso en la comunidad inglesa que premia las aventuras como obras dirigidas a los sentidos, no a los puzzles. Se llama IF-Art y acaban de conocerse los ganadores de sus tres categorías (retrato, paisaje y evento). Puedes curiosear sobre el certamen en http://members.aol.com/iffyart

Inventory, el fanzine de las aventuras gráficas
Desde hace unos meses se edita el fanzine 'Inventory', que ha llegado recientemente a su sexto número. Con una maquetación muy correcta y contenidos interesantes y algunos de ellos en exclusiva, ofrece un buen repaso a la actualidad de nuestras hermanas las aventuras gráficas. Puedes descargarlo en http://www.justadventure.com/

'City of Secrets', por fin disponible
El juego anglosajón más esperado de los últimos tiempos por fin está disponible. El proyecto más ambicioso de Emily Short ocupa casi 7 MB (megabytes) y contiene un montón de extras para disfrutar una experiencia conversacional completa. Descárgalo desde el IF-Archive, en la siguiente dirección: http://www.ifarchive.org/if-archive/games/glulx/CoS.zip

Más de Emily Short
Además de este lanzamiento, Emily Short ha escrito en colaboración con Dan Shiovitz y J. Robinson Wheeler un juego basado en las películas de Serie B de los 60, titulado: 'Max Blaster and Doris de Lightning Against the Parrot Creatures of Venus'. Sorprendentemente está escrito en TADS3, algo no habitual en ella. Por cierto, en algunos meses puede que nos llegue otro juego basado en pelis de serie B.

Concierto de ZeroGrados, el grupo "conversacional"
El día 24 de Mayo el grupo ZeroGraDoS ofrecerá un concierto en la sala "La Buena Dicha" de Madrid (Calle Santa Hortensia 16), a las 22:30 h. Quizá algún componente del grupo os resulte conocido, con cierto parecido a Jarel, que por cierto comenta que si decís que vais de parte de SPAC regalan una maqueta con la entrada XDD.

Más noticias de VS 1.2
Morgul nos cuenta que ha liberado una nueva versión previa de Visual SINTAC, con el fin de
que los propios usuarios de Visual SINTAC la testeen y comenten cualquier pega que hayan visto o cualquier posible mejora (podéis escribirle a: jmfo1982@yahoo.es).

Las principales mejoras de este entorno con respecto a la última versión liberada por JSJ (hace ya más de dos años) son:

Concursos:

Convocatoria de la II Brevecomp.
http://caad.mine.nu/brevecomp2

Este concurso no tiene ninguna temática concreta, pudiendo presentarse cualquier aventura al mismo.

Plazos
Fecha límite de entrega: 31 de Mayo de 2003 a las 12 de la noche.
(Existirá un plazo por concretar, para presentar revisiones de las ya publicadas.)

Entrega
Las aventuras deben enviarse por email. La organización contactará con el participante para comunicarle que ha recibido los ficheros y que su juego está en la competición.

El envío deberá estar dividido en dos ficheros:

* En el primer fichero se incluirá el ejecutable del juego, las instrucciones...

* En el segundo se adjuntará la solución/pistas junto con el código fuente (opcional). La solución y el código sólo se harán públicos tras el periodo de votación.

El autor es libre de presentarse bajo pseudónimo, y en el caso de participar con más de una aventura, podrá utilizar nombres distintos. En todo caso su nombre real deberá aparecer en el segundo fichero.

Requisitos
Las aventuras que entren a concurso serán del tipo denominado "Aventuras conversacionales" o "Ficción interactiva", y el idioma será el español.

No se imponen limitaciones en cuanto a número de localidades, objetos o PSI's, si bien se recomiendan los siguientes números aproximados: 12 localidades, y 7 objetos o PSI's. La brevedad o extensión de la aventura no influirá negativamente si se potencian otros aspectos como la interactividad o la originalidad.

Se podrán incluir atractivos adicionales como gráficos o sonidos, si bien se advierte que primará el aspecto literario en las votaciones.

La aventura podrá funcionar en cualquier plataforma, aunque participará en desventaja si poca gente puede jugarla. En el caso de aventuras interpretadas (Inform, Glulxe...), no será necesario enviar el intérprete ya que junto a la aventura figurará el link correspondiente para conseguir la última versión del mismo.

La organización no se reserva ningún derecho sobre los programas presentados a concurso, que seguirán siendo propiedad intelectual de su autor, sin embargo, durante el periodo que dure éste, las aventuras deberán poder distribuirse y jugarse gratuitamente y sin ninguna limitación.

Envío de votos
El envío de votos y de las aventuras participantes se realizará a través de los emails que en la web se cita.

Periodo de Votación
La fecha exacta será anunciada por la organización el día que se cierre el periodo de admisión de aventuras. Esto es así, porque se intentará realizar una quedada a finales del mes de julio durante la que se anunciarán los ganadores y se procederá a la entrega de premios.

Categorías a Votar
Cada aventura se votará con una escala del 0 al 10, con un decimal como máximo, en las siguientes categorías:

* Originalidad
* Literatura
* Interactividad
* Calidad global

-Nominaciones especiales:

* Mejor Puzzle
*
Mejor PSI

Al final deberá incluirse un mínimo comentario de la aventura votada, detalle que agradecerá sin duda el autor.

Más información en http://caad.mine.nu/brevecomp2


¡Necesitamos colaboraciones!
Necesitamos tus artículos para seguir mejorando. Puede ser un breve comentario, algunas pistas para solucionar un juego sin que tengan que ser la solución completa o cualquier artículo de interés relacionado al respecto. Entre todos podremos mantener vivo el mundo de la aventura.

Lo ideal es enviar tus colaboraciones a mi dirección de correo electrónico (dhan2002@terra.es) antes del día 25 de cada mes, pero aun así no te preocupes por la fecha de cierre ya que lo que no entre en un número irá al siguiente ;-) Gracias...

subir al índice

 

artículos

Librería de Armas (II)
por Baltasar El Arquero

Introducción
En la anterior entrega [1], vimos cómo crear un conjunto de armas, unas defensivas, otras ofensivas y otras, incluso, armas de fuego. Junto a las armas de fuego, se desarrollaron los mecanismos necesarios para poder dispararlas a cualquier cosa (objeto o personaje), aprovechando el mecanismo de la librería estándar
atacar().

Todo eso está muy bien, pero necesitaremos poder atacar a alguien y, sobre todo, que éste nos responda y podamos pelear con él. Y ése, precisamente, es el objetivo de esta entrega.

La siguiente parte de la librería empieza recubriendo con una pequeña capa las armas mixtas:

class armaBlanca
  class arma_mixta
;

Es cierto, es cierto, no es gran cosa, pero es que para un arma blanca no necesitamos demasiado.

Bueno, ahora en serio, empezamos con la clase general de guerreros. Veremos que el combate se divide en dos partes: la defensa, que cualquier guerrero puede hacer, y el ataque, que el jugador realiza de una forma y el guerrero (PSI) de otra distinta. La primera clase se encarga de la defensa.

class guerrero
  private
    armaBlandida nothing,
    nivel_vida 0,
    habilidad_def 0,
    habilidad_of 0,
    suerte 0,
    atacadoUltimaVez false,
    turnoAtacadoPorUltimaVez 0,

    elRestoNoAtacado [x;
      objectloop (x ofclass guerrero)
      {
        x.resetAtacado();
      }
    ],

    heSidoAtacado [;
      self.elRestoNoAtacado();
      self.atacadoUltimaVez = true;
      self.turnoAtacadoPorUltimaVez = turnos;
    ]

En la parte privada, se declaran las características de los guerreros. El nivel de vida, cuando llega a cero, implica la muerte del guerrero. Además, hay una habilidad defensiva, una habilidad ofensiva, y un factor suerte. El atributo armaBlandida lleva el arma que emplea el combatiente. Los métodos elRestoNoAtacado() y heSidoAtacado() se emplean para poder llevar la cuenta de quién ha hecho el último ataque, y, para cada combatiente, en qué turno lo hizo. No es información crucial, pero podría serlo en algún momento dado para algún uso de la librería.

  with
    resetAtacado [;
      self.atacadoUltimaVez = false;
    ],
    devAtacadoUltimaVez [;
      return atacadoUltimaVez;
    ],
    devTurnoAtacadoPorUltimaVez [;
      return turnoAtacadoPorUltimavez;
    ],

    estaVivo [; return (self.nivel_vida > 0); ],
    devSuerte [; return self.suerte; ],
    devVida [; return self.nivel_vida; ],
    devHabDef [; return self.habilidad_def; ],
    devHabOf [; return self.habilidad_of; ],

    ponArmaBlandida [x;
      self.armaBlandida = x;
    ],

En estas funciones, se trata de obtener los valores de las características antes mencionadas. Nótese que éstas no pueden modificarse. Por ejemplo, la vida sólo la modifica la propia librería cuando el guerrero es atacado. No tiene sentido que sea modificada desde fuera, aunque sí podría ser modificada desde un método antesDeRecibirAtaque(), como se verá más adelante. Sí es posible modificar el arma blandida en cada momento.

    devArmaBlandida [x y;
      if (x == ATAQUE)
        y = buscaArmaDeAtaqueEn(self);
      else if (x == DEFENSA)
        y = buscaArmaDeDefensaEn(self);

      if (self.armaBlandida == nothing)
        self.ponArmaBlandida(y);

      return self.armaBlandida;
    ],

Esta función es un poco más compleja de lo que debería, porque en caso de que no haya ningún arma blandida (y hasta el momento, no se extenderá la acción atacar estándar), la busca dentro de los objetos del jugador. Puede buscar dos tipos de armas: de defensa y de ataque (de ahí la utilidad de dividir los objetos en clases).

    estadisticas [;
      print "Vida: ",self.devVida(),
        "^Suerte: ", self.devSuerte(),
        "^Habilidad Defensiva: ", self.devHabDef(),
        "^Habilidad Ofensiva: ", self.devHabOf(),
        "^^";
    ],

    describeme [;
      return "Un guerrero con cara de pocos amigos ...";
    ],

    descripcion [;
      print (string) self.describeme();
      print "^";
      self.estadisticas();
    ],

    antes [;
      atacar: return (self.recibe_ataque());
    ],

Los métodos anteriores sirven para visualizar estadísticas y descripciones. Todos ellos pueden ser sobreescritos por clases derivadas (quizás no se desee que se impriman las estadísticas en algún caso). Por último, tenemos la parte de la librería estándar encargada de relacionar la acción atacar estándar con la capacidad de ataque del guerrero.

    antesDeRecibirAtaque [atacante arma; return true; ],
    despuesDeRecibirAtaque [atacante arma puntosperdidos; return true; ],

    calculaPerdida [ atacante fuerza_arma aux;
      ! Tener en cuenta:
      ! fuerza_of del atacante
      ! fuerza_def de self
      ! fuerza del arma
      ! suerte de self

      aux = atacante.devHabOf() + fuerza_arma;
      aux = aux - self.devHabDef();
      aux = (aux - random(self.devSuerte())) + random(self.devSuerte());

      return aux;
   ],

   alMorir [;
     " ... muerto ...";
   ],

Los métodos anteriores son o bien ganchos o métodos llamados desde la parte encargada de recibir el ataque. CalculaPerdida() es un método importante, ya que calcula los puntos de vida que va a perder el personaje con este ataque. AlMorir() se ejecuta cuando el personaje muere (lo que podría emplearse incluso para resucitarlo).

    recibe_ataque [atacante elarma fuerza_arma puntos;
      ! oh, Dios mío !
      self.heSidoAtacado();

      ! quién me ataca ?
      if (atacante == nothing)
        atacante = jugador;

      ! obtener fuerza del arma
      if (atacante ofclass guerrero)
        elarma = atacante.devArmaBlandida(ATAQUE);
      else elarma = nothing;

      if (elarma != nothing && elarma ofclass arma)
        fuerza_arma = elarma.devOfensa();
      else fuerza_arma = 1;

      ! Llamar al gancho del ataque
      if (self.antesDeRecibirAtaque(atacante, elarma)) {
        ! Quitar la puntuacion de vida
        puntos = self.calculaPerdida(atacante, fuerza_arma);
        self.nivel_vida = self.nivel_vida - puntos;

        ! Está muerto ?
        if (self.nivel_vida <= 0) {
          self.nivel_vida = 0;
          self.alMorir();
        }
      }

      return self.despuesDeRecibirAtaque(atacante, elarma, puntos);
    ]
;

Lo anterior es el método principal, que se encarga de recibir el ataque de otro guerrero (o del jugador). Lo que se hace es, a partir del atacante, localizar el arma con la que realizará el ataque, y llamar al gancho antes...(). Si todo va bien (antes...() ha devuelto true), entonces se le quitan al guerrero sus puntos de vida. Si está muerto, se llama al gancho de alMorir(), y en todo caso, se llama a después...(), cuyo valor es devuelto como valor de retorno de todo el método.

class PSIGuerrero
  class guerrero
  private
    objetivo nothing,
    atacoEnTurno 0, ! Guarda el turno en el que atacó por última vez
    ultimoTurnoAtaco false, ! Fue el PSI del ultimo ataque ?

    anulaLosAtacantes [x;
      objectloop(x ofclass PSIGuerrero)
      {
        x.resetAtaco();
      }
    ],
    esteEsAtacante [;
      self.anulaLosAtacantes();
      self.ultimoTurnoAtaco = true;
      self.atacoEnTurno = turnos;
    ]
  with
    resetAtaco [;
      self.ultimoTurnoAtaco = false;
    ],
    devUltimoTurnoAtaco [;
      return ultimoTurnoAtaco;
    ],
    devTurnoUltimoAtaque [;
      return atacoEnTurno;
    ],

Lo anterior es ya la clase PSIGuerrero. Todos los guerreros tienen capacidad para defenderse, aunque no todos atacan de la misma forma. Un PSIGuerrero debe atacar a alguien "por su cuenta", mientras que el guerrero que representa al jugador ataca cuando le da la gana (sin que tengamos que hacer nada extra en la librería). Lo más importante es la propiedad objetivo, que lleva a quién debe este PSI atacar. Además, como antes, guardamos alguna información extra para saber quién le ha pegado a quién la última vez.

    suObjetivo [; return self.objetivo; ],
    cambiaObjetivo[x; self.objetivo = x; ],

    antesAtacar [ objetivo;
      rtrue;
    ],

    despuesAtacar [ objetivo;
      rtrue;
    ],

Podemos cambiar el objetivo de un PSIGuerrero en cualquier momento. Como veremos, él mismo lo modifica en el caso de su muerte o la muerte del objetivo. Pueden verse, además, los ganchos de antes del ataque y después del ataque.

    cada_turno [;
      if (self.suObjetivo() ~= nothing) ! Tiene un objetivo ?
      {
        if (enQueLugar(self.suObjetivo()) == enQueLugar(self) ! Están en el mismo lugar ?
          && self.estaVivo()
          && self.antesAtacar(self.suObjetivo()))
        {
          ! Marcar a éste como el último en atacar
          self.esteEsAtacante();

          if (self.suObjetivo() ofclass Guerrero)
          {
            ! Atacar
            self.suObjetivo().recibe_ataque(self);

            ! Dejamos de blandir el arma de ataque
            self.suObjetivo().ponArmaBlandida(nothing);

            ! Si ha muerto, nos quedamos tranquilos
            if (~~self.suObjetivo().estaVivo())
              self.cambiaObjetivo(nothing);
          }
          else <<atacar objetivo>>;

          return self.despuesAtacar(self.suObjetivo());
        }
      }
      rtrue;
    ]
  has
    animado;


Finalmente, en el caso de que haya objetivo, de que el objetivo esté en el mismo sitio que el guerrero, y que antes...() devuelva true, se plantea el ataque al objetivo, llamando a su método recibe_ataque(). En caso de que no sea un guerrero, simplemente utilizamos el mecanismo estándar de ataque de InformATE!.

Algunas funciones generales
Algunas funciones generales se encuentran en la parte superior del archivo
combate.h. Son útiles porque automatizan algunas acciones importantes de la librería y están disponibles también para el usuario.

[enQueLugar x;
  if (parent(x) == nothing)
    return x;
  else
    return enQueLugar(parent(x));
];

[numBalasDisparadas;
  return children(LugarBalasPerdidas);
];

La primera función devuelve el lugar donde está un objeto. Es una llamada recursiva a sí mismo, hasta que encuentra el objeto "sin padre". La segunda devuelve el número total de balas que se han disparado (de todas las armas).

[ultimoPSIGuerreroAtacante x toret;
  toret = nothing;
  objectloop (x ofclass PSIGuerrero)
  {
    if (x.devUltimoTurnoAtaco()) {
      toret = x;
      break;
    }
  }
  return toret;
];

[ultimoPSIGuerreroAtacado x toret;
  toret = nothing;
  objectloop (x ofclass PSIGuerrero)
  {
    if (x.devTurnoAtacadoPorUltimaVez()) {
      toret = x;
      break;
    }
  }
  return toret;
];

[buscaArmaDeDefensaEn obj x toret;
  toret = nothing;
  objectloop (x in obj)
  {
    if ((x ofclass arma_defensiva || x ofclass arma_mixta)
      && ~~(x ofclass armaDeFuego)) ! Hay que dispararlas, no valen
    {
      toret = x;
      break;
    }
  }

  return toret;
];

[buscaArmaDeAtaqueEn obj x toret;
  toret = nothing;
  objectloop (x in obj)
  {
    if ((x ofclass arma_ofensiva || x ofclass arma_mixta)
      && ~~(x ofclass armaDeFuego)) ! Hay que dispararlas, no valen
    {
      toret = x;
      break;
    }
  }

  return toret;
];

[buscaArmaEn obj toret;
  toret = buscaArmaDeAtaqueEn(obj);
  if (toret == nothing)
  toret = buscaArmaDeDefensaEn(obj);

  return toret;
];

[armaDisparada x toret;
  toret = nothing;

  objectloop(x ofclass armadefuego) {
    if (x.devDisparadoEnTurno()==turnos) {
      toret = x;
      break;
    }
  }

  return toret;
];

Las anteriores funciones son todas muy parecidas. Se trata de encontrar a los últimos guerreros que han atacado o se han defendido últimamente. Las últimas permiten localizar armas de alguna clase dentro de algún objeto (presumiblemente, otro guerrero).

Cambiando el juego
Para aprovechar las nuevas características de la librería, será necesario incluir algunas partes más. Para empezar podemos incluir una espada. Por otra parte, vamos a incluir un guardia que no nos permitirá salir hasta que le venzamos.

armaBlanca espadaToledana "espada" mostrador
  private
    poder_ofensivo 15,
    poder_defensivo 15
  with
    nombre_m 'sable',
    nombre_f 'espada',
    adjetivos 'toledo' 'toledana' 'espanola',
  with
    descripcion "Es una espada de fabricación Toledana."
  has
   
femenino;

La espada (un arma mixta) está ahora en el mostrador, disponible para el jugador.

PSIGuerrero guardia "guardia" pasillo
  private
    suerte 5,
    habilidad_of 10,
    habilidad_def 6,
    nivel_vida 100
  with
    nombre 'guardia' 'jaime' 'guardian' 'centinela',
    describeme [;
      if(self.estaVivo())
      {
        return "Es Jaime, el guardia de la sala de tiro.
          Probablemente esté enfadado por la pasta que no le has devuelto
          últimamente ...";
      }
      else return "Jaime la ha diñao ... gracias a ti ...";
    ],
    antesDeRecibirAtaque [ atacante elarma;
      if (elarma ~= nothing)
        print "^^", (name) atacante, " ataca a Jaime con ", (el) elarma, ".^";
      else
        print "^^", (name) atacante, " ataca a Jaime con sus manos desnudas.^";

      return true;
    ],
    despuesDeRecibirAtaque [ atacante elarma puntosperdidos;
      print "Jaime ha perdido ", puntosperdidos, " de vida.^";
      return true;
    ],
    antesAtacar [objetivo;
      "El guardia te mira con fiereza.";
    ]
;

Este es el gran protagonista de la aventura. Nuestro Jaime defenderá intrépidamente la entrada de la sala de tiro. Y cada vez que te vea, intentará zurrarte, no lo dudes. Sería interesante una combinación de esta librería y la PNJMovil, ¿no creéis?

A Jaime podremos atacarle con la espada, con el cetme, la pistola o las manos desnudas. Para atacarle se utiliza el método habitual (la propia librería buscará el arma adecuada) o el de las armas de fuego que, como vimos en la entrega anterior, era diferente (cargar, apuntar y disparar).

Guerrero jugator
  private
    suerte 5,
    habilidad_of 10,
    habilidad_def 10,
    nivel_vida 100
  with
    nombre 'luis',
    descripcion "... vaya, tienes el cuerpo de goma ...",
    antesDeRecibirAtaque [atacante elarma;
      print "El ataque ", (del) atacante, " rebota en tu cuerpo de goma.^";
      rfalse;
    ],
;

[Inicializar;
  cambiarjugador(jugator);
  guardia.cambiaObjetivo(jugador);
  localizacion = salaDeTiro;

  "Un largo y frustrante día de trabajo ...
    esperas poder relajarte en la sala de tiro, afinando tu puntería ...^";
];

Como vemos, en el caso del jugador, ningún ataque puede detenerle, ya que lo impedimos con el gancho antes...(). Por último, sólo es necesario crear al jugador en la función de inicialización, además de instruir al guardia para que intente cepillarse al jugador.

... y ... ¡eso es todo, amigos!

Conclusiones
En esta entrega, hemos introducido ya a los combatientes en nuestras refriegas por la sala de tiro. Ahora el juego es un poco más interesante, de forma que podemos cargarnos al pobre Jaime con varias armas. De hecho, no se puede cruzar la puerta sino es cargándose al sufrido guardián.

Hemos vuelto a comprobar las posibilidades de los ganchos, que se ejecutan antes y después de las acciones cruciales y permiten modificar el comportamiento de la librería, sin tocar una línea de código. Así, al protagonista en esta entrega le rebotan todos los ataques.

En la siguiente parte de la entrega, puliremos estas nuevas características y añadiremos algunas otras que conformarán un conjunto más trabajado.

Referencias
[1] Disponible en SPAC 25 (http://usuarios.lycos.es/SPAC/) y en la página (http://usuarios.lycos.es/elarquero/) del autor (baltasarq@yahoo.es).

Baltasar el Arquero

subir al índice

¿Programar sin aprender?
por Presi

La verdad es que no había planeado escribir este articulillo, ha sido como un impulso, más que nada quiero desarrollar una opinión con la que estoy totalmente de acuerdo, una expresada por Zak en algún mensaje en la lista (1) hace poco.

Desde hace algún tiempo, la entrada de nuevos al mundillo está siendo bastante prolífica, la verdad es que siempre ha habido nuevos (y otros tantos viejos que se van, todo sea dicho), incluso yo una vez fui nuevo, y no hace tanto de eso, desde finales de 1999, época que fue denominada como el resurgir pero la verdad es que a cada momento parece que estamos resurgiendo.

La cuestión es que, últimamente se está erigiendo un nuevo perfil de aventurero newbie, aquel que en sus épocas como infante tuvo algún que otro contacto con los clásicos del género como las aventuras de AD en la mítica y venerada plataforma Spectrum. Más tarde por azares de la vida, dejó de tener contacto con aquello para, en la actualidad y a través de Internet, darse cuenta de que aquello aún existe, sí, inexplicablemente aún continúa, aún hay gente que desperdicia su tiempo en estas cosas, y lo candente es que el recién llegado, que ya no es un niño, ¡también quiere, aparte de jugar, desarrollar aventuras!

Y aquí es donde empieza a destaparse el pastel, después de inevitablemente preguntar en la lista (1) qué herramientas debería usar o cómo debería empezar, se encuentra con toda clase de opiniones para toda clase de gustos. Esto es bueno, en la diversidad está la riqueza y lo ideal es que él mismo pruebe las alternativas y decida qué es lo más apropiado para él.

El verdadero problema viene ahora, cuando nuestro sujeto no tiene conocimientos de programación o más genéricamente de desarrollo de software, no es un informático o pseudoinformático como muchos de nosotros, aunque la verdad, tampoco hace falta serlo, el problema es que quieren hacer aventuras con un entorno lo más para tontos posible, y sin aprender a programar.

La creación de aventuras, hoy por hoy, y con las herramientas actuales, se basa en la programación, eso es un hecho, como bien decía Zak en su mensaje, requiere de conocimientos de programación, obviamente existen algunos entornos que facilitan o dan la ilusión de que esos conocimientos no son tan imprescindibles, todo ello a cambio, claro, de obtener una aventura con una estructura más o menos prefabricada y con unas limitaciones claras, personalmente creo que eso no es bueno para la creatividad y la innovación. Todo esto sería comparable a alguien que quiere ser camionero, pero que quieren serlo sin aprender a conducir o sin sacarse los permisos reglamentarios, sí, puede que a base de pulsar los pedales o girar el volante aleatoriamente consiguiera mover un poco el camión pero de ahí a conducirlo hay un buen trecho. Pues más o menos ocurre lo mismo con las aventuras: en mi humilde opinión se pueden hacer atisbos de lo que sería una aventura, pero nunca una aventura hecha y derecha. Al menos con las herramientas actuales, no niego que quizá en un futuro pudiera desarrollarse un entorno declarativo de desarrollo de aventuras, en el cual se describiera con todo detalle cómo es la aventura y el funcionamiento estuviera implícito en esa descripción, no haría falta programar explícitamente el comportamiento. De hecho hace algún tiempo se estuvo hablando de cómo sería algo así, pero al final, como tantas otras cosas quedó en nada, o si no, se está llevando su desarrollo en secreto ;).

Por supuesto, no todos los nuevos son así, hay muchos que realmente quieren aprender, pero este es un prototipo que he detectado. A los posibles aludidos por favor que no se lo tomen a mal, mi intención no es otra que hacer sugerencias con el fin de que la producción aventurera mejore en calidad y que si se lo proponen de verdad pueden conseguirlo, si no que le pregunten a Jenesis que hasta hace pocos meses no sabía nada de InformATE!, y ahora la tenéis desarrollando aventuras que enseñan a jugar a los nuevos que nunca lo han hecho (estos sí son nuevos de verdad).

(1) Lista CAAD: http://es.groups.yahoo.com/group/caad

Presi

subir al índice

Introducción práctica a los juegos de aventuras
por el Clérigo Urbatain

Sobre ejemplo_de_aventura:
Siempre que realizo un juego, dejo las instrucciones para el final, y siempre al final son un compendio desafortunado e improvisado de los comandos del juego. Por eso decidí hacerme unas instrucciones definitivas para ponerlas en todos mis juegos. El resultado no es 100% original mío, pues he aprovechado un texto de un libro, que refleja a la perfección lo que es una aventura. He decidido publicar esto en SPAC, para que todo el mundo se beneficie si quiere de tal texto. Disfrutadlo.


(Extracto del libro 'Técnica y práctica de los juegos de aventuras' de Tony Bridge y Roy Carnell; retocado y adaptado ligeramente para que tenga sentido como ejemplo de cómo jugar aventuras).

Las aventuras más clásicas contienen muchos tesoros que hay que recoger a lo largo del juego. Cada uno de ellos proporciona un cierto número de puntos.

Examinemos la siguiente situación. Usted se encuentra en un largo corredor, en un complejo de cuevas. Se ha llegado hasta aquí después de haber recogido tesoros y otros objetos. Para averiguar lo que realmente lleva teclee la palabra 'INVENTARIO'. Aunque suele bastar con 'I' o 'INV'. El ordenador replica:

USTED LLEVA:

-El Yelmo Mágico
-El Anillo de Oro
-El Escudo de Bronce
-La Historieta
-El Ópalo de Fuego
-Los Guantes Marrones

SE ENCUENTRA EN UN LARGO CORREDOR. AL OESTE SE VE UNA OSCURA CAVERNA.
¿Y AHORA QUÉ?

Bien, podríamos probar lo siguiente:

>IR AL OESTE

Esto puede ser a menudo peligroso. El autor probablemente nos está probando, y pondrá toda clase de trampas por este complejo de cuevas. El mensaje siguiente es frecuente:

HA RESBALADO EN LA OSCURIDAD Y SE HA ROTO LA CABEZA.
¿QUIERE JUGAR OTRA VEZ, S/N?

Pero ya se nos ha advertido previamente de la falta de luz en la cueva y no se nos ha dicho nada sobre una fuente de luz en el corredor, por lo que es razonable suponer que habrá luz de alguna clase en dicho corredor. Antes de arriesgarnos a entrar es conveniente hacer:

>SAVE

ó

>GRABAR

que permite conservar previamente nuestra posición en el juego (cualquier programa razonable lo permitirá antes de correr ningún riesgo, por lo que será fácil, en caso de morir en el juego, reanudarlo antes del peligro). Así que, previamente conservando nuestra posición, nos decidiremos a arriesgarnos echando una ojeada a la cueva. Escribimos:

>O

u

>oeste

y el ordenador responde:

SE ENCUENTRA AHORA EN LA CUEVA OSCURA. UNA DÉBIL LUZ BRILLA EN LA ENTRADA DETRÁS DE USTED. SERÁ MEJOR QUE OBTENGA ALGUNA LUZ RÁPIDAMENTE.
¿Y AHORA QUÉ?

Probemos esto:

>LEER LA HISTORIETA

Ingenioso, pero no es muy bueno, me temo. El ordenador meramente repite su mensaje:

AQUÍ HAY OSCURIDAD, ES MEJOR QUE CONSIGA ALGUNA LUZ.

¡Tampoco esto es demasiado bueno! Los programas de aventuras sólo le dejan frecuentemente tambaleante en la oscuridad durante un corto rato, o se permiten dar un par de vueltas antes de decidir que no tienen ni la más ligera idea de cómo proseguir y le lance, sin ceremonias, a una helada corriente de agua submarina, o le deje que se estrelle contra una roca que cuelga del techo. Cualquiera que sea el método escogido, el programa llevará el juego a un rápido final.

¿Pero qué es esto? Algo nuevo aparece en la pantalla:

SIENTE COMO UNOS VISCOSOS TENTÁCULOS LE RODEAN LAS PIERNAS. ES UN PEQUEÑO PULPO.

Ahora el pulpo se encuentra a mano. Por consiguiente:

>COGE EL PULPO

Y el ordenador replica:

¡UF!, NO, GRACIAS. ES MUY VISCOSO.
¿Y AHORA QUÉ?

>PONTE LOS GUANTES
ESTÁ BIEN. AHORA LLEVO LOS GUANTES MARRONES.
¿QUÉ HAGO?

>COGE EL PULPO
YA TENGO EL PULPO. MUCHAS MANOS HACEN EL TRABAJO LIGERO. UNA DÉBIL LUZ EMANA DE UNA FUENTE INVISIBLE. SE ENCUENTRA EN UNA PEQUEÑA CUEVA. AQUÍ HAY UNA PEQUEÑA CAJA DE MADERA. HACIA EL NORTE SE VE UNA CORRIENTE SUBTERRÁNEA QUE FLUYE DE UNA GRIETA EN LA ROCA. A TRAVÉS DE LA GRIETA SE PUEDE DISTINGUIR ALGO QUE BRILLA EN LA OSCURIDAD.
¿Y AHORA QUÉ?

¡Ja! ¡Ja! ¡Otro tesoro! ¡Debemos cogerlo! Envalentonados por la justificable satisfacción del éxito al coger el pulpo, atacamos el siguiente problema con placer. ¿Cómo vamos a coger aquel oro en la cueva siguiente? Podemos intentar seguir la ruta directa, escribiendo:

>N (por NORTE)

NO SE PUEDE IR POR AHÍ.
¿Y AHORA QUÉ?

Esto es sorprendente. El maldito ordenador no parece muy impresionado con nuestras anteriores deducciones brillantes, ¡y sigue poniendo trabas a nuestra marcha! Tiene que haber una forma de pasar por la grieta. ¿Quizá llevamos demasiadas cosas y no hay espacio suficiente?

>TIRAR TODO
VALE.
¿Y AHORA QUÉ?

>N
NO SE PUEDE IR POR AHÍ.
¿Y AHORA QUÉ?

¿Y si probamos a echarnos al agua? Podríamos nadar o dejarnos llevar por la corriente.

>SALTAR AL AGUA
DEBE DE ESTAR DE BROMA. ¡YO NO PUEDO RESPIRAR DEBAJO DEL AGUA!
¿Y AHORA QUÉ?

¡Ejem! Esto se está poniendo difícil. ¿Hay algo que nos pueda ayudar en la cueva? Sólo hay un montón de cosas en el suelo que son los tesoros que tiramos hace un momento pero nada de esto nos sirve. ¡Espera! ¿No hay una caja allí? ¿Cómo hemos podido olvidarlo?

>EXAMINAR LA CAJA
USTED VE UNA PEQUEÑA CAJA DE MADERA.
NO HAY NADA INUSUAL.

¡Los ordenadores suelen ser bastante pedantes!

>ABRIR LA CAJA
ESTÁ BIEN. LA CAJA ESTÁ ABIERTA. DENTRO SE VE UN EQUIPO DE BUCEO.

¿Un equipo de buceo? ¿Y una corriente submarina?

>COGER EL EQUIPO DE BUCEO
VALE.

>I (de inventario)
USTED LLEVA:
EL EQUIPO DE BUCEO
LOS GUANTES MARRONES PUESTOS

>M (de mirar)

Que nos repite la descripción de esta localidad al lado de la corriente submarina y además:

ADEMÁS HAY AQUÍ EL YELMO MÁGICO, EL ANILLO DE ORO, EL ESCUDO DE BRONCE, LA HISTORIETA, EL ÓPALO DE FUEGO Y UNA PEQUEÑA CAJA ABIERTA.

¡Eso es mucho para llevar! Espere un momento, la caja puede ser útil. Se nos ha dicho que es pequeña pero puede contener todo lo que queremos llevarnos ¡y quizá flote!

Ahora podemos probar:

>COGE EL ANILLO
ESTÁ BIEN.
¿Y AHORA QUÉ?

>METE EL ANILLO EN LA CAJA

ó

>PONER EL ANILLO EN LA CAJA
ESTÁ BIEN.
¿Y AHORA QUÉ?

>MIRA

Y vemos la misma lista de antes salvo por una diferencia al final:

Y UNA CAJA PEQUEÑA ABIERTA. CONTIENE EL ANILLO DE ORO.

¡Funciona! Ahora tenemos que repetir el proceso con el resto de los tesoros. Después de un tiempo tecleando en el ordenador, otro MIRAR nos informa que la caja ahora tiene nuestros duramente ganados tesoros. El pulpo lo conservamos de momento. Probemos ahora:

>LANZA LA CAJA AL AGUA
ESTÁ BIEN. LA CAJA SALE LENTAMENTE DE NUESTRA VISTA PASANDO POR LA GRIETA ENTRE LAS ROCAS.

Hagamos lo mismo con el pulpo. El ordenador nos dice que el pulpo también ha desaparecido de nuestra vista. Ahora escribiremos:

>SALTAR A LA CORRIENTE

Y el ordenador nos dice:

DEBE DE ESTAR BROMEANDO. ¡NO PUEDO RESPIRAR BAJO EL AGUA!

¡Qué lata! Tenemos que repetir todo el repertorio en beneficio del ordenador.

>PONTE EL EQUIPO DE BUCEO
ESTÁ BIEN. YA TIENES PUESTO EL EQUIPO.
QUE ME AHOGO. ¡HAGA ALGO, POR FAVOR!

¡Maldita sea! ¡Hemos olvidado algo!

>ABRIR VÁLVULA.
ESTÁ BIEN. LA VÁLVULA DE AIRE ESTÁ ABIERTA AHORA.
¿Y AHORA QUÉ?

>SALTA A LA CORRIENTE
ESTÁ BIEN. LA CORRIENTE LE LLEVA RÁPIDAMENTE POR LA GRIETA DE LA ROCA DE LA CUEVA. EL PULPO HA PASADO ANTES. MUCHAS MANOS HACEN EL TRABAJO LIGERO. POR ENCIMA DE USTED SE ENCUENTRA LA ORILLA DE LA CORRIENTE.

Respiramos con alivio. Ahora tenemos que salir de la corriente.

>ARRIBA
ESTÁ BIEN.
USTED SE ENCUENTRA EN UNA GRAN CUEVA.
VE UNA PEQUEÑA CAJA. ESTÁ ABIERTA Y CONTIENE MUCHOS TESOROS.

(¡Pero espere un momento antes de recogerla!)

TAMBIÉN SE VE:
UN DRAGÓN DURMIENDO. SUS ESCAMAS BRILLAN A LA LUZ. ¡NO TODO LO QUE BRILLA ES ORO! SE ESTÁ MOVIENDO.
¿Y AHORA QUÉ?

¡Vaya pregunta! Bien, ¿y qué hacemos ahora?

Este es un ejemplo de los típicos problemas que se encuentran en una aventura tradicional. Una serie de problemas relacionados entre sí que conducen finalmente a un resultado. En nuestro ejemplo ha sido un montón de problemas pero, por supuesto está la posibilidad de que al final se lleve el tesoro y salga sano y salvo del encuentro con el dragón.

Después de estos primeros titubeantes intentos con una aventura se habrá conseguido tener una idea de lo que es jugar las aventuras de texto o aventuras conversacionales, y espero que se sienta motivado para jugar a otras por sí mismo.

El Clérigo Urbatain

subir al índice

Licencia general pública de aventuras conversacionales
por Emily Short, traducido por el Clérigo Urbatain

Al igual que me pasaba con la incorporación de las instrucciones a una aventura, el apartado de la licencia siempre me ha supuesto un agobio insufrible, haciendo al final, licencias demasiado cutres y poco claras. Afortunadamente Emily Short ya pensó esto antes y ha redactado una licencia general de aventuras que yo he traducido y que os facilito para que la aprovechéis para vuestros juegos, si repetir lo de la licencia una y otra vez en cada juego os supone un suplicio insufrible como a mí.


LICENCIA GENERAL PÚBLICA DE AVENTURAS CONVERSACIONALES

1. Esta licencia te permite usar y distribuir <el_juego> bajo ciertas condiciones tal y como se detalla más abajo. No puedes usar este programa si no estás de acuerdo con estas condiciones. Si tienes alguna pregunta acerca de la licencia, por favor contacta conmigo. En el momento de escribir esto puedo ser encontrado vía email en <email_del_autor>

2. <el_juego>, incluyendo todos sus ficheros asociados así como cualquier fichero de texto producido por el comando Transcripción, es copyright 2003 <el_autor>.

3. Se te permite usar <el_juego> y hacer copias para tu uso personal sin restricción alguna. Incluso puedes copiar y distribuirlo en cualquier medio, siempre que el juego y todos sus ficheros asociados no se modifiquen. Puedes cargar un precio razonable por el acto físico de transferir una copia, y por el coste del medio de distribución.

No se te está permitido distribuir <el_juego> comercialmente (por ejemplo, con ánimo de lucro), ya sea como un producto único, o como parte de una compilación o antología, sin permiso previo.

4. LIMITACIÓN DE RESPONSABILIDAD: <el_juego> es distribuido y tiene licencia libre de cargo, y no hay garantía, expresa o implícita. El autor no garantiza la conveniencia de <el_juego> por cualquier propósito en particular y no se hace responsable por cualquier pérdida o daño causado por el uso de o por incompetencia al usarlo.

Emily Short, traducido por El Clérigo Urbatain

subir al índice

El Arte de la Aventura (IX)

Capítulo 51 - La descripción de la localidad

Cuando se comienza a codificar lo que se ha diseñado, es muy tentador dar a las localidades una descripción temporal ("Sala de la losa", "Claustro"), y dejar su escritura para más tarde. No hay nada más deprimente que afrontar un conjunto de 50 descripciones de localidades a escribir, todas a la vez, y sentir cómo el entusiasmo desaparece al mismo tiempo. (Lo mismo puede aplicarse a hacer un diseño sobredetallado de todo antes de programar). Además, cuando se testean las localidades apropiadas, uno no tiene ninguna idea de qué tipo de juego parecerá, excepto que tendrá parches, y esto también es deprimente. Escribir las descripciones de las localidades también fuerza al diseñador a pensar para qué será la localidad en último término. La mayoría de los diseñadores prefieren por ese motivo escribir unas pocas cada vez, al mismo tiempo que avanza la programación, pero al menos escribirlas apropiadamente: y modificarlas luego para ganar consistencia o por tener una segunda idea.

En cualquier descripción de una localidad hay normalmente de uno a tres elementos esenciales para continuar, y el resto es mejor cortarlo o dejarlo como texto que aparecerá sólo si el jugador elige examinar algo en particular. Sin embargo, incluso los cruces o intersecciones más tediosos merecen una descripción, y la descripción es algo más que un listado de salidas. Aquí tenemos algunas de las más conseguidas de 'Advent' (traídas de la versión traducida de Zak):

Habitación de las Conchas
Estás en una gran habitación excavada en roca sedimentaria. El suelo y las paredes están sembradas de trocitos de concha incrustados en la roca. Un pasadizo no muy empinado lleva hacia abajo, y otro ligeramente más inclinado lleva hacia arriba. Un pasadizo de andar a gatas entra desde el sur.

En el Pasadizo de Caliza
Estás caminando por un pasadizo ligeramente inclinado en dirección norte/sur, flanqueado de formaciones calizas de formas caprichosas.

Nótese la geología, el sutil desnivel del suelo y la variación en el tamaño de los túneles. Nada ocurre aquí, pero parece ser un lugar real.

Es mejor omitir las descripciones frívolas de localidades si éstas van a visitarse a menudo. El humor fino es más duradero:

Sobre la pared de la cama hay un espejo, de cuerpo completo, ligeramente curvado. Reflexionas en él por un momento.

(Sacado del juego de la Universidad de Cambridge 'Xenophobia' (Jonathan Mestel, 1989). Esta redacción es correcta en el sentido que se aplica de igual modo tanto al visitante que llega por décima vez como al visitante que llega la primera vez, mientras que un texto como "Atónito de verte en un espejo, das un salto atrás...", no se puede aplicar de igual modo). Se puede decir que una vez por juego el autor podría salirse con la suya al escribir algo como:

Observatorio
Calvin Coolidge una vez describió las ventanas como "rectángulos de cristal". Si fuera así, podría estar pensando en la ventana que ocupa la pared oeste de esta habitación. Un armario pequeño se encuentra al norte. Hay una señal pegada cerca de las escaleras que conducen arriba y abajo.

Un fragmento característico de 'Leather Goddesses of Phobos' de Steve Meretzky (1) demuestra las penas por las que pasa uno al tener que describir un cruce común y corriente con alguna ventana. La frase que Meretzky trata de evitar a duras penas es "Puedes ir arriba, abajo o al norte". Con cuidado es incluso hasta posible eliminar la mención a las salidas de la localidad de forma seguida, pero sólo si esa información se presenta de otra forma. Por ejemplo:

Cueva oscura
Diminutas luces se filtran en esta embarrada cueva con huesos dispersos en la que siempre anhelas algo de aire fresco. Extrañas burbujas, latentes y cambiantes como si estuvieran vivas, cuelgan de la roca en irregulares ángulos.
Algunos cangrejos negros corren por tus pies.

> sur
La única salida es volver por el norte a la orilla.

Aquí, el lugar reservado para el típico "No puedes ir por ese camino." se ha aprovechado para describir la salida de la cueva.

Los jugadores con experiencia conocen las variadas fórmulas que pueden usarse para el núcleo de las descripciones de localidades: "Estás en...", "Esto es un...", "Te encuentras en...", "Has llegado a..." y demás. Por esto, quizá, es por lo que algunos diseñadores prefieren descripciones impersonales para las localidades, sin mencionar el "tú" a no ser que haya que decir algo diferente al hecho de que estás presente en el cuarto. Una vez en el texto, como en toda redacción, el vocabulario también cuenta. Si hay un árbol, ¿de qué especie es? Si es una silla... ¿de qué estilo? ('Cutthroats' (Mike Berlyn y Jerry Wolper, 1984) describe un armario de ningún interés particular como una 'torcida cajonera de madera' para adornar la escena). La descripción de las localidades no debería describir siempre cosas estáticas y fijas, también debería traer otras cosas a los sentidos además de lo que se ve, que no debe ser siempre monocromo. Las repeticiones y descripciones sencillotas deben ser siempre evitadas a cualquier coste:

Estás en una entrada serpenteante que da a una puerta espectacular. Las salidas llevan al oeste a una cabaña, arriba a una enredadera y dentro a través de la puerta. Puedes ver una enredadera.
> oeste
Estás en una cabaña del pantano. Las salidas llevan al este a una entrada serpenteante y al oeste a un jardín con hierba. Puedes ver una linterna y una pila de leña.

('The Price of Magik', micro versión de la BBC - en la posterior versión de Amiga, el relanzamiento de la trilogía 'Time and Magik', la entrada serpenteante se describía en un texto de unas 80 palabras, y evitó por completo la automáticamente generada frase "las salidas son"). Tampoco es bueno pasarse. Lo siguiente, sacado de nuevo de 'Advent', es aún más peligroso: una mediocre descripción de localidad:

En la Caverna con la Cascada
Estás en una magnífica caverna con un impetuoso arroyo, que cae a través de una chispeante cascada en un rugiente remolino que desaparece por un agujero del suelo. Hay pasadizos que salen hacia el sur y el oeste.

Parece un intento bastante decente, pero ningún novelista escribe así. Cada sustantivo importante (caverna, arroyo, cascada, remolino), tiene su propio adjetivo (magnífica, impetuoso, chispeante, rugiente). La enunciación de la frase con dos "que", queda un poco mal. Lo de la cascada está bien, ¿pero acaso cae un arroyo a través de una cascada? ¿Realmente un remolino puede desaparecer? Lo del agujero en el suelo queda un poco incongruente. Seguramente estará bajo agua, muy profundo bajo el agua. La disposición geográfica de los elementos puede usarse mejor, lo que ayudaría a situar la cascada dentro de la cueva (¿está en medio, o en un borde?). ¿Y por qué hablar de sala (room en el original) de la cascada (algo que suena a un balneario)? Aquí tenemos una segunda versión:

Cornisa de la cascada
El camino se curva unos 90 grados del sur al oeste alrededor de una cornisa rota de esta caverna. Una cascada cae de la oscuridad, atrapando en su camino los destellos de luz de la linterna. La fuerte corriente de agua azota contra otra catarata inferior.

Incluso así, no hay nada hecho por el hombre, nada vivo, ningún color, y además parece que falta el elemento esencial de cualquier cascada subterránea que haya visto, así que añadamos un segundo párrafo (con un salto de línea para hacerlo más fácil para el ojo):

Algas turquesas cuelgan como racimos de uvas de los viejos raíles, que se han oxidado casi por completo debido a la atmósfera húmeda y glacial.

Las algas y los raíles ofrecen muchas posibilidades. Quizá haya ranas que coman larvas de las algas, o quizá el jugador pueda encontrar un uso al óxido, y pueda rasparlo de los raíles. Seguramente se romperán si se ata a ellos una cuerda. ¿Será seguro zambullirse? ¿Tendrá el agua un efecto hipnótico en alguien? ¿Hay algo seco que pueda humedecerse si el jugador lo lleva hasta aquí? ¿Podría haber una segunda cornisa más alta por la que la cascada caiga hasta esta cueva?

La falta de variedad puede aparecer de muchas formas. El undécimo juego de Brian Howarth de la serie 'Mysterious Adventures', escritos para el motor de juego de Scott Adams, inventó algunos desarrollos interesantes, ('Feasibility Experiment' (1982), con objetos como "sombras borrosas", merece un vistazo) pero son bastante repetitivos y difíciles de distinguir. La principal debilidad de 'Enchanter' era un mapa disperso, repleto de localidades, especialmente en el prólogo, muchas de las cuales ya describían parte de lo que encontrabas en las cercanas. Ligeramente en la línea con los tradicionales juegos de mazmorra, 'Enchanter' mezcla en una escena horrible: hierba marchita "que parece agarrarse a tus pies" y una estatua demoníaca "que parece acercarse hacia ti". Hay un montón de movimiento "aparente", porque los extensos escenarios son muy estáticos: "Olas lánguidas apenas mueven los restos flotantes" resume bien esto. El resultado habría sido mediocre de no ser por los excepcionales puzzles del juego, y por algunas localidades interiores. Aquí hay otro claro ejemplo del interior de una localidad panorámica, desde la que se divisa y dibuja gran parte del mapa completo:

Sala de mapas
Esta localidad en la alta torre parece ser una sala de mapas, con centenares de mapas antiguos cubriendo las paredes. Un globo enorme, hecho de oro, se sitúa en un pedestal en el centro de la habitación. A través de las ventanas de la torre puedes ver un vasto bosque que se extiende al noreste, y el mar, cubierto por la niebla, al este y al sur. Unas escaleras al sur te conducen a la base de la torre.

Es un tema controvertido cuánto debe ocupar una localidad. Normalmente una localidad representa una habitación individual, y quizá diez metros como mucho. En la práctica las grandes salas normalmente ocupan varias localidades, así como una sala con un gran globo en el centro podría dividirse en esquinas con nombres como "Esquina noroeste de la sala de baile", o "Esquina sudoeste de la sala de baile". La "enorme caverna de 3.000 pies de diámetro" de 'Acheton' ocupa no menos de 16 localidades, que aunque expresa un concepto de espacio amplio puede ser un derroche de localidades y algo bastante repetitivo.

En el otro extremo, a veces es necesario que una única localidad abarque mucho territorio, especialmente al aire libre, cuando dibujar el mapa puede dejar a uno con la misma frustración que el diseñador de decorados de una ópera wagneriana: todo es indistinto y sin bordes. 'Spellbreaker', con restricciones ajustadas de recursos para localidades, incluye praderas y volcanes cada una en una localidad. En el lado contrario tenemos la distinguida y convincente 'Gateway to Karos' (Derek Haslam, 1984). Las localidades equivalen a cuadrados de un mapa de rejilla con ríos, acantilados, bosques y todo lo demás de la isla de Karos, por lo que cada localidad representa, más o menos, un kilómetro cuadrado:

Tierras del Este
Estás en un conjunto de edificios abandonados, sin tejado, que aparentemente forman parte de una complejo de lavado de mineral. Un cauce seco corre hacia el norte, y un sendero conduce al oeste.
Una pala de jardín, muy usada pero aún fuerte y con filo, yace abandonada aquí.

(Hay como una docena de localidades vecinas que comparten el nombre corto de "Tierras del Este). Una posición intermedia entre 'Spellbreaker' y 'Gateway to Karos' la adopta 'She´s Got a Thing for a Spring' (1997), que es una evocación de la naturaleza de fotógrafo de Brent Van Fossen de las montañas del noroeste de América. Casi como una postal interactiva, este atractivo juego además de recrear meticulosamente renos, alces y demás, también recrea meticulosamente el terreno y la vegetación:

Cañón de Granito
Estás en un saliente de lo que parece ser un pequeño cañón, aparentemente cavado por la cascada cercana y una caída de unos 7 ó 10 metros. Un camino rocoso llega desde el lado oeste por detrás de una maraña de zarzamoras, y muere en una cornisa que asoma a la cascada inferior. Sobre ti, las paredes de granito continúan ascendiendo, las piedras rosas ofrecen un bonito contraste junto al claro cielo azul. Un sendero de animales sube hacia arriba, demasiado escarpado para subir por él, aunque quizá serías capaz de hacerlo con mucho esfuerzo.

Tras de ti aparece una pequeña torre que sostiene el final de un cable de acero. El extremo de una rama de abeto es apenas visible muy dentro de la zarza.

Una localidad sencilla puede también sustituir una extensión infinita, como ocurre en el camino interminable de 'Jinxter'.

Otro aspecto a considerar en localidades externas es que el lento proceso del amanecer y atardecer debería afectar sus descripciones. 'Christminster' organiza el tiempo de manera que mantiene al jugador en interiores entre las siete y las diez de la noche, por lo que sólo se necesitan dos estados, el pleno día y la plena noche. 'A Mind Forever Voyaging' consigue un gran impacto en la descripción de la decadencia de una misma ciudad en periodos de 10 años cada uno, del mismo modo que avanza la historia clásica de HG Wells 'Things to Come'. El juego de estos últimos años que es insuperable en sus descripciones dinámicas es 'A Change in the Weather', de Andrew Plotkin (1995):

Estás al borde de una cornisa, bastante escarpada, de aspecto descuidado. El follaje esconde la cascada que hay abajo y en la cima de la colina; los prados y el cielo se extienden más allá hacia el incandescente oeste.

Estás al borde de una cornisa, más bien escarpada, de aspecto descuidado. La lluvia esconde la cascada que hay abajo y en la cima de la colina, al oeste sólo hay oscuridad.

Las descripciones se alteran no sólo con el paso del tiempo, sino también por diferentes perspectivas. El ejemplo más señalado es el complejo de 'Suspect', con el jugador en animación suspendida que controla robots con diferentes sentidos de la percepción. Aquí está el mismo lugar, desde cuatro puntos de vista:

Estoy en una gran habitación que parece estar dentro de una esfera. Las paredes parecen tener cables en relieve, arremolinándose alrededor de todo el perímetro, hasta una columna alta. La columna en sí misma tiene una puerta en uno de sus lados. Las salidas conducen al oeste, sur, este y noreste.

El sonar indica una gran y esférica área abierta con una columna hueca que va desde el suelo al techo. La columna refleja la señal del sonar de forma uniforme, indicando que no hay ninguna característica externa distinguible.

En todo mi alrededor fluyen cargas, a las que la misma naturaleza de este cuarto ha dado forma. Los electrones están siendo canalizados hacia una columna eléctrica, central en este entorno.

Un pequeño zumbido puede detectarse de una columna que se extiende del suelo al techo.

Otro recurso, usado en el thriller de espías 'Border Zone' (Marc Blank, 1987), es responder a las direcciones no con una descripción de la nueva localidad, sino con la forma que has tenido de llegar ahí.

>este
Abres la puerta y atraviesas el pasadizo. Revisas el pasadizo, notando guardias en cada extremo, y con ametralladoras a sus lados. No recuerdas haberlos visto al principio del viaje, así que sólo puedes suponer que la seguridad ha sido reforzada en la búsqueda del agente americano.
>mirar
Fuera de tu compartimento
Estás en un pasadizo que corre a lo largo de la longitud del coche. En cada extremo del pasadizo permanece un guardia, con una ametralladora a su lado. Justo ahora, estás fuera de tu propio compartimento.


REFERENCIAS
Mike Berlyn (XYZZYnews 17) agrupa estas cuestiones bajo el encabezado de Tamaño/Alcance, Techos, Suelo, Paredes, Luces y Estado de Ánimo ("una persona deprimida seguramente no tendrá almohadillas amarillas y rojas": oh?).
Gerry Kevin Wilson ofrece tres "no hagas" para las descripciones de localidades: "1. No menciones las acciones del jugador en la descripción; 2. No menciones objetos movibles en la descripción; 3. No excedas una pantalla llena de texto en una descripción."
"Muy a menudo, un mapa con el plano de un edificio puede sugerir un elemento de trama que ningún pensamiento abstracto pueda igualar" (Gil y Beryl Williamson, en Computer Adventures - The Secret Art)
Quizá, la frase más sabia de todas: "Es horrible sentarte y pensar 'Tengo que escribir cincuenta descripciones hoy, y cada una de ellas debe ser clara, fresca y viva, y que al mismo tiempo transmita la información exacta que quiero transmitir' " (Gareth Rees, Usenet Posting 7/6/93). No las escribas entonces todas a la vez.


Nota 1: Pero Meretzky no ha sido siempre tan cursi como su reputación. Influenciado por 'Suspended', que él testeó y posteriormente llamó "probablemente el juego más interesante y atrevidamente diferente que Infocom haya hecho", usó el tema de la realidad virtual para construir casi el único trabajo de las primeras aventuras conversacionales que contenía temática seria política: 'A Mind Forever Voyaging' (1985).

Original de Graham Nelson, traducido por dhan y Alfredo Liu-Pérez.

subir al índice

 

comentarios

CLAVES PARA LA FICHA Y PUNTUAR EN LOS COMENTARIOS

NOMBRE: Jabato
AUTOR: Aventuras AD
EMAIL: Desconocido
FECHA: 1989
PARSER: DAAD
SOPORTE: PC - SPECTRUM - AMIGA
DISPONIBILIDAD: Abandonware
URL: No disponible
TIPO: Basado en el comic.

Cuando mandes comentarios para las reviews, puedes poner SI QUIERES una puntuación valorando la aventura considerando una escala del 1 al 10, según tus apreciaciones.

Si has jugado a algo recientemente, por favor... ¡escríbenos un comentario!

Anchorhead

NOMBRE: Anchorhead
AUTOR: Michael Gentry
EMAIL: edromia@concentric.net
FECHA: 1998
PARSER: Inform
SOPORTE: Máquina Z (versión 8)
DISPONIBILIDAD: Freeware
URL: http://www.ifarchive.org/if-archive/games/zcode/anchor.z8
ARGUMENTO: Terror inspirado en H. P. Lovecraft.

La historia de 'Anchorhead' comienza cuando tú y tu marido Michael llegáis al pueblo homónimo, para mudaros a la mansión que él ha heredado sorpresivamente de una lejana (y desconocida) rama de su familia. La trama no se plantea desde la introducción, sino que parte del principio del juego consiste en irla desvelando, así que no diré más para no destriparla. En cualquier caso los lectores de Lovecraft ya supondrán lo que pasa cuando se llega a la antigua casa de unos antepasados en un pestilente y subdesarrollado pueblo pesquero en el que todos los lugareños te miran de mala manera.

'Anchorhead' es la aventura más grande que he jugado, por número de localidades y objetos (aunque no he jugado muchas, mi afición es relativamente reciente), pero creo que el tamaño está bien calculado y que en definitiva consigue recrear con verosimilitud el pueblo y sus alrededores, lo que contribuye a meter al jugador en ambiente desde el principio; además hay que resaltar la gran calidad del texto, que no sólo es rico sino bastante homogéneo en su tono (sin chistes malos ni incongruencias, es una historia de terror seria), compensando de sobras el que las situaciones sean las típicas de la retórica lovecraftiana. A este respecto, todo el último capítulo me parece soberbio. Lo verdaderamente magistral para mí es lo bien dosificada que está la tensión a través de los sucesivos días en que la historia tiene lugar (te levantas cada día y, cuando hayas completado unos puzzles clave, la barra de estado cambia a "por la tarde"; entonces puedes volver a casa y dormir, pasando de esta manera al siguiente capítulo), desembocando en un final donde el peligro se desborda, lo suficientemente espectacular para que el jugador se sienta recompensado por sus esfuerzos previos.

Los puzzles me han parecido lógicos y no excesivamente difíciles, pero tampoco obvios del todo (no hay que usar palabras raras ni hacer cosas estúpidas y, aunque durante el final el tiempo es limitado y no se pueden malgastar los turnos, no es muy difícil suponer qué hacer); por otra parte hay varias maneras de solucionar más de uno, y no es necesario un orden estricto, lo que es un valor añadido. No temáis cargar con todo lo que encontréis, pues la gabardina de la protagonista no tiene límite de objetos, y los pocos que no caben podéis llevarlos en las manos, pero sí preocupaos por mirar en todas partes, sobre todo en la mansión de la familia, porque hay muchas cosas escondidas. Una de las tareas más divertidas es recopilar información a través de los PSI y libros que van apareciendo a lo largo del juego; no toda es esencial, pero sí contribuye a aclarar y enriquecer la historia, lo que da fe del gran esfuerzo puesto en el desarrollo de la trama y de los personajes (el mismo Gentry, en la ayuda del juego, que por cierto es muy útil, habla de que éste trata más de desvelar un misterio que de solucionar puzzles). Hay que decir que los PSI están bien en general, pero Michael es sencillamente estupendo por la calidad de sus diálogos y por cómo, a través de ellos, podemos ver cómo va cambiando la relación con su esposa, o sea tú. Esto es para mí lo mejor de la historia, que en vez de ser el hombre acosado por los actos de sus antepasados, eres su esposa; con lo cual al final no se trata sólo de acabar con los típicos sectarios lovecraftianos, sino de salvar a la persona a la que amas. Esto (apoyado por las descripciones de Michael y los diálogos que tiene contigo, y por lo absolutamente cabrón que es el malo), hace que para el jugador alcanzar la victoria final sea casi algo personal.

En conclusión, un juego en el que la brillantez del acabado (yo no he observado ningún bug a pesar de lo largo que es el juego; claro que es ya su release 5) y la complejidad de la narración priman sobre la dificultad u originalidad de los puzzles, pero sin comprometer la interactividad ni la libertad del jugador, y que deja esa estupenda sensación de haber vivido una historia larga y emocionante, construida con seriedad y coherencia en todos los detalles. El único inconveniente es que el juego está en inglés, claro, pero con un buen diccionario y atención no dará muchos problemas, y creo que de verdad merece jugarse.

Pedro Antonio Sanz

subir al índice

Earth and Sky

NOMBRE: Earth and Sky
AUTOR:
Paul O'Brian
EMAIL: obrian@colorado.edu
FECHA: 2001
PARSER: Inform
SOPORTE: Máquina Z
DISPONIBILIDAD: Freeware
URL: www.ifarchive.org/if-archive/games/competition2001/inform/eas/eas.z5
TIPO: Superhéroes.

La historia.

Los protagonistas son dos hermanos universitarios, Emily y Austin, cuyos padres, renombrados científicos, han desaparecido sin dejar rastro. El juego, en el que tú manejas a Emily, arranca cuando tu hermano Austin te cita en el laboratorio paterno para comunicarte que ha descubierto en qué trabajaban tus padres antes de morir; se trata de dos coloristas uniformes, uno femenino (Skysuit) y otro masculino (Earthsuit), que dotan de distintos poderes a quien los viste. Los del traje masculino son fuerza sobrehumana y resistencia a los golpes y a la electricidad; los del femenino (y por tanto los que tú podrás usar) son generación de niebla y descargas eléctricas, y capacidad para volar. Embutidos en los uniformes, tu hermano te enseña a manejar el tuyo y te propone usarlos para averiguar el paradero de vuestros padres, y ahí empieza, y casi termina, todo, ya que lo siguiente es una pequeña confrontación que te permitirá usar tus poderes, para lograr la primera pista que te lleve a encontrar a vuestros padres, y el juego termina. Yo tardé unos 30 minutos (búsquedas en el diccionario incluidas, porque está en inglés).

El juego es lineal y corto.

Creo que esto se puede disculpar, ya que es el primer episodio de un serial a continuar, por lo que puede entenderse como un prólogo. Está bien implementado, casi todo tiene una descripción adecuada, y además el texto y los diálogos hacen gala de un sentido del humor (con diálogos como: "¿Hicieron también un traje de mono? Tal vez con una habilidad potenciada para comer plátanos", o "¡No puedo ser una superheroína! ¡No tengo el pelo largo y sedoso ni los pechos grandes!") que aliviará a los que les repele un acercamiento clásico a los superhéroes. Por otra parte los escenarios (básicamente los laboratorios de la universidad) y las situaciones recrean perfectamente ese ambiente tecnológico-fantástico-universitario de ciertos cómics Marvel (de los que el autor se confiesa fan absoluto), como los 4-F o las tempranas aventuras de Spiderman. Y es que Austin, con su afición a la ciencia y sus largas peroratas sobre el funcionamiento de los trajes, a mí me recuerda mucho a Reed Richards. Lo más gracioso es que, mientras Austin es "de ciencias", su hermana es "de letras", y no se entera absolutamente de nada.

Puzzles no hay prácticamente, ya que el avance está muy guiado y todo se hace muy evidente, sólo hay que hacerse a la idea de que tenemos poderes y usarlos. Manejar estos es fácil (tanto como teclear FLY / LAND o FOG o BLAST llevando solamente el traje puesto, ya que podemos ponernos ropa encima para ocultarlo), divertido y con curiosos resultados, si creamos niebla en un lugar pequeño perderemos visibilidad o se la quitaremos al individuo contra el que hayamos lanzado la niebla, o podemos volar una puerta de un rayo, etc...

Una nota interesante es que, aparte de las formas típicas de diálogo, ASK alguien ABOUT algo, si un personaje nos habla por propia iniciativa, le contestaremos a base de menús; y si escribimos TALK TO alguien, entraremos en una secuencia de diálogo predeterminada, lo que sí da un cierto estilo de cómic. Una lástima que no podamos manejar a Austin, pero no os preocupéis porque es a él a quien manejamos en la 2ª parte, y de todas maneras un juego tan corto no daba para más.

Pedro Antonio Sanz

subir al índice

Earth and Sky 2: Another Earth, Another Sky.

NOMBRE: Earth and Sky 2: Another Earth, Another Sky.
AUTOR:
Paul O'Brian
EMAIL: obrian@colorado.edu
FECHA: 2002
PARSER: Inform
SOPORTE: Glulx
DISPONIBILIDAD: Freeware
URL: www.ifarchive.org/if-archive/games/competition2002/glulx/EAS2.zip
TIPO: Superhéroes.

El segundo episodio de 'Earth and Sky' nos trae de vuelta a Austin y a Emily en sus andanzas para encontrar a sus padres desaparecidos, unos reputados científicos. La información obtenida al final de la anterior entrega les lleva a empezar el juego ante la puerta del hogar del doctor Andrews, con el que al parecer vuestros padres colaboraban en sus investigaciones; se trata de un observatorio astronómico en Sierra Nevada (en español en el original, no sé si será la Sierra Nevada española u otro lugar de similar nombre que haya por yanquilandia). Para no chafar lo que viene después, baste decir que el observatorio oculta un secreto que os llevará a quedar atrapados en una asombrosa instalación alienígena. Escapar de ésta será vuestro objetivo principal, pero además conseguiréis información definitiva sobre vuestros padres y una nueva amenaza para la Tierra, que os conducirá directamente a la tercera parte: la cual, según el autor, aparecerá en este año 2003.

Este juego ha ganado el primer puesto en la IFComp de 2002, y la verdad es que tiene un acabado excelente y sobre todo una ambientación muy original, digna de las más enloquecidas historias clásicas de Marvel, mezclando a partes iguales ciencia-ficción y fantasía; y sin embargo nada es gratuito, todo lo que aparece tiene una estupenda y coherente razón de ser, que se nos aclara progresivamente. El texto es descriptivo y elegante en la medida adecuada, y además se han aprovechado las capacidades de Glulx para realzarlo; así, cuando uséis vuestros poderes, gigantescas onomatopeyas de colores llenarán la pantalla, transmitiendo de manera perfecta toda la contundencia de la acción y la sensación de estar inmersos en un cómic, pero sin tener que recurrir a sonidos o dibujos. También está presente el mismo sentido del humor que había en el episodio anterior (un ejemplo: cuando estéis en la cabaña y acabéis de coger el notepad poned TALK TO EMILY y veréis ).

En esta parte no manejamos a Emily, sino a su hermano Austin y, puesto que la fuerza sobrehumana es su principal poder, podréis comprobar (con el inconfundible placer que produce la destrucción) que más de una vez la violencia ES la solución, y que saltar en el sitio ofrece, si no siempre resultados, al menos un punto de vista novedoso. Con esto no pretendo decir que los puzzles se solucionen arrasando todo lo que encontremos a nuestro paso, sino sólo que no os cortéis en usar los poderes de vuestro uniforme (que por cierto sigue siendo la repanocha, ya veréis cuando entréis en el océano). Hablando de poderes: cuando al final llegue la hora de las tortas, (parafraseando a Ben Grimm), si vuestra hermana está presente pedidle que use la niebla, y tendréis una batalla más cómica que épica.

Los puzzles por otra parte no son complicados, adecuadamente el más difícil (el de las babosas) es el más decisivo, pero no se tarda mucho en resolverlo, aun sin haber descubierto toda la información que el juego proporciona para su resolución. Yo creo que la escasa dificultad se debe a que el uso de los objetos es evidente pero no por los objetos en sí, sino porque hay pocos y eso reduce mucho las posibilidades. En mi opinión, el puzzle más divertido es en sí mismo el proceso de exploración de la extraña instalación alienígena que menciono más arriba, y tratar de averiguar cómo funciona y cuál es su objetivo, debido a la originalidad con que ha sido pensada.

Tal vez para mí el defecto del juego sea que, aunque es más largo que su predecesor, sigue siendo demasiado corto, acaba precipitadamente y sabe a poco. No habría estado mal que se te permitiera un poco más de interacción con el alienígena que aparece al final, o que tu hermana tuviera más protagonismo (¿no se supone que Inform permite cambiar al jugador, para que maneje distintos personajes?). Máxime cuando uno sospecha que el autor ya tiene escrita la tercera parte (es decir, la historia, que no el código del juego) y que podría haberse tomado más tiempo y hacer el juego más extenso (esto lo sospecho porque hay ciertos datos en la primera parte que sólo toman sentido al jugar la segunda, lo que indica que ambas se escribieron a la vez, y que posiblemente la siguiente o siguientes también). Claro que tal vez lo que quería el autor era tener algo acabado para la IFComp, y visto el resultado hay que reconocer que hizo bien.

En conclusión un juego demasiado corto y fácil, pero divertido y original a pesar de todo.

Pedro Antonio Sanz

subir al índice


¡Colabora enviando la solución de algún juego que hayas terminado recientemente!


Los comentarios y soluciones más buscados

Estos son los juegos que nos gustaría ver comentados en los próximos números:

"1893"; "Once and Future"; "Espejos"; "City Of Secrets".

Si te animas a hacer un comentario o quieres añadir algún juego a esta lista, escríbeme raudo y veloz a dhan@interlap.com.ar. Hasta el próximo número.

subir al índice

SPAC

 

 



Acertijo del fanzine anterior:
Millas ha trotado,
para encontrar lo que estaba al lado.
y tuvo que subir desde abajo
ayudado por un bajo.
(Remitido por Jarel)

Solución: Akbarr PC

Acertado por Akbarr (¡menos mal!) y Lumpi.

Tras salir de caza, o acceder a la red, pude atrapar aquella esfera flotante...