Ph: 11202151

jueves, febrero 09, 2012

Sistemas para crear aventuras conersacionales (I)

Las aventuras de texto es uno de los géneros dentro del mundo de los videojuegos que cuenta con mas herramientas para crearlos. Tal vez debido a la relativa sencillez, ya que es una terea posible para una única persona, desde  casi los principios del genero se han creado diferentes compiladores, herramientas, parsers y todo tipo de complementos para ayudar a crear estos mundos virtuales. 

En esta serie de articulo vamos a echar a un vistazo a unos cuantos sistemas para crear aventuras desde en lenguajes de programación genéricos hasta los parsers mas especializados.

Mi principal motivación es que me gustan tantos las aventuras conversacionales como la retro-programación. Así que para mi esta es la combinación perfecta; en realidad estoy escribiendo los artículos que me gustaría leer a mi.


Adventure

[image]

Impresión de una partida de Advent en un PDP-10, via Wikipedia

O "Cave Adventure" o la "Aventura Original". Un juego que definió el genero y siguió influyendo a nuevos juegos creados muchos años después. La autoria es compartida, Crowthers creo un juego de exploración de cuevas para entretener a sus hijos y Woods la amplio y añadió un toque más fantástico, pero tecnicamente usan la misma estructura.

El juego esta programado en Fortran y los datos se encuentran en un fichero de texto con la información del juego. Este fichero se encuentra divido en bloques. Primero tenemos una tabla con las descripciones de los escenarios del juego. Tiene este aspecto
1 YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK
1 BUILDING . AROUND YOU IS A FOREST. A SMALL
1 STREAM FLOWS OUT OF THE BUILDING AND DOWN A GULLY.
2 YOU HAVE WALKED UP A HILL, STILL IN THE FOREST
2 THE ROAD NOW SLOPES BACK DOWN THE OTHER SIDE OF THE HILL.
2 THERE IS A BUILDING IN THE DISTANCE.
Es una simple tabla con un identificador seguida de una linea de texto, siempre en mayúsculas por las limitaciones del hardware de la epoca. Las lineas con el mismo identificador corresponden a diferentes lineas de una misma descripción, una estructura muy sencilla. un -1 como identificador indica el final de cada bloque.

El siguiente bloque son las descripciones cortas para los lugares ya visitados. A continuación hay una tabla numerica con las conexiones de cada habitación, con la estructura id-de-habitacion id-habitacion-destino lista-de-ids-de-vocabulario. Por ejemplo la primera entrada
1 2 2 44 
Para ir de la habitación 1 a la 2 se pueden usar las palabras con id 2 o 44.
La siguiente es la lista de vocabulario, organizada de una manera especial. Todo el vocabulario es de la forma id palabra, usandose ids duplicados para representar sinónimos. De esta forma
1002 LAMP
1002 HEADL
El objeto 1002 es la famosa LAMP; o tambien HEADLamp. Dado que una word de memoria del PDP-10 en que se programo caben 5 caracteres, el numero de caracteres que reconoce el parser esta tambien reducido a estos 5, aumentando la compresión y facilitando las comparaciones.

En este caso el numero de id añade un significado especial. Los 70 primeros se pueden usar como verbos de movimiento, (aunque estrictamente no todos son verbos, nos podemos mover con comandos como "door" o "rock"). Los siguientes, empezando en los miles definen los objetos que se pueden coger, en los dos miles los verbos y en los tres miles algunos comandos especiales como el de ayuda.

El siguiente bloque son unos mensajes de estado que reflejan cambios permanentes en el escenario o que son mostrados cuando hay un objeto presente, con la misma estructura que los mensajes normales.

A continuación a otro bloques de mensajes, que esta vez hacen referencia a eventos, como cuando aparece ese enano que nos lanza flechas.

Y con un 0 termina este fichero de datos. Si bien la mayor parte del contenido esta definido en este fichero; una parte muy importante, las logica en si del juego no esta aqui, si no en la parte en Fortran. Por lo tanto se pueden editar los textos, objetos y conexiones del juego, pero no cambiar significativamente los resultados de las acciones ni por supuesto crear un juego diferente.

El parser es muy simple, reconociendo la estructura verbo nombre, con alguna de Si/No en ciertas situaciones. La longitud de palabra limitado al tamaño de la memoria real hace que las comparaciones sean casi triviales y el parsing muy sencillo.

