Pantalla Inicial de Javi's Big Adventure

Tutorial de AGD II: Los “Tiles”

Continuamos con el tutorial de AGD en español, si empiezas de cero quizá quieras leer la primera parte de este tutorial.

En esta ocasión continuamos con el primero de los siguientes elementos (Los tres restantes serán a entrega número 3, por razones de extensión). En conjunto, los cuatro nos permitirán crear nuestro “mundo virtual”:

  • Bloques (Tiles)
  • Creación de muros
  • Creación de plataformas
  • Creación de nuestra primera pantalla

Una vez completemos este y el siguiente capitulo seremos capaces de crear pantallas sencillas, una base importantísima para seguir avanzando en nuestro uso de AGD con una base sólida.

¿Qué son los Tiles?

Pantalla de la cueva de Javi's Big Adventure

Antes de comenzar a explicar como se crean tales en AGD , quizá estaría bien explicar en que consisten los tiles y que es eso de “mapas hechos con tiles”. Todo comienza con una cruda y cruel realidad: las maquinas sobre las que ejecutaremos nuestros juegos tienen una memoria extremadamente limitada, así que conviene ahorrar lo mas posible.

En la época, los desarrolladores que trataban de grabar los pantallas de sus juegos directamente en memoria, rápidamente se encontraban con el problema de que la memoria del ordenador se llenaba extremadamente rápido, por lo que idearon una forma de reducir el espacio que ocupaban sus pantallas.

“Divide y Vencerás”

Eso reza la famosa máxima, y esto es lo que hicieron, dividir la pantalla en trocitos mas pequeños y repetir estos de forma que con un numero limitado de trozos de gráfico, un poco de arte y un mucho de paciencia, lograban crear pantallas bastante complejas, con un gasto de memoria mínimo, al tener que indicar solo que en la posición tal , estaba el gráfico cual y no almacenar el gráfico en si mas que una vez.

¿No lo ves Claro? fíjate en el agua de la parte inferior de la captura que acompaña a estas lineas y los pinchos del fondo ¿muchos verdad? en realidad no, tan solo hay un gráfico de 8×8 pixels para el agua y otro para el pincho, a base de repetir estos dos gráficos he construido ese “lago mortal de la leche”.

Si lo tradujera en texto, en lugar de tener que guardar algo del estilo: “dibujoagua dibujoagua dibujoagua dibujoagua dibujoagua dibujoagua dibujoagua dibujoagua dibujoagua”simplemente almacenaremos “9 x dibujoagua”lo que evidentemente ahorra cantidades ingentes de memoria para almacenar las pantallas.

El truco radica en guardar una sola vez el dibujo y repetirlo en lugar de almacenar los pixeles de cada parte de la pantalla, requiere mas trabajo para evitar que se note la repetición pero merece la pena.

Hay que trabajarlo

Esta claro que llegar a crear pantallas vistosas, en las que no se note la repetición de los pequeños bloques (o lo menos posible) y que ademas sea colorista, no es fácil, pero os enseñare lo básico para que luego vuestra creatividad os lleve al Olimpo de los creadores de pantallas.

Como me jacto de unir lo viejo y lo nuevo, predicaré con el ejemplo, este video, con un tono muy actual, explica bastante bien como funciona esto en la practica. Hay diferencias entre la época “arcaica” (que es donde haremos nuestro juego con AGD) y la “mona elegante”, pero es un modo muy visual de ver esto en la práctica:

Un pequeño ejercicio: dedica un rato a tratar de identificar los bloques individuales que he usado para crear el mareado de The Javi’s Big Adventuree incluso descárgalo, y usando la versión 4.6 de AGD cargado para ver como esta hecho, no hay mejor forma de aprender que tocar.

Si vas a cargar el juego en AGD, te recomiendo que uses la opción cargar de AGD y pongas la cinta del juego a partir del final de la screen.

Creando nuestros primeros tiles

Editor de Bloques - Bloque 0 Fondo

Lo primero de todo, es acceder al editor de bloques desde el menú principal, pulsando B, esto nos llevara a la pantalla del Editor de Bloques, y mostrara el Bloque 0. Este es un bloque muy especial y que debemos dejar sin tocar. AGD utiliza este bloque , de tipo “empty space” (lo explicaremos cuando lleguemos a crear paredes y plataformas) que básicamente es el “cielo”, o relleno por defecto de todas las pantallas, así que si lo tocamos, variaremos todo el fondo (para bien.y para mal)

