Estos artículos son parte de la serie:
- Creando juegos de aventura con Adventure Game Studio (I)
- Creando juegos de aventura con Adventure Game Studio (II)
- Creando juegos de aventura con Adventure Game Studio (III)
- Creando juegos de aventura con Adventure Game Studio (IV)
- Creando juegos de aventura con Adventure Game Studio (V)
- Creando juegos de aventura con Adventure Game Studio (VI)
Adventure Game Studio es un programa creado por Chris Jones para que amateurs de la creación de videojuegos puedan hacer sus juegos de aventura al estilo de los juegos que hacía Sierra y/o LucasArts a mediados de los 90. En particular, AGS permite concentrar a la persona o al equipo en la creación de contenido del juego y facilitar la programación de los guiones que conformarán la historia. AGS se ha convertido a lo largo de estos años en un programa muy poderoso, con una gran gama de características, un lenguaje de scripting muy flexible, y una excelente comunidad dispuesta a ayudar y con gente bien simpática. En la tercera parte de esta esta serie vamos a bajar el software y a comenzar a explicar algunas funcionalidades básicas de AGS.
Es de notar que de todas las partes, ésta es la que suele ser más frecuentemente cubierta en los tutoriales y, de hecho, AGS trae un tutorial donde va enseñando las características que tiene el programa. Así que no seré extremadamente meticuloso describiendo estas características. Aún sin ser detallista, esta parte promete ser bastante larga, por lo que te recomiendo ir explorando poco a poco y tomarte tu tiempo para entender algunos conceptos en AGS que vamos a introducir.
Parte III: Conociendo AGS
Bajando e instalando AGS
Vamos a comenzar bajando AGS, si es que todavía no lo has hecho, de la página de downloads de AGS. Bajaremos la versión más reciente para el momento de escribir este tutorial, que es la versión 2.72. La mayoría de los releases menores, es decir, aquellos que aumentan la parte decimal, no incluyen grandes cambios con respecto a lo que describiremos aquí, sino que suelen ser adiciones al sistema de scripting. Por otra parte, lo que se describe aquí puede que no sirva para versiones como AGS 2.8, 2.9 o 3.0. Otra nota al márgen es que AGS sólo funciona en Windows, y no hay versiones disponibles para Mac o Linux, aunque sí es posible correr los juegos producidos por AGS en estas plataformas, algo que dejaremos para una siguiente parte.
De la página se baja un zip (llamado en este caso ags_272.zip
), y no trae un instalador, por lo que hay que crear un directorio para poner los archivos que vamos a descomprimir. En realidad eso queda a tu elección, debido a que AGS no depende del sitio de donde lo corras, en este caso vamos a ponerlo en la carpeta «Mis Documentos\ags-2.72
«. A continuación debes descomprimirlo con un programa como WinRAR, o si tienes Windows XP, con el manejador de ZIPs que trae por defecto.
La estructura de archivos que deberías tener en el momento sería algo como esto:
ags-2.72\
docs\
– Directorio de licencias de las diferentes librerías externas que usa AGS, bitácora de cambios, e información para programadores que quieran saber más de AGS.accomole.dll
– Archivo importante para arrancar el editor.acwin.exe
– Archivo ejecutable para los juegos hechos en AGS. No es necesario ejecutar esto hasta crear un juego.agsedit.exe
– El editor de AGS, y el programa que más utilizaremos durante la producción del juego.ags-help.chm
– Archivo de ayuda de AGS, con toda la documentación necesaria para utilizar el editor y programar dentro del software.Default Game.agt
– Todos los archivos que terminan en .agt son plantillas que ya traen ciertas cosas predefinidas para el juego, como la interfaz. La plantilla por defecto trae una interfaz muy similar a la de Sierra a mediados de los años noventa, y un personaje muy similar a Roger Wilco (llamado Ego).Empty Game.agt
– Una plantilla que no trae casi ningún gráfico. Para comenzar juegos desde cero.ROOMEDIT.CLB
– Archivo importante para usar el editor.setup.dat
– Otro archivo importante más para usar el editor.
En este momento te puede ser de conveniencia crear accesos directorios en tu escritorio a agsedit.exe
y a ags-help.chm
para accederlos más rápidamente.
Arrancando AGS y creando el primer juego
Al arrancar por primera vez AGS sólo tendremos la opción de escoger si comenzar un juego nuevo o cargar uno existente. En este caso nos referimos específicamente a crear el directorio donde iremos ensamblando todas las cosas del juego, y donde va a salir el producto final, que es lo que se suele llamar «el compilado».
Así que AGS te va a pedir que selecciones una plantilla, Default o Empty, y el nombre de la carpeta donde van a estar localizados los archivos de AGS del juego. Esta carpeta será creada en el mismo directorio donde tengas instalado el editor. Mi recomendación personal es que en un directorio separado (al lado de esta carpeta, o en cualquier otro lugar) donde vayas guardando los recursos que vayas creando (como imágenes, sonidos y música), y dejes la carpeta que fue creada exclusivamente para uso del editor AGS. A continuación te preguntará la resolución que tendrá el juego. Por ahora pon la que quieras, pero a la hora de crear el juego verdadero esta será una pregunta crucial que hay que establecer antes de hacer nada.
La primera pantalla puede parecer aterrorizante, pero lo cierto es que son opciones que se establecen una sola vez y no se vuelven a tocar. Son fundamentales, eso sí, por lo que es importante aclararlas al inicio de la producción.
A continuación, daremos un paseo por las distintas pantallas que tiene AGS, y diremos para qué sirven. En la siguiente parte de esta serie nos adentraremos en cada una y las detallaremos a medida que se vayan necesitando para el juego.
General Settings (Configuración general)
En esta pantalla estableceremos las opciones básicas del juego, como su nombre, puntaje máximo (si lo vamos autilizar), algunas opciones para programar, reproducir sonidos al ganar puntos, opciones de los diálogos, opciones de dibujo del texto y otras opciones misceláneas. Como dije anteriormente, esto puede parecer mucho, pero lo cierto es que uno establece estas opciones una sola vez, y rara vez se cambian.
GUI (Interfaces de usuario)
AGS define cada conjunto de controles que el usuario puede usar durante el juego como GUIs. En la plantilla Default vas a ver 3 GUIs: una línea de estado que indica el objeto que está bajo el cursor durante el juego, una barra de iconos accesible cuando el cursor se encuentra en el tope de la pantalla, y una ventana de inventario. Adicional a eso, AGS trae unas ventanas predefinidas para guardar, restaurar, reiniciar y quitar el juego, y pueden ser reemplazadas por otras más sofisticadas si así deseas crearlas.
Es de notar que la creación de GUIs requiere algo de programación extensa dentro de AGS. En tu primer juego deberías decidirte por este o alguna plantilla disponible en los foros de AGS, y concentrarte en los aspectos más básicos del proceso. El alcance de tu primer juego debe ser manejable para que puedas llevarlo a cabo. Esto es crucial y lo estaré recordando durante el resto de la serie, sobre todo si no has tenido experiencia programando.
Inventory Items (Items del inventario)
El inventario son todos los objetos que pueden ser llevados por el o los personajes que controla el jugador. Cada objeto en el juego está identificado por un número y tiene un nombre que es el que lee el jugador. Cada objeto también tiene una serie de interacciones que se definen con el botón «Interaction» (es decir, cómo responde el objeto con cada acción del jugador). También tiene una serie de propiedades personalizadas que puedes definir si el diseño del juego lo requiere así. Finalmente tiene una imagen y un «hotspot», que no es más que el punto donde el cursor actúa cuando haces click (En el juego cuando seleccionas un objeto, el cursor toma la forma del objeto).
En este punto habrás notado la presencia del campo «Script O-Name». Es el identificador del objeto cuando estás programando. Para adelantar un poco la parte de programación, que es requerida a la hora de hacer un juego en AGS, cada objeto se le pueden aplicar acciones (que en este caso son llamados funciones), y el nombre del objeto mientras programas se define en este campo.
Global messages (Mensajes globales)
Los mensajes globales son textos accesibles desde cualquier punto del script (el guión de programación). Necesarios para algunas partes del juego, como diálogos o mensajes del estado del juego.
Palette editor (Editor de paleta)
El editor de paleta en mi opinión está muy lejos para lo importante que es al principio de la producción del juego. En esta pantalla se decide el número de colores que llevará el juego. AGS permite crear juegos de 256 colores, color de 16-bits o de 32-bits. Esto es una decisión importante antes de crear ningún gráfico, y debe formar parte del documento de diseño.
Cuando el juego es de 256 colores, quiere decir que tienes acceso a un poco más de 262 mil colores, pero sólo puedes usar 256 al mismo tiempo en una habitación. En mi opinión, en estos días utilizar 256 colores es complicarse la vida innecesariamente con el manejo de paletas. Lo mejor es utilizar 32-bits, o 16-bits si quieres reducir el tamaño del juego.
Dialogs (Diálogos)
Los diálogos en un juego de aventura son casi un requerimiento, pues es a través de los diálogos que el jugador obtiene la información necesaria para resolver el juego. En AGS, los diálogos se representan mediante Tópicos de Conversación, los cuales tienen una lista de opciones, y un script donde se establece el diálogo entre los personajes y las acciones que pueden llevar a cabo. Una de estas acciones es inclusive enlazar con otros tópicos de conversación, por lo que es posible formar complejos árboles de diálogos, reitero, si así el juego lo requiere.
Text Parser (Analizador de texto)
El parser de texto se utiliza en el caso de que tu juego requiera que el jugador escriba acciones en el teclado para ejecutarlas. Para este tutorial vamos a limitarnos a utilizar clicks para interactuar con nuestro personaje, por lo que se deja la exploración de esta pantalla como ejercicio al lector.
Sprite manager (Manejador de sprites)
Los sprites con parte importante de AGS. En resumen son todos los gráficos que no son fondos de habitación, incluyendo: animaciones de acciones de todos los personajes, objetos en la habitación, iconos representativos en el inventario y cursores. Desde aquí podremos importar los gráficos, exportarlos y organizarlos en convenientes carpetas.
Views (Vistas)
Las vistas son agrupaciones lógicas de sprites. Cada vista representa a un personaje haciendo una acción dada una dirección. Cada acción que pueda hacer el personaje debe animarse al menos 4 veces (exceptuando animaciones específicas), una por cada dirección. Si el presupuesto (de tiempo, de dinero, o de talento) lo permite, se pueden hacer hasta 8 direcciones, incluyendo las diagonales, lo que le da un aspecto más pulido al juego.
Characters (Personajes)
Los personajes son los actores dentro del juego. Como tales, tienen un nombre, un identificador para el script, y una serie de animaciones (normal, hablando, haciendo nada, pensando, parpadeando) que no son más que el número de vista correspondiente (las mismas vistas descritas en la anterior pantalla). Además de estas características, se pueden definir interacciones para estos personajes, establecer si el personaje puede ser controlado por el jugador (el personaje 0 siempre es controlado por el jugador) y definir propiedades personalizadas.
Cursors (Cursores)
Los cursores son los gráficos que acompañan al mouse, y suelen identificar la acción que puede hacer el jugador si hace click. En el caso de la plantilla Default, los cursores son representaciones de las acciones de la barra de iconos en el GUI.
Fonts (Fuentes)
Las fuentes son el diseño de las letras (la tipografía) del juego. AGS soporta dos tipos de fuentes: las fuentes TrueType, que son las que utiliza Windows, lo que te permite importar la fuente que quieras a tu juego, o las fuentes SCI, que son el tipo de fuentes que utilizaban los juegos de Sierra de mediados de los años 90. Para importar una fuente, debes crear una fuente nueva con el botón «New font», luego hacer click sobre «Import font…», y finalmente escoger el tipo de fuente. Un consejo para beneficio de tus futuros jugadores: ¡escoge una fuente legible!
Lip Sync (Sincronización de labios)
Una de las características más avanzadas, pero que definitivamente le da un toque de profesionalismo al juego, es la posibilidad de sincronizar labios, que no es más que definir ciertos fotogramas de la animación usual del habla de un personaje para que sean mostradas cuando se van leyendo las letras en un diálogo.
Room Editor (Editor de habitaciones)
Hemos llegado a una de las pantallas fundamentales de AGS, y en la que probablemente vayas a estar más tiempo.
La habitación es la unidad básica de un juego de aventura. En las habitaciones, los personajes pueden caminar e interactuar con otros personajes y los objetos que estén adentro de éstas. El concepto de habitación es deliberadamente abstracto: una habitación puede representar un cuarto cerrado o una zona al descubierto. Cada habitación posee: un fondo, que puede ser animado o no
La primera pantalla del Room Editor te presenta la lista de habitaciones que contiene tu juego, identificados por un número y conteniendo una descripción que tendrás que escribir. Dentro del Room Editor tendrás un menú nuevo en la barra superior llamada «Room», que te permite crear, cargar y guardar las habitaciones, además de importar fondos, definir interacciones y mensajes dentro de la habitación. El Room Editor está dividido a su vez en 3 sub-pantallas, que manejan 3 aspectos distintos de cada habitación: Settings, Areas y Objects.
Room Editor: Settings
Settings maneja los aspectos como guardar la habitación, establecer un fondo, unas opciones básicas, la vista que tendrá el personaje, y propiedades personalizables.
Room Editor: Areas
Areas maneja, valga la redundancia, las áreas de la habitación, otro concepto abstracto que aclararemos a continuación. Existen 4 tipos de áreas: Hotspots, Walkable Areas, Walk-behinds y Regions.
Los Hotspots son las zonas donde el cursor reconoce una parte de la habitación, y el personaje puede interactuar con este. Se suele utilizar para partes de la habitación que no pueden ser representadas con un objeto (p.e. un horizonte). Se pueden definir hasta 30 hotspots en una habitación. Para definir los hotspots se dibujan directamente sobre la habitación. Cada hotspot se compone de un nombre, un identificador, interacciones, propiedades personalizadas, y un punto «walk-to» que es el punto a donde caminará el personaje si interactuas con esa zona.
Los Walkable Areas son las áreas donde puede caminar el personaje. Para cada area se define la escala del personaje cuando está parado allí, y es opcional definir una vista para esa área (p.e. si el area es una escalera vertical, entonces especificaremos una vista donde el personaje esté animado escalando algo). Se pueden definir hasta 16 áreas de caminata.
Los Walk-behinds son máscaras que ocultan al personaje, lo que le da un toque de 3D a la habitación. Para cada Walk-behind se debe establecer una línea base (un baseline), que es la altura a la que debe estar el personaje para ocultarlo detrás del walk-behind correspondiente. La altura es el punto más bajo de la vista de un personaje. Se pueden definir hasta 16 Walk-behinds.
Finalmente, las Regions definen otras interacciones (pararse, entrar o salir de la región) y otras propiedades dentro de la habitación, como nivel de luz (brillo) y un tinte de color. Se pueden definir hasta 16 regiones para cada habitación.
Room Editor: Objects
En esta pantalla se ponen los objetos dentro de la habitación. Los objetos tienen una representación gráfica, y puede que luego pasen al inventario del personaje. Para crear un objeto hay que pulsar sobre «New object» y para seleccionarlo se debe utilizar el selector que está al lado de «Editing object». Para moverlo basta con arrastrarlo, y para fijarlo en una posición temporalmente se marca la opcion de «Lock this object in position». Al igual que un hotspot se definen interacciones, imagen, propiedades personalizables, y una línea base que determina cuando está el objeto delante o detrás del personaje.
Conclusión
Hasta aquí llegamos con otra parte larga de esta serie. En esta parte bajamos e instalamos AGS 2.72. Luego exploramos todas las pantallas principales de AGS una por una, y mientras tanto introduje la terminología de AGS: GUIs, inventario, paletas de colores, mensajes, diálogos, sprites, vistas, personajes, cursores, fuentes, habitaciones y scripts. Estos conceptos son deliberadamente abstractos, pues así se adaptan a cualquier juego, sea de aventura o no (hay gente que hace cosas distintas a juegos de aventura en AGS).
En la siguiente parte de esta serie analizaremos un diseño de ejemplo de un juego y comenzaremos a hacer relaciones concretas entre los elementos del diseño y la terminología de AGS. Poco a poco nos estamos acercando a la producción del juego.
Ciro manda demasiado. Ciro manda en tu casa y en la mía.
Alguien puede pasarme un paquete de rooms de una ciudad para usar en mi nuevo juego? alguien podría decirme como hago para diseñar mis propios rooms?
Hola Alejo,
Pensaba en algún momento escribir sobre el estado de los recursos que hay para hacer juegos en AGS, pero te voy a responder rápidamente.
En la página de tutoriales de AGS lo único que conseguí fue unos fondos para resolución 320×200. Son solo 7 y se ven medio genéricos, aunque pueden ser un punto de partida.
Más interesante es el paquete de recursos Insta-Game de Sylpher, que trae recursos para hacer un juego ambientado en el espacio, con todo lo que puedas necesitar: audio, música, personajes, fondos, objetos, etc. Sin embargo, la licencia prohíbe hacer juegos comerciales con estos archivos. Esto te puede dar un empujón mientras tanto.
Creo que lo más indicado para tí son los fondos de Reality On the Norm, conocido por sus siglas RON. RON es la creación de varias personas, y consta de un gran universo lleno de personajes que viven en una ciudad, y la idea ha sido crear historias que le den vida a esa ciudad. Ahorita mismo en los foros de AGS se está dando una discusión, porque el proyecto lleva años de creado, y es tanto lo que existe que ahora están enredados con las historias.
Los fondos de RON son alrededor de una ciudad, así que creo que te servirán bastante bien (aunque no son profesionalmente creados, eso sí).
Sobre cómo crear las habitaciones es lo que saldrá el próximo lunes en la siguiente parte de este tutorial, la quinta parte. Pásate por aquí y lo podrás leer.
Saludos!
una pregunta; ¿es posíble hacer que un personaje se mueva en distintas direcciones con las flechas de dirección en lugar de con el ratón?. Y otra pregunta ¿hay algún modo de hacer que los botones de acción sean distintos y no grises y feos y colocarlos como quieras? ❓ 😛