Pensando cuando fue creado y para que, me parece que tiene una estructura sencilla y inteligente, aun mirandolo desde la perspectiva de hoy en día.


A-Code

El éxito de Adventure fue fulgurante, y su fama se extendió por Arpanet, la precursora de internet. Al estar su código disponible, no tardaron en surgir variaciones, clones y re-interpretaciones del original. Una de las ampliaciones mas famosas dentro del ambiente de los main frames era la Adventure de 550  puntos de Dave Platt, creada alrededor de 1979.

Esta versión usaba un lenguaje propio para crear aventuras, de forma que se podían crear todo tipo de juegos (mas o menos parecidos a Adventure), el llamado A-Code. En principio era un lenguaje que generaba un binario que era interpretado después, pero debido a la lentitud de este metodo, se modifico para generar código Fortran (y mas tarde C) que debía ser procesado por el compilador correspondiente, disparando la velocidad de ejecución.

Dado que el A-Code es un lenguaje pensado para soportar cualquier tipo de aventura, es un lenguaje más generico. Los mensajes de texto se definen con la palabra clave TEXT identificador y el texto en la siguiente linea, sacada de la aventura de 550 puntos:
TEXT     DWARFBLOCK
         A little dwarf with a big knife blocks your way.
Para definir una localidad se usaba la palabra clave PLACE de esta manera
PLACE     ROAD
          You're at end of road again.
         %You are standing at the end of a road before a small brick building.
          Around you is a forest.  A small stream flows out of the building and down a gully.
Como podeis ver se puede especificar un nombre clave para cada localidad, una descripción corta que se usa a partir de la segunda vez que se visita (poco usado en las aventuras europeas), la descripción normal y una descripción larga (precedida de &).

Los objetos se definen de una forma parecida
OBJECT    LAMP
          Brass lantern
         %There is a shiny brass lamp nearby.
         %There is a lamp shining nearby.
Los nombres de los objetos quedan automaticamente registrados en el vocabulario que reconoce el juego (el parser no es mucho mejor que el de Adventure). Una de las características de las descripciones en A-Code, es que se puede escribir mas de una descripción por objeto, para mostrar variaciones aleatorias o dependiendo del estado del objeto, como en el caso de esta reja:
OBJECT    GRATE
         {Grate}
         %The grate is locked.
         %The grate is open.
Que puede estar abierta o cerrada. Tambien se pueden crear sinónimos de identificadores de esta forma:
SYNON     LAMP,HEADLAMP,LANTERN
Pasando a como se organizan internamente las respuestas, se trata de un pequeño lenguaje de programación que permite variables:
VARIABLE LAMPLIFE
Ademas todos los objetos y localidades tienen una variable de estado, que puede accederse bit a bit como flags. Para condiciones locales se utiliza:
AT       BUILDING
         MOVE ROAD,ROAD
         MOVE OUT,ROAD
         MOVE OUTDOORS,ROAD
         MOVE WEST,ROAD
         IFLT  CLOSURE,2      {is the cave open?}
            SMOVE XYZZY,DEBRIS,FOOF
            SMOVE PLUGH,Y2,FOOF
         FIN
AT       BUILDING
         ANYOF STREAM,DOWNSTREAM
         SAY   PIPEFIT
         QUIT
Que define las salidas en el primer bloque (puedes moverte escribiendo tanto las direcciones como el nombre de las localidades adyacentes). Y luego condiciones como chequear si ya se ha abierto la cueva (comprueba que la variable CLOSURE sea menor que 2 y entonces activa las palabras magicas)o mostrar una descripción con el comando SAY al examinar el riachuelo.

Las respuestas a acciones se definen de una forma parecida:
ACTION   DIG
         SAY   NEEDSHOVEL
         QUIT
En este caso si intentas cavar te dira que necesitas una pala. Tanto con AT como con ACTION se pueden  escribir tantos iguales como se quiera. Se iran ejecutando en orden  hasta que se encuentre un comando QUIT. Como se puede ver es un lenguaje potente, pero no deja ser un lenguaje estilo assembler, con un comando y sus parámetros. Eso si, a parte de los típicos CALLs  a subrutinas (con  etiquetas declaradas con LABELs), tambien se pueden utilizar IF, como en el ejemplo, lo que simplifica un poco la programación