Nota importante: Este bloque también define los colores de los sprites, el "paper" de este bloque sera el de fondo y el "ink" la tinta. Es algo que sucede "por que se ha diseñado así"

En la pantalla del editor podemos ver varios elementos, el bloque en tamaño grande, que será donde lo editemos, la version en pequeño para previsualizarlo, el tipo de bloque (que trabajaremos en la próxima entrega), una indicación de las distintas tintas y fondos disponibles (los standard de ZX Spectrum básicamente) y la indicación del número de bloque que estamos editando.

Os copio aquí las lista de atajos de teclado de esta pantalla:

TECLAS
============================================
FLECHAS = Mover el cursor de dibujo
SPACE = Cambia color del pixel seleccionado

Q = Mover a la izquierda por las propiedades
W = Mover derecha por las propiedades

N = Siguiente Bloque
L = Bloque Anterior

P = Rotar color de Fondo
I = Rotar color de Tinta
B = Cambiar Brillo y Flash

M = Copiar bloque actual al portapapeles
K = Pegar bloque desde el portapapeles
C = Limpiar el bloque actual

X = Crea un nuevo bloque
D = Borra el bloque actual

ENTER = Volver al menu principal.

Bloques, bloques, bloques

Bien, continuemos, en la primera entrega creamos “el area de juego”, ahora es el momento de comenzar a llenarla con nuestro “mundo virtual”. Como hemos dicho las pantallas se componen de bloques. Cada uno de ellos de 8×8 pixels. Como sabemos en ZX Spectrum, cada “carácter” de 8×8 pixels puede tener solamente un color de fondo y otro de tinta, por lo que debemos prepararnos para ser creativos.

En esencia es un proceso sencillo, pero lleva práctica. Ya sabéis que el maestro Fran Gallego nos incita a practicar, practicar y practicary aquí vamos a hacer honor a ese guideline!.

Practicar, Practicar, Practicar

Bien, además de trastear con los distintos bloques, en esta ocasión os voy a plantear un reto. La pantalla de “la cueva” que vemos en este mis post, esta construida con 12 tiles distintos.

El reto consiste en identificar esos 12 tiles y replicarlos en el editor de bloques. Como no es algo sencillo, en caso de que se bloqueen , quieran comprobar si los encontraron, o tengan dudas, pueden preguntarme a través de los comentarios aquí, en twitter en la cuenta @metsuke, o por mail en metsuke(at)gmail.com y – en la medida de mis posibilidades y tiempo libre, que no es demasiado – intentare ayudarles.

En el proximo capitulo usaremos esos bloques para crear la misma pantalla en el editor (por si son curiosos) y a continuación haremos un ejercicio artístico que les revelaré en la próxima entrega 🙂

Sobre todo, disfruten haciéndolo!.

¿Te gustó esta entrada?

Si te gustó la entrada, ayudame con los costes de servidor, de dominios, y apoyame para que pueda seguir trabajando en esta dirección, recuerda ¡esta donación es completamente voluntaria!

En caso de que la cantidad propuesta te parezca mucha o (espero que) poca, puedes donar la cantidad que quieras a través de mi página en Paypal.me, si en la nota indicas porque donas y porque no coincides con la cantidad indicada, me ayudaras a entender mejor que creaciones pueden ser de mayor valor para vosotros, y tratare de crear mas de ese tipo (aunque en esencia escribo y creo lo que siento en cada momento). Gracias de todo corazón. Por si te lo preguntas, la intención es dedicar este dinero a lo indicado, pagar servidor, dominios, servicios online y en su caso software y/o formación para poder seguir desarrollando juegos cada vez mejores, escribiendo artículos y compartiendo podcasts. Si por un casual de repente resulta que donáis millones de euros, el orden de mi lista de deseos comienza por pagarme el poder ir a varios eventos retro a lo largo del año, e incluso en un futuro ideal montar un Museo Físico en torno al mundo de la retroinformática y el videojuego. Los sueños, sueños son ?
AGD Home

Tutorial de AGD I : El Comienzo

Capitulo uno

¡Hola a todos! comenzamos aquí un tutorial que me consta deseado desde hace tiempo por una parte de la scene de habla hispana, que no es otra que la versión en español de los archiconocidos videos de Paul Jenkinsonsobre este fantástico maker.
´
Ademas de la cuestión relativa al idioma, esta la cuestión de la versión, aquellos tutoriales datan de 2012 y se refieren a AGD 3.0, cuando actualmente vamos por la versión 4.7 he considerado, por tanto, interesante tomar el relevo y comenzar esta actualización – traducción de dichos tutoriales.

