
Introducción a 'Icarus Adventure System'
Este es un tutorial sobre el funcionamiento de 'Icarus Adventure System'. Programa que nos permitirá
crear nuestros propios juegos de aventuras gráficas para la consola Nintendo DS sin necesidad de programar en C, como actualmente es el caso para la creación de cualquier
juego para la consola Nintendo DS.
El proceso de creación de la aventura se realiza en el PC, editando ficheros de texto, modificando gráficos y realizando conversiones de sonidos. Todo esto
lo uniremos en un fichero .NDS y lo traspasaremos a nuestro cartucho Flash para Nintendo DS.
Todos los ficheros que crearemos servirán para dotar a nuestro juego de la interactividad necesaria que requiera la trama de la aventura, así como ficheros de
animaciones para presentar en determinados momentos, iconos que representarán los objetos que usará el jugador, ficheros de sonido para reproducir efectos de sonido
según los acontecimientos, etc..
En este tutorial, si bien se explicará como usar todos estos ficheros, como convertirlos y como transpasarlos a la Nintendo DS, no se incluye ninguna información
referente a como diseñar objetos, animaciones, personajes, imágenes, sprites, sonidos o músicas. 'Icarus Adventure System' no hace eso (para eso ya hay herramientas específicas),
'Icarus Adventure System' es sólo una herramienta más de todo el proceso de desarrollo de un juego y es la que gestionará, dentro de la Nintendo DS, todos los recursos
gráficos, sonoros y de lógica para presentarlo al jugador en forma de juego.
Si no quieres o no sabes diseñar tus propios objetos, iconos, gráficos o sonidos, entonces tendrás que utilizar todo lo que encuentres por Internet o lo que te pueda
servir de esta distribución de 'Icarus Adventure System'.
Pero como una aventura gráfica no sólo son gráficos, sonidos, musicas y textos sugerentes, habrá una parte de codificación de toda la lógica del juego, donde
tendremos que establecer diversas condiciones y acciones para controlar todo lo que sucede en nuestra aventura y todo lo que hace o intenta hacer el jugador.
Para realizar toda esta parte usaremos un lenguaje de Scripts propio de 'Icarus Adventure System'. Si bien este lenguaje es muy fácil de aprender, no todo estará hecho
con sólo saber como funciona el lenguaje, tendrás que saber como aplicar todo eso que has aprendido, en la construcción de la trama de la aventura que tengas en mente.
En este manual, en la medida de lo posible, se intentarán explicar como codificar muchas situaciones habituales en una aventura gráfica, pero evidentemente es imposible
explicar en este manual como codificar las infinitas situaciones en las que te encontrarás al ir diseñando e inventando tu aventura.
El lenguaje de Scripts de 'Icarus Adventure System' está especialmente diseñado para la realización de aventuras gráficas, por lo que no encontrarás muchos de los
elementos de los lenguajes de programación que pueden resultar muy difíciles de entender para una persona no iniciada en programación.
Por lo demás ya tienes todo lo necesario para poder crear tu propia aventura gráfica para Nintendo DS.
¿ Qué es una aventura gráfica ?
La aventura gráfica, es el género del mundo de los videojuegos, cuyo antecedente más inmediato son las aventuras conversacionales de los años 1980 y cuya edad de oro
puede establecerse en la primera mitad de la década de 1990. La dinámica de este tipo de juego consiste en ir avanzando por el mismo a través de la resolución de diversos
rompecabezas, planteados como situaciones que se suceden en la historia, interactuando con personajes y objetos a través de un menú de acciones o interfaz similar,
utilizando un cursor para mover al personaje y realizar las distintas acciones. El concepto clásico de aventura gráfica incluía la visión de los personajes en tercera
persona la mayor parte del juego, aunque algunas de las aventuras gráficas más importantes se planteasen en primera persona.
Una aventura conversacional es un juego en el que la descripción de la situación en la que se encuentra el jugador proviene principalmente de un texto. A su vez,
el jugador debe teclear la acción a realizar. El juego interpreta la entrada -normalmente-, lo cual provoca una nueva situación y así sucesivamente.
Sistema de juego de aventuras gráficas creadas con 'Icarus Advenrure System':
Como sería muy complicado jugar y realizar una aventura conversacional, donde el jugador tendría que entrar largos textos usando los botones y la pantalla
táctil de la Nintendo DS, el sistema de juego con 'Icarus Adventure System' ha resumido este tipo de entrada de texto, con un selector de 'acción', un selector de 'objeto' y
un selector de algo de la pantalla. Con la combinación de estos tres elementos el jugador podrá construir infinidad de frases, que aunque muy cortas, son completamente
válidas para realizar las múltiples que puede exigir una aventura gráfica. Estos son algunos ejemplos de estos tipos de frases:
Atacar cuchillo -> guardia
En realidad sería: 'Atacar a guardia usando el cuchillo'. La primera palabra siempre es la 'acción' seguida del 'objeto' que se usa para la acción y
finalmente a que o quien va destinada la acción. Esto último no es obligatorio en todas las ocasiones, siendo en algunas situaciones sólo necesario combinar una acción
con un objeto.
Abrir puerta
En alguna situación donde el jugador sólo ve una puerta y no es necesrio ninguna llave para abrirla.
Incluso con sólo la acción también se podrían realizar algunas tareas.
Subir
En alguna habitación donde el jugador está frente a una escalera que sube hasta un salón.
Disponemos de hasta 21 acciones diferentes, 18 de las cuales ya están por defecto en el juego, aunque puedes modificarlas o añadir nuevas.
Los objetos que se usan en estas frases siempre son objetos que lleva el jugador en su inventario de objetos (su mochila).
El destinatario de la acción puede ser cualquier cosa que el jugador haya seleccionado de la imagen de fondo que aparece en la pantalla táctil.
Algunos ejemplos más:
Examinar pergamino (Que sería: 'Examinar el pergamino')
Usar cerilla -> vela (Que sería: 'Usar la cerilla para encender la vela')
Comprar -> tendero (Que sería: 'Comprar algo al tendero')
Tomar pastilla (El jugador se toma una pastilla)
Dar comida -> viajero (Que sería: 'Dar comida al viajero')
Hablar -> vecina (Que sería: 'Hablar con la vecina')
Mostrar salvoconducto -> guardia (Que sería: 'Mostrar el salvoconducto al guardia')
Poner estatua -> pedestal (Que sería: 'Poner la estatua en el pedestal')
Tocar palo -> resorte (Que sería: 'Tocar resorte usando el palo')
Abrir llave -> puerta (Que sería: 'Abrir la puerta usando la llave')
Usar granada (Que sería: 'Usar la granada' en alguna situación donde se aproximen enemigos)
Poner veneno -> vaso (Que sería: 'Poner veneno en el vaso')
Destruir granada -> barrotes (Que sería: 'Destruir los barrotes usando la granada' en alguna celda para salvar a alguien)
Bajar -> cuerda (Que sería: 'Bajar por la cuerda' en alguna situación donde aparece una cuerda en pantalla)
Bajar cuerda -> barranco (Que sería: 'Bajar por el barranco usando la cuerda del inventario')
Cerrar -> caja (Que sería: 'Cerrar la caja')
Cerrar llave2 -> caja (Que sería: 'Cerrar la caja usando la llave2')
.
.
.
Como ves las posibilidades son muy grandes, aunque como creador de la aventura, de tí depende que frases vas a interpretar para tu aventura sean coherentes y también
depende de tí que consecuencias tendrán esas frases en el contexto de la trama del juego. Más adelante hablaremos de que eso de las 'consecuencias' en 'Icarus Adventure System',
sólo te avanzo que es algo llamado 'comandos'.
Pero como las aventuras gráficas no es sólo interpretar frases construidas con mayor o menor gracia, existen otro tipo de situaciones que se dan en un juego realizado
con 'Icarus Adventure System' y que nosotros como desarrolladores de la aventura nos interesará controlar para saber que está intentando hacer el jugador para darle
algún tipo de respuesta. A este tipo de acontecimientos les llamaremos eventos, y nos permitirán controlar el funcionamiento del juego mucho mejor.
Estos son los tipos de eventos que podremos controlar:
Frases de acción del jugador. Son las frases que hemos visto anteriormente.
Dirección a la que se dirije el jugador. Hay cuatro posibles direcciones (Norte, Sur, Este y Oeste). Podremos saber a que dirección
quiere ir el jugador y detenerlo en caso de que no haya realizado ciertas tareas o algo o alguien le impida el paso.
Al entrar en una localidad. Localidad es como se llama en el 'argot' de las aventuras gráficas o conversacioneles, un lugar (una
habitación, una estación, un tramo de una calle, dentro de un coche, una zona de un desierto, etc..) todas son localidades diferentes.
Este tipo de evento nos permitirá detectar cuando el jugador entra en una determinada localidad.
Al tocar zonas de la imagen de fondo de la localidad. Cada localidad tiene su correspondiente imagen de fondo con elementos animados o no.
Este evento permite detectar en que zonas toca el jugador la pantalla táctil, por que podremos saber si toca por ejemplo un armario o un cajón o una trampilla o un zona de
una biblioteca o un personaje o un resorte o los que se nos ocurra presentar y detectar en esa imagen de fondo.
Una vez detectados los eventos correspondientes en cada localidad podremos asignar a cada evento una serie de comandos que serán las consecuencias de esos eventos, como
puede ser mostrar un mensaje de texto, una imagen, una animación, hacer sonar un efecto de sonido, hacer saltar al jugador a otra localidad, quitar salud al jugador, darle
salud, entregar objetos al jugador, etc...
El caso es que tendrás que usar toda tu imaginación e ingenio para combinar todo esto para crear una buena trama, con gráficos variados y animaciones que den un poco
más de vida a la aventura, y que todo el conjunto ofrezca al jugador una atmósfera lo suficientemente interesante como para que no se aburra ni se frustre al jugar a tu
aventura.
Para finalizar esta introducción sólo comentar que es muy recomendable que sigas con los pasos numerados de la sección 'Pasos del tutorial' y en el orden que
se indica, ya que se trata de un proceso de aprendizaje progresivo.