Proviniendo dentro del mundo de los main frames, donde la memoria no era tan escasa como en los micros, los juegos de A-Code incluyen muchas descripciones y muchos pequeños detalles para las acciones del jugador. Así que los juegos incluyen innumerables AT y ACTION...

Este es solo un vistazo por encima, el A-Code tiene muchas mas detalles para crear aventuras complejas muy elaboradas (la de 550 puntos es enorme pero existe incluso una version de 770 puntos de Adventure mantenida hasta hoy en dia!), y ademas fue evolucionando con los años.

Por último una nota más. En el mismo año (1979) la casa inglesa Level 9 desarrollaría tambien un lenguaje para aventuras llamado A-Code pero que no tiene ninguna relación con este. Hablaremos del A-Code de Level 9 en otra ocasión.

Pagina sobre A-Code.
La aventura de 550 puntos original de Dave Platt.

Conclusión

Proximamente hablare otros sistemas que precisamente buscan ejecutarse en maquinas con tremendas limitaciones de memoria y eso condicionara todo el sistema. Aun así algunos conceptos del A-Code, aunque probablemente no directamente, pasaron a estas aventuras de micros (como las respuestas encadenadas y la diferenciación de variables-flags).

En principio, para la segunda parte estoy preparando las aventuras de Scott Addams, y luego tendremos las de Infocom, EAMON,  Quill/PAW, GAC y algunos sistemas menores (¿alguien conoce Genesis de CRL?).


sábado, noviembre 19, 2011

Entrevista y visita a la casa de Lord British



Hace ya un tiempo que vi este video, pero ahora que lo he vuelto a encontrar me he decidido a ponerlo por aquí. Incluye una rápida entrevista sobre la los juegos de Lord British (ya sabeis, la saga Ultima) y luego una visita a su mansion (que, por cierto, ¡esta en venta ahora!) y por último un poco sobre su viaje espacial.

El video esta en ingles sin subtítulos, pero me parece que se entiende bastante claridad, así que echadle un vistazo.

De : Ultima Aiera

viernes, noviembre 18, 2011

Batman en los videojuegos

Ahora que acaba de salir la ultima entrega del hombre-murciélago para consolas modernas creo que es un buen momento para volver la vista atras y echar un vistazo a la trayectoria videojueguil del señor de la noche a lo largo de los años. Aunque voy a comentar todos los que recuerdo, me voy a centrar en los juegos que he jugado a fondo (que a lo tonto son casi todos hasta 32bits). Espero que me acompañéis en mi viaje por el tiempo por la Gotham digital.

Hoy en dia lo normal al ver el juego de una licencia famosa es que todo el dinero invertido en la licencia es dinero que no se va a invertir en el juego, y aprovechando el nombre popular nos venderán un juego barato. Aunque esta maxima es cierta para la mayoría de los casos, Batman, por suerte para nosotros, es una excepción. Y es que Batman, comparativamente a otros super-heroes, ha sido muy bien tratado por el medio interactivo. 
 
This page contained an embedded video. Click here to view it.
Batman (Amstrad CPC)

El primer juego que voy a comentar es "Batman", a secas, desarrollado por Jhon Ritman y Bernie Drummond (desarrolladores estrella de la epoca) y portado a casi todas las plataformas de 8 Bits. El juego es en perspectiva filmation (lo que hoy es perspectiva isometrica) siguiendo todos los cliches del genero. Teníamos que vagar por innumerables habitaciones de la bat-cueva, esquivando enemigos y recogiendo objetos, que a modo de apoyo no servirían para saltar a lugares inaccesibles. La mision de Batman, aunque realmente importaba poco, era recuperar las piezas del bat-móvil desperdigadas por el villano de turno, y a la vez recuperar sus gadgets; sin los que, por ejemplo, no podia ni saltar.

El juego resultaba muy rapido comparandolo con otros juegos "filmation" y la dificultad era elevada, pero no imposible. En definitiva, un juego muy bueno para los estándares de la epoca, pero que de Batman tenia el sprite del protagonista y la sintonia de la serie de los 60 que sonaba al empezar... el resto, incluyendo enemigos, escenarios y desarrollo del juego poco tenia que ver con nuestro héroe.

Batman The Caped Crusader (Amstrad CPC)