Pero no todo va a ser idéntico, si bien voy a seguir el orden sabiamente indicado en los videos originales, con la ayuda de Sergio ‘thEpOpE’ y otros compañeros de AGDevs, tratare de ampliar y complementar este curso con artículos extra y trucos varios, pero vayamos por pasos, primero, esta fase 🙂

¿Porqué en texto y no en video? (al menos por ahora)

Simbolo internacional de la sordera

Sin duda alguna el objetivo final es contar con ambas versiones, sin embargo cualquier video realmente accesible debe contar con transcripción y/o subtítulos para que personas con discapacidad auditiva puedan acceder al contenido en igualdad de condiciones, y dado el objetivo universal de este tutorial, he creído conveniente crearlo primero en texto, para posteriormente usar este como versión transcrita del Video que grabaré mas adelante. Una vez hechas las dos cosas, la obra estará completa.

Ademas de la cuestión de accesibilidad, esta la cuestión del guion. No quiero improvisar mas de lo imprescindible para enseñar como hacerlo por lo que esta primera versión servirá también como guión para los videos.

Dicho lo cual ¡vamos al lío!

¿Que es AGD?

Avatar de Facebook de Jonathan Cauldwell

Si has llegado hasta aquí sabrás que es, pero aun así lo comentaré, AGD (siglas de Arcade Game Designer, o “Diseñador de Juegos Arcade”) es un software creado por Jonathan Cauldwellque sirve para crear eso, juegos arcade, cuenta con diferentes herramientas, corre sobre la maquina para la que vamos a realizar nuestro desarrollo e incluso cuenta con una suerte de BASIC que nos permite definir y controlar la lógica de nuestra pequeña obra.pasosHay diferentes, versiones, pero en este tutorial nos centraremos en la versión 4.7 para ZXSpectrum, la ultima disponible en el momento de escribir estas lineas. En el foro de AGD (en inglés)puedes estar al tanto de todo lo que se cuece en torno a esta herramienta.

Al lío ¿Como uso AGD?

Caja del ZX-UNO

Nada más fácil, tras descargar nuestro Kit de Iniciacióny descomprimirlo, podemos observar que AGD viene en formato tap, por lo que solo has de cargarlo en tu emulador o maquina habitual, lo único a tener en cuenta es que originalmente AGD fue diseñado sobre ZX Spectrum 128k por lo que se recomienda cargarlo en ese modo.

A pesar de todo yo lo suelo usar mediante Retro Virtual Machine con una maquina +2 Gris, y no he tenido pegas, salvo algunas corrupciones de memoria al usar editor de código y de textos, no puedo afirmar que sea a causa del cambio de modelo, pero tampoco cuesta mucho respetar este requisito para quedarse del lado seguro, Aún así tampoco se puede afirmar con rotundidad que usar otro modelo de problemas concretos por lo que queda en manos de cada cual si sigue o no esta recomendación.

Mientras cargáis de cinta, os quiero comentar un aspecto importante a tener en cuenta: AGD no es retro compatible, lo realizado con AGD 4.6 no puede ser modificado con AGD 4.7, por lo que 1. Guarda versiones de todos los AGD que uses y 2. Elige muy bien que versión usas para un juego porque una vez empezado no podrás cambiar a otra sin reescribirlo todo.

Tras la carga aparecerá la pantalla del menú principal que hemos podido ver al comienzo del este capitulo, esta contienda accesos a través de atajos de teclado a todas las opciones que nos ofrece esta herramienta.

Ademas de la lista de opciones la pantalla de menú nos ofrece la versión actual de AGD en la esquina superior izquierda, y la memoria libre restante en la superior derecha, hemos de revisar esa memoria regularmente para asegurarnos de que el consumo de memoria para los diferentes elementos de nuestro juego es equilibrada, de lo contrario podemos encontrarnos con que no nos queda memoria a mitad del desarrollo.

Si bien acabaremos recorriéndolas todas, para hacer lo mas sencilla posible la curva de aprendizaje seguiremos el orden “lógico” establecido por el autor de los videos en inglés que me parece acertadísimo de modo que, en primer lugar , prestaremos atención a:

  • A – Character Editor (Editor de Caracteres)
  • W – Window Area (Zona de juego)
  • K -Keys (Teclas)

A – Editor de Caracteres (Character Editor)

Editor de Caracteres

Aunque no nos vamos a parar mucho en esta feature, puesto que es bastante autoexplicativa, si cabe decir que en esta pantalla podremos redefinir la fuente por defecto del Spectrum para crear tanto nuestras propias letras, como números y símbolos.

Para acceder pulsamos A desde el menú principal, veremos toda la parrilla de caracteres del juego disponibles así como el area en el que editaremos el carácter seleccionado. Para avanzar y retroceder usaremos N(ext/Siguiente) y P(revious/Anterior), una vez seleccionado el carácter que deseamos editar usaremos las teclas del cursor para movernos por el carácter y space para poner o quitar pixels. Una vez todo este a nuestro gusto, con Intro volvemos al menú principal, así de simple.

El editor cuenta con opciones para cargar y salvar fuentes de cinta, pero no lo explicaremos aquí por quedar fuera del objetivo de este tutorial introductorio.

W – Zona de Juego (Window Area)

Pantalla de definición del Area de Juego

Lo primero que hemos de definir en nuestro juego realizado con AGD es el area de pantalla, no se debe elegir a la ligera puesto que una vez definido, si lo cambiaos AGD borrar gran parte del trabajo realizado hasta el momento, así que tomemos nuestro tiempo para ver si queremos un juego horizontal, o de pantalla mas alta que ancha, cuadrada o en general cualquiera de las configuraciones posibles.

Para definirla, tan fácil como utilizar las teclas 1/2 para aumentar o disminuir el tamaño horizontal, q/a para variar el tamaño vertical y 5/6/7/8 para mover el bloque (formado por los cuadrados rojos y negros) por la pantalla. Es en esta area de cuadros de color donde nuestro juego cobrará vida. Una vez definido, tan simple como pulsar Intro y volvemos al menú principal.

Recordad: Si lo cambiáis AGD borrara todas las pantallas creadas y las posiciones de los sprites (gracias Sergio)  así que ¡decidid con cuidado como será vuestra area de juego antes de lanzar a desarrollar el resto!

K – Teclas (Keys)

Pantalla de selección de teclas

Para concluir esta primera parte, vamos a decirle a AGD cuales serán nuestras teclas de control, pulsamos K y el sistema nos pedirá (atención que aquí pide las teclas en un orden cuando menos fuera de lo común): Derecha, Izquierda, Abajo , Arriba, Disparo y dos mas asignadas como 6 y 7 que pueden servir a cualquier propósito que deseemos. Una vez finalizada la selección el editor nos lleva automáticamente al menú principal.

Tengamos en cuenta que estas serán las teclas que AGD detecte cuando creemos el código que controla a nuestro protagonista, por lo que tengamos cuidado al definirlas y sobre todo apuntalas en algún lado para poder consultarlo ya que AGD no nos ofrece modo alguno de “visualizar” cuales son las teclas definidas actualmente. Esto será tanto más importante cuando empecemos a usar teclas para acciones que, a priori, no sean las mismas que para las que fueron pensadas, pero eso, amigos, es otra historia 🙂

Recapitulando

Pantalla de carga de The Big Javis Adventure

En esta primera aproximación hemos aprendido el manejo básico del editor, así como definido caracteres, area de juego y teclas, en la segunda parte proseguiremos nuestro camino para lograr crear nuestro primer juego con AGD!

Solo una cosa mas, les ruego encarecidamente que no se limiten a seguir los pasos aquí descritos cuan autómatas, experimenten, prueben, pierdan el miedo a romper, pues es la única forma de aprender: perder de vista la costa y si es necesario, volver a nado.

¿Te gustó esta entrada?

Si te gustó la entrada, ayudame con los costes de servidor, de dominios, y apoyame para que pueda seguir trabajando en esta dirección, recuerda ¡esta donación es completamente voluntaria!

En caso de que la cantidad propuesta te parezca mucha o (espero que) poca, puedes donar la cantidad que quieras a través de mi página en Paypal.me, si en la nota indicas porque donas y porque no coincides con la cantidad indicada, me ayudaras a entender mejor que creaciones pueden ser de mayor valor para vosotros, y tratare de crear mas de ese tipo (aunque en esencia escribo y creo lo que siento en cada momento). Gracias de todo corazón.

Por si te lo preguntas, la intención es dedicar este dinero a lo indicado, pagar servidor, dominios, servicios online y en su caso software y/o formación para poder seguir desarrollando juegos cada vez mejores, escribiendo artículos y compartiendo podcasts.

Si por un casual de repente resulta que donáis millones de euros, el orden de mi lista de deseos comienza por pagarme el poder ir a varios eventos retro a lo largo del año, e incluso en un futuro ideal montar un Museo Físico en torno al mundo de la retroinformática y el videojuego. Los sueños, sueños son ?