05.05.15 ZENDYR'S LABYRINTH (c) 2005, Carlos Gómez Rodríguez (solrac888@yahoo.com) Éste es un juego hecho en una tarde o dos, que me temo que en lo que se refiere a jugabilidad está bastante próximo a cero. Su interés radica en que es un experimento con algo que no sé si se ha visto mucho por el CAAD (igual sí, como yo casi no juego aventuras... :D): la generación aleatoria de laberintos. Para instalarlo, copiar el directorio del juego, que viene en el fichero .zip, al directorio del AGE. Nótese que hay que copiar EL DIRECTORIO, no su contenido. Por ejemplo, si el AGE está en c:\age, tendrá que quedar un directorio c:\age\ZendyrsLabyrinth\ con los ficheros de este .zip. Una vez hecho esto, al ejecutar el AGE, "Zendyr's Labyrinth" aparecerá en el cargador de juegos. Al arrancar el juego, se genera un laberinto en tres niveles, que tiene en total 725 localidades (100 en el nivel 1, 225 en el 2 y 400 en el 3). Si queréis jugar con estos valores, podéis hacerlo en el código, la generación del laberinto está en el fichero generate.bsh (el código de ambas aventuras es libre bajo licencia tipo BSD). Advierto, eso sí, que el código está muy sucio. El objetivo de Zendyr's Labyrinth es bajar a lo más hondo del laberinto superando los tres niveles. El generador de laberintos está hecho para garantizar la propiedad de que tenga solución, es decir, siempre hay una manera de llegar a la meta, y nunca hay estados irresolubles. Esto hace que esta técnica de generación pueda ser interesante para generar mazmorras o laberintos puntuales en juegos más grandes y elaborados, donde se podría dotar a cada localidad de una descripción para conseguir una ambientación buena (en éste, de hecho, ya se dota a cada localidad de una descripción; pero como veréis son bastante iguales). AVISO IMPORTANTE: Este juego es lento y chupa mucha memoria, debido a que se generan cerca de mil localidades y un número parecido de objetos, y no se aplica ninguna optimización (es decir, todos los objetos están representados en memoria; aunque tengan muchas cosas en común). Se podría haber hecho lo mismo mucho más rápido y ligero compartiendo el código de los objetos, hay muchas cosas que están repetidas en memoria mil veces. El motivo de no haberlo optimizado de esta manera no fue la pereza o la desidia; sino que en realidad mi idea al crear este juego fue hacer una "prueba de carga" para ver cómo respondería el AGE ante una aventura de mil localidades "de verdad" (es decir, creadas a mano y cada una con sus características propias). El rendimiento de este juego refleja lo que sería el rendimiento de un juego así. En cualquier caso, aviso de esto para que no os asustéis si veis que tarda mucho en cargar, y para que tengáis cuidado cuando cambiéis el código, porque aumentar el número de localidades aumentará proporcionalmente el uso de memoria. OTRO AVISO IMPORTANTE: Debido a cierto workaround que tuve que introducir en el código para evitar un bug de AGE que se arreglará en versiones posteriores, este juego no se puede poner en modo multijugador (o, mejor dicho, se puede poner pero no funcionará). Sí se puede poner a turnos o a tiempo real sin problema, y también se puede poner como servidor dedicado y conectarse remotamente; pero sólo con un jugador: si entra otro jugador, cascará. LICENCIA: Este juego está sujeto a la siguiente licencia estilo BSD: Copyright 2005 Carlos Gómez Rodríguez. Se permite la redistribución de este software tanto en forma de código fuente como en forma binaria, con o sin modificaciones, siempre y cuando se cumplan las siguientes condiciones: 1. Las redistribuciones del código fuente deben retener el aviso de copyright declarado arriba, esta lista de condiciones y la denegación de garantía que sigue. 2. Las redistribuciones en forma binaria deben reproducir el aviso de copyright declarado arriba, esta lista de condiciones y la denegación de garantía que sigue en la documentación y/u otros materiales que acompañen la distribución. 3. No se permite el uso del nombre del autor o sus colaboradores para apoyar o promover productos derivados de este software sin previo permiso específico por escrito. EL AUTOR PROVEE ESTE SOFTWARE ``TAL Y COMO ESTÁ'', Y DENIEGA CUALQUIER GARANTÍA, YA SEA EXPRESA O IMPLÍCITA, INCLUYENDO SIN LIMITACIÓN LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD Y APTITUD PARA UN PROPÓSITO ESPECÍFICO. NI EL AUTOR NI SUS CONTRIBUIDORES SERÁN EN NINGÚN CASO RESPONSABLES POR PERJUICIOS, YA SEAN DIRECTOS, INDIRECTOS, INCIDENTALES, ESPECIALES, PUNITIVOS O CONSECUENTES (INCLUYENDO SIN LIMITACIÓN LA ADQUISICIÓN DE BIENES O SERVICIOS DE SUSTITUCIÓN; PÉRDIDA DE USO, DATOS O GANANCIAS; O INTERRUPCIÓN DE NEGOCIOS), SEA CUAL SEA SU CAUSA Y BAJO CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA EN CONTRATO, RESPONSABILIDAD ESTRICTA O ENTUERTO (INCLUYENDO DE NEGLIGENCIA O DE CUALQUIER OTRA MANERA) QUE SURJA DE CUALQUIER MANERA DEL USO DE ESTE SOFTWARE, AÚN EN EL CASO DE HABER SIDO AVISADO DE LA POSIBILIDAD DE TAL PERJUICIO. (traducción extraída de www.vvlinux.com y adaptada)