Y poco tiempo después, siendo totalmente independiente, aparece "Batman The Caped Crusader", que ya seguia mas de cerca al comic, incluso el desarrollo era a partir de viñetas-escenario. El juego era una video-aventura, muy de moda en la epoca, con toques arcades. En diferentes historias Batman debería de resolver pequeños puzzles y liarse a tortas con los esbirros de turno. No tuve la suerte de jugarlo en su momento, pero era un juego bastante trabajado.

This page contained an embedded video. Click here to view it.
Batman The Movie (Amstrad CPC)

El siguiente del que vamos a hablar es el "Batman The movie", para ordenadores de 8 y 16 bits. Este juego lo juegue con ansias en su momento y me tuvo mucho tiempo enganchado. Como todos los anteriores este tambien estaba realizado por la compañía ingles Ocean y estaba inspirado en la película de Tim Burton. El juego era un "multi-carga", algo muy de moda entonces, en que cada carga era un estilo diferente de juego. Así la primera teníamos a un Batman plataformero en que podíamos usar muchos de sus gadgets y habilidades(como la bat-garra para engancharse de los techos). Luego teníamos fases de conducción, puzzle y vuelo con el bat-wing, hasta llegar a la ultima, que repetia el estilo de plataformas. Es un juego redondo en la mayoría de sus fases (aunque la de puzzle es muy sencilla). El problema de tanta variedad es que al final cada tipo de juego sabe a poco (podrían haber aprovechado algo mas la fases de plataformas) y que si tenias un ordenador de 8 bits de casette, morir en un fase avanzada significada volver a empezar y sobretodo cargar cada fase desde el principio.

Batman (GB)

El "Batman The Movie" fue para mi la despedida del hombre-murciélago de los ordenadores para aterrizar en consola. Utilizando el logo de la película tenemos un "Batman" para Game Boy que mas bien parece que hayan cogido otro juego y puesto el sprite del protagonista, porque el desarrollo (muy entretenido, por otro lado) nada tiene que ver con el hombre murciélago, ya que avanzamos con un Batman pistolero rompiendo bloques para conseguir extras...

This page contained an embedded video. Click here to view it.
Batman  (Megadrive)

Tambien hubo una entrega de la primera película para Megadrive, aunque era un beat'em'up / plataformas del montón, sin destacar en nada (y eso que incluso contaba con fases de conducción).

Batman Return of The Joker (GB)

Un titulo mas para la NES y la Game Boy clásica el "Batman Return of the Joker". Mejoraba el anterior en ambientación(por fin el juego si parece de Batman en GB) y con unos gráficos bien grandes. En la version GB el problema era la jugabilidad, hasta que le cojáis el tranquillo a como funcionaba el salto y la bat-garra, era difícil avanzar ( el juego es famoso por que mucha gente no puede ni pasar de la primera escena). De todas formas cuando lo jugué yo no veia esto como defectos, sino como un aliciente (había muchos otros juegos aun mas difíciles en GB) y lo disfrute bastante.

This page contained an embedded video. Click here to view it.
Batman Returns (SNES)

Batman Returns (MegaCD)

Y en este momento llega la segunda parte de la película de Tim Burton, "Batman Returns", que genero juegos para SNES (un beat'em'up de la mano de KonamI) y MegaDrive (un plataformas, curioso, pero del montón). La version de SNES era un "Final Fight con Batman", resumido en una frase. Y aun siendo muy entretenido, el ser para un solo jugador (como muchos beat'em'ups de la epoca para SNES), le restaba mucha diversion. Por otro lado la version de MD salía perdiendo respecto a la de SNES, pero esta pego un subidon cuando fue relanzada para MegaCD, incluyendo unas nuevas fases de conducción con el Bat-móvil. Estas fases eran impresionantes para la epoca,  aprovechando el nuevo hardware para generar un scaling suave que hacia prácticamente olvidar que tambien había fases de plataformas.

This page contained an embedded video. Click here to view it.
Batman Forever (SNES)

A partir de aqui los juegos de Batman peliculeros estarían bastante ligados en calidad a los filmes y sufrieron el mismo bajón de calidad que estas. Los juegos que aparecieron para 16 bits y 32 bits de las dos ultimas películas originales eran interesantes, pero adolecían del "efecto franquicia". El Batman Forever de SNES y Megadrive era un beat'em'up con pequeños toques plataformeros que utilizaba personajes digitalizados muy al estilo de Mortal Kombat. Aunque los gráficos eran vistosos, la jugabilidad regular y la lentitud del juego (tenia cargas en cartucho!) hace que sea uno de los juegos olvidados de la epoca.

The Adventures of Batman and Robin (SNES)

This page contained an embedded video. Click here to view it.
The Adventures of Batman and Robin (Megadrive)

Sin embargo, paralelamente, Konami se hizo con los derechos de la serie de animación de Batman del momento (tal la mejor sobre el personaje). El juego es una pequeña maravilla que junta un estilo arcade plataformero con diferentes mini-juegos y gran variedad de escenarios, con toda la calidad de Konami daba a sus juegos de 16 bits. Paralelamente, Sega tambien versionó la serie de animación para su Megadrive, pero en un juego totalmente distinto: un shooter frenetico tal vez mas cercano a Gunstar Heroes que otras entregas videojueguiles de nuestro héroe.

Y para mi los juegos de Batman prácticamente acabaron hasta hace no mucho. Hubo mas entregas de la serie animada y de las películas, siendo de calidad muy diferente calidad (especialmente la de Batman Begins tiene una calidad notable). 

Batman Arkham Asylum

Y entonces llego Batman Arkham Asylum. He de decir que fui al principio muy reticente a jugarlo, porque asociaba una licencia buena con un juego malo o del montón  pero por suerte estaba equivocado. Vencidos los prejuicios, comencé esta aventura de Batman, que se desarrolla totalmente en el susodicho asilo-prisión donde acaban la mayoría de los enemigos de Batman. Y me quede con la boca abierta. De principio a fin se nota que es un juego hecho por gente que le gusta el personaje, y que sabe crear contenido nuevo a partir de las historias originales y que incluso parece superar al de comic en muchos momentos.

Aqui controlamos a un Batman oscuro, equipado con toda una mochila de gadgets que nos ayudaran a avanzar en el escenario y a vencer a los enemigos, dandonos muchas veces libertad en la forma en que queramos actuar. El sistema de lucha cuerpo a cuerpo es sencillo, pero con mucha versatilidad y a la vez complejo de dominar. Durante el desarrollo hay momentos que recuerda a un Metal Gear, otros parece un Tomb Raider y de repente nos encontrarmos con un giro argumental y con apariciones de personajes famosos del comic, retratados con toda detalle dentro del estilo del juego. Vamos, ¡todo lo que un fan puede desear!

Y todo dentro de unos escenarios sublimes, que pese a estar dentro de un espacio tan reducido, dan para mucha variedad. Las vistas de Gotham a los lejos desde alguno de los exteriores son simplemente geniales, por comentar algunos de los pequeños detalles. 

Pero sobretodo lo mejor de Arkham Asylum es que... es muy buen juego! No solo para los fans de Batman, tiene una gran jugabilidad y simplemente es divertido de jugar para cualquiera que le guste el genero.

This page contained an embedded video. Click here to view it.
Batman Arkham City

Cuando Arkham Asylum parecia insuperable, llega la continuación, Arkham City y nos vuelve a dejar con la boca abierta. Un escenario enorme y libre para que nos perdamos en el, cientos de pequeñas misiones para que nunca nos aburramos, aparición de aun mas personajes del comic de una forma u otra ¡Incluso tenemos aun mas gadgets que en la primera parte! Tenemos tambien mas de un personaje para controlar (lo que para muchos deberá ser previo DLC v.v) y varios modos extras para alargar la vida del modo principal del juego.

En fin, hasta aqui llega este viaje personal por los videojuegos de Batman. Espero que os haya gustado y que echéis un vistazo a los juegos mas antiguos, ¡que merecen mucho la pena! ¿Me he dejado alguno importante sin comentar / jugar?


miércoles, noviembre 02, 2011

Introducción a los microordenadores Made in Japan




Es principalmente un programa de la NHK de los años 80 en que se explica el lenguaje BASIC y aplicaciones de los micros, muy del estilo de los programas de la BBC. Tal vez lo mas interesante es que durante la primera parte podemos ver uno poco de la Akihabara ochentera (sale una tienda de microprocesadores que ya he visto en otros videos en youtube).

El programa era muy japones y tiene un estilo muy de los 80; aunque no entiendas japonés puede ser interesante verlo.

martes, octubre 25, 2011

¿A quien quiere Seiya?

[image]
Porcentaje de amor verdadero: 

Shina 70% 
Mari 50% 
Saori 80% 
Miho 60% 


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser