Realmente no son de hoy, pero no he tenido tiempo de escribir antes :] Llegados hace un par de días vía Amazon.de:
Que se reúne con el resto de hermanitos Magik completando la familia por fin =) Completando también los ASOT Yearmix. Ahora sólo me falta el ASOT 001 >_< Publicado: 19:22 21/01/2008 · Etiquetas: ahora suena, Mac Zimms, L'Annonce Des Couleurs, Magik One, Magik · Categorías: Música
Estos días he metido en mi iPod todos los Magik de Tiësto que tengo así que obviamente los he estado escuchando :] Pero curiosamente, aquí traigo un tema del único de la colección que me falta, Magik One: First Flight, que espero me llegue mañana desde Amazon :] No sé que tiene este tema que invita a moverte...
Título: L'Annonce Des Couleurs (Arxel Shortcut). Autor: Mac Zimms. Género: Trance. Año: 1997. Publicado: 16:58 15/01/2008 · Etiquetas: Lenguaje, SFL, FIC, FIC.tion, aventura, aventura conversacional · Categorías: Videojuegos : Software
Como decía al final de la entrada anterior, me faltaba por comentar cómo se escribiría un juego usando el lenguaje que he creado. Para ello me apoyaré en el ejemplo que está incluído en el paquete que enlacé en dicho post.
El fichero ha de empezar con una línea similar a ésta: FICTION tarde; el identificador (en general, cualquiera de los identificadores usados en el fichero) puede ser una secuencia alfanumérica cualquiera sin espacios. Este será el nombre que tendrá la clase Java que se generé al final del proceso de parsing y el que habrá que indicar al script de ejecución (run.sh). A continuación vendrían las secciones iniciales: TITLE "Llegas tarde!" AUTHOR "Arxel" VERSION "0.9"; que simplemente indican el título del juego, autor y versión. Esta información se muestra en el menu inicial del juego. START IN ROOM Habitacion2 HAVING [] DISPLAY "Son las 8 de la manana y tienes clase de practicas de Compiladores dentro de media hora, asi que deberias de salir pitando..."; Con START IN ROOM se define cual será la habitación en la que se inicie el juego y HAVING configura el inventario inicial; en este caso no llevamos nada al principio lo cual se representa con la lista vacía []. DISPLAY aquí imprime por pantalla una especie de prólogo. END IN ROOM Calle DISPLAY "Felicidades, has conseguido salir de casa a tiempo y podras disfrutar de una magnifica clase de Compiladores por completo!"; END IN sirve para determinar cómo se da por finalizado el juego. Están soportadas tres maneras de acabar la aventura: * Alcanzando cierta sala: se añade a END IN las palabras ROOM <idHabitacion>. * Cogiendo cierto objeto: se añade ITEM <idItem>. * Hablando con cierto NPC: se añade CHARACTER <idPersonaje>. DISPLAY en este caso imprime un texto a modo de epílogo. A continuación se definirían las habitaciones: ROOM Hall AT WEST Sala2 AT EAST Cocina AT SOUTH Pasillo2 CONTAINS ITEM [Lampara; Puerta; Espejo; Paraguero; Telefonillo; Paraguas; Boton] DISPLAY "El hall no es demasiado grande. Sus paredes estan pintadas de un amarillo suave y una pequena lampara ilumina de forma tenue el ambiente."; La definición comienza por la palabra ROOM seguida de un identificador. Las salas vecinas se indican mediante AT y un punto cardinal (NORTH, SOUTH, etc.) y el identificador de dicha sala. Si no hay una sala en cierta dirección simplemente se omite. CONTAINS puede ir seguido de la palabra reservada ITEM o CHARACTER, según nos vayamos a referir a una lista de objetos o personajes presentes en la sala. Esa lista se representa mediante los identificadores correspondientes separados por ; y encerrados todos ellos entre []. Finalmente, DISPLAY muestra la descripción de la habitación al entrar en ella o al pedírselo explícitamente al juego mediante el comando OBSERVAR. Para definir los objetos se sigue la siguiente estructura: HIDDEN ITEM Galletas DESCRIPTION "Unas galletas" LOCKED REACTION MirarGalletas TO "Mirar" DO DISPLAY "Son unas pequenas galletas de chocolate rellenas de naranja." LOCKED REACTION ComerGalletas TO "Comer" DO ADD AND DISPLAY "Ya no tienes tanta hambre." AND SCORE 1; De forma similar a las habitaciones, comenzamos con la palabra ITEM seguida de un identificador. En este caso podemos ponerle el flag HIDDEN que indica que es un objeto inicialmente oculto. Esto es útil en el caso de no querer dar a conocer un objeto antes de interactuar con otro o de hacer cierta acción. DESCRIPTION es una descripción del objeto usada conjuntamente con la descripción de la sala actual. El verdadero meollo de la cuestión son las reacciones (quizá acciones sería un mejor nombre). Cada una de ellas se indica con la palabra REACTION que puede ir antecedida por el flag LOCKED, que impide que se realice hasta que por alguna otra parte del código se desbloquee. A continuación va un identificador seguido por la palabra TO y el verbo que dispara esa acción. La palabra reservada DO señala el comienzo de todas las consecuencias de la acción, cada una de las cuales se enlaza con AND. Las consecuencias soportadas son: * ADD: añade este objeto al inventario. * DISPLAY <mensaje>: imprime <mensaje> por pantalla. * SCORE <int>: suma <int> puntos al marcador. * UNLOCK <id>: desbloquea la reacción <id> (puede ser de otro objeto). * UNHID <id>: desoculta el objeto <id>. * SETTRUE <id>: pone a TRUE el estado del objeto <id>. * SETFALSE <id>: pone a FALSE el estado del objeto <id>. * MOVE <id>: movimiento incondicional a la sala <id>. * BREAK: finaliza el juego. * NOP: no hace nada. Todas estas consecuencias se pueden incluir dentro de la estructura condicional IFTRUE (o IFFALSE) STATE, de una forma similar a la siguiente: REACTION HacerCama TO "Hacer" IFTRUE STATE DISPLAY "La cama ya esta hecha." ELSE DISPLAY "Muy bien, tus padres estaran orgullosos de ti." AND SETTRUE Cama AND SCORE 1; Si el estado del objeto Cama es TRUE imprime el mensaje "La cama ya esta hecha.", en caso contrario imprime "Muy bien, tus padres estaran orgullosos de ti." y suma 1 a la puntuación actual. La definición de los personajes es bastante limitada. Como siempre, comienza por la palabra reservada CHARACTER más un identificador. A continuación se definen las frases del NPC y tus posibles respuestas, formando un diálogo al estilo Lucas/Sierra/etc. CHARACTER Vecino PHRASE VecinoI ANSWER TO null DISPLAY "Hola holita vecinito!" PHRASE Vecino1 ANSWER TO VecinoI DISPLAY "Pierdete!" PHRASE Vecino2 ANSWER TO VecinoI DISPLAY "Que tal hombre...?" PHRASE Vecino3 ANSWER TO Vecino1 DISPLAY "Vale vale, no te pongas asi...!" PHRASE Vecino4 ANSWER TO Vecino2 DISPLAY "Aqui andamos, vengo de comprar el pan." Cada frase comienza con PHRASE y un identificador, seguido de ANSWER TO más el identificador de la frase a la que replica, null si es la inicial (pensar en una estructura en árbol). Como siempre DISPLAY escribe en pantalla. Mejor con un dibujito aproximado que acabo de encontrar (el árbol no tiene por que ser binario) La raiz es siempre una frase inicial del NPC. El siguiente nivel son tus posibles respuestas a esa frase, el siguiente nivel estará formado por 'hijos únicos' (no dos como en el dibujo de ejemplo) que son cada una de las respuestas a tu elección anterior, y así sucesivamente. Creo que esto es todo, como se puede comprobar es un lenguaje bastante sencillo, con no demasiadas posibilidades pero medianamente comprensible por una persona poco ducha en programación a la que le guste experimentar/perder el tiempo con estas cosas :] Publicado: 21:14 13/01/2008 · Etiquetas: FIC, FIC.tion, aventura, aventura conversacional, disponible, lanzado, released · Categorías: Videojuegos : Software
Ha pasado casi un año desde que en este mismo blog hablé de FIC.tion, el pequeño y simple creador de aventuras conversacionales que había hecho como práctica de una asignatura. Ahora, y después de mucho tiempo en el olvido, le he hecho los retoques necesarios para ponerlo a disposición de todo el mundo. Como decía en su momento, no liberaré su código fuente (al menos por ahora) porque sigue en desarrollo, no es una proeza informática y (unido al primer motivo) es posible que lo use como base para mi Proyecto de Fin de Carrera. A pesar de ello, no tendré ningún problema en responder preguntas técnicas, aunque de algunos detalles de implementación ya ni me acuerdo xD Los requisitos para hacerlo funcionar son: * Un PC con Linux. Sí, sigue sin haber versión Windows, lo siento * Un compilador y máquina virtual de Java, con la 1.6.0 de Sun sé que funciona. * Este paquete. Una vez bajado el paquete no hay más que descomprimirlo en alguna parte haciendo algo del estilo tar -xvf Fiction_distributable.tar.gz. El fichero README incluído creo que esta bastante auto-explicativo, por si por si acaso... * ./compile.sh tarde.sfl compila el juego de ejemplo incluído. El .java que genera va a parar a java/ y es un fichero de código fuente normal y corriente que puede ser modificado y leído por un humano. * ./run.sh Tarde ejecuta el juego anteriormente compilado. Cuando tenga un poco más de tiempo explicaré un poco cómo funciona el lenguaje que creé, De esta forma, alguien con curiosidad y algo de tiempo libre podrá disfrutar jugando a su propia aventura :] Publicado: 19:02 01/01/2008 · Etiquetas: ahora suena, Nina Simone, Sinnerman, Felix Da Housecat · Categorías: Música
Empezamos 2008 con uno de los mejores temas que pude escuchar en la fiesta de fin de año a la que fui; la música fue bastante psé quitando un par de medias horas en plantas distintas (mucho electro, salsa y otras cosas peores) así que tampoco me ha costado mucho elegir xD
Título: Sinnerman (Felix Da Housecat Heavenly House Mix - Extended Vocal) (Arxel Shortcut). Autor: Nina Simone. Género: House. Año: 2003. |
Blogs en Vandal · Contacto · Denunciar Contenido