Skip to content

Classic Game Designer o la vuelta a los inicios

septiembre 3, 2013
Los inicios en la programación de videojuegos para ordenador fue toda una carrera de obstáculos para quienes se aventuraron en tal empresa cuando se encontraron frente a frente con un flamante y novedoso ordenador doméstico recién salido al mercado del cual se sabía lo justo a través de la prensa especializada, uno o varios manuales de uso de su intérprete BASIC y lo demás era ponerle imaginación, capacidad de aprendizaje y mucho empeño. Con la aparición de los primeros ordenadores domésticos como los ZX-80, ZX-81 de Sinclair o los VIC-20 de Commodore, como ejemplos de ordenadores punteros y populares en los locos primeros años de los ochenta, cualquiera que supiese programar tanto en BASIC o en lenguaje ensamblador o código máquina, tenía una gran labor por delante para sacar adelante sus proyectos y probar suerte con las compañías de software y editoriales que iban surgiendo y acaparando el mercado del sector.

En el caso del ZX Spectrum, sus usuarios podían contemplar cómo el comienzo de los videojuegos era todavía incipiente en cuanto a sus posibilidades de mejora. Las primeras compañías de software que decidieron apoyar el popularísimo ordenador de Sir Clive Sinclair no pensaban en la calidad de sus primeros títulos realizados por programadores noveles, sino en que éstos llegasen a los hogares. Casi la mitad de los programas comercializados a partir de 1982 para el ZX Spectrum estaban prácticamente hechos en BASIC y entre ellos, juegos muy esquemáticos en cuanto a su puesta en escena, usándose en la mayoría de los casos un set de gráficos GDU (o su homólogo en inglés, UDG) y otras veces entre uno o dos juegos de caracteres de hasta 768 bytes cada uno, almacenados en posiciones altas de la memoria, o bien añadidos en el mismo programa, dentro de una línea REM.

Geeks-iron-curtain-spectrum-crop

En cualquier caso, trato de destacar que en buena parte de esos videojuegos se empleaban personajes y enemigos de pequeño tamaño, ocupando cada uno de ellos ocho líneas de bits, ocho bytes, un solo carácter en definitiva. Luego habían otros que trataban de usar más gráficos para que estos mismos elementos tuviesen un tamaño algo mayor, desde 1×2 caracteres (1 carácter de ancho por dos de alto, o bien 1 de alto por 2 de ancho) y así hasta arriba.

Si nos centramos en esos juegos donde los elementos protagonistas tenían el tamaño de un carácter, con juegos comerciales que solamente usasen este tipo de gráficos, tanto en BASIC como en código máquina o incluso una mezcla de ambos, yo podría citar a modo de ejemplos: Mined-Out, de Quicksilva; Gulpman, de Campbell Systems; Mazeman, de Abersoft o incluso Robber de Virgin Games. Y la multitud de juegos escritos casi exclusivamente en BASIC publicados en muchas revistas, libros y manuales, en los cuales es fácil encontrar que se cumpla esa premisa, son otro claro ejemplo de ello. Es la esencia de lo básico y elemental.

ls1_zps7fb980b5

El caso es que este nuevo programa de creación de videojuegos, Classic Game Designer, diseñado por Dave Hugues, puede permitir al usuario diseñar su propio juego muy al estilo de los primeros programas de entretenimiento aparecidos en el mercado tras el nacimiento del ordenador de Sinclair, con pequeños gráficos del tamaño de un carácter y movimientos arquetípicos. Incluso los mismos juegos en BASIC de entonces y los que se sucedieron con los años predicaban con ese esquema de sencillez, solo que la ventaja de usar esta utilidad es la de poder compilar todo el trabajo en un solo bloque de código, incluyendo los gráficos empleados. Con él, cualquier género arcade es posible, desde un típico plataformas, pasando por una variante del Pac-man o de los que hay que pintar pasadizos varios.

De hecho, se han hecho realidad varios proyectos a raiz de la publicación de esta utilidad, pudiendo señalar al menos dos de ellos: SKURFF, cuyo autor es también Dave Hughes, y los propios juegos de ejemplo que Dave ha añadido a su pack. No obstante, no es de extrañar que con este mismo programa se puedan hacer otra clase de juegos con la sola finalidad de presentarlos a concursos como podría ser el caso de Crap Games Competition que suele organizarse cada año, aunque no tengan posibilidad alguna de ganar (las bases son las bases). Por cierto, y adelanto lo que considero es una exclusiva, he puesto música a uno de esos próximos juegos que ahora mismo se está desarrollando con la ayuda del CGD. Ya os daré más detalles en su momento.

mp1_zps141d459f

Diseñar videojuegos no es un lujo al alcance de cualquiera, pero puede dejar de serlo si se tienen herramientas que os faciliten esa tarea, como ocurre en éste y otros casos conocidos por todos. Para descargar el Classic Game Designer (v1.1) de Dave Hugues y otros archivos complementarios, no hay más que entrar en este hilo de World Of Spectrum y, si tenéis ganas, a crear vuestros propios juegos al estilo de la “vieja escuela”. Todo sea por reinventarse.

Este editor y diseñador de juegos se suma a los ya conocidos por todos, como la famosa Churrera de los Mojon Twins (no olvidaros de su fantástico tutorial) o el ineludible Arcade Game Designer de Jonathan Cauldwell.

4 comentarios leave one →
  1. septiembre 4, 2013 5:42 pm

    Si te ouy sincero.. me interesa todo esto solo por tu música😉

  2. septiembre 5, 2013 10:17 am

    El artículo es interesante y nos recuerda a muchos lo viejos que somos en esto de los ordenadores. Me ha quedado una duda tras leer los primeros párrafos: ¿gráficos dentro de una línea REM? ¿No sería en una DATA o en un DIM?

    • septiembre 5, 2013 9:43 pm

      Más que gráficos, son sus datos los que se almacenan dentro de una línea REM.

      Para ello, lo primero que se hace es llenar esa línea con un montón de caracteres, tantos como datos haya para los gráficos, siempre que no sean precisamente UDGs, puesto que éstos ya tienen su posición definida en el mapa de memoria. Me refiero más a esos gráficos que los programadores añaden de más y pueden llegar a ser más de 21 caracteres.

      Se leen esos datos desde una rutina de lectura de DATAS (con FOR x=dir TO dir+nº de datos (menos 1) : READ a: POKE x,a: NEXT x) y se van almacenando a partir de la posición correspondiente de esa línea. Si es una primera línea de programa, la variable “dir” sería entonces, lógicamente, 23760.

      Después, una vez se han depositado los datos en esa línea de programa, se eliminan las líneas con la rutinas de lectura de los datos y, si el programa ha sido depurado por completo, se graba todo, incluídas las variables del sistema en su caso. Se hace así para ahorrar espacio y evitar las largas esperas de esas rutinas.

      Eso mismo ocurre hasta con rutinas de código máquina. En algunos casos, los programadores ocultan el código de esas rutinas en una línea REM.

      Si se pretende luego listar (LIST) el programa, suponiendo que esté totalmente en BASIC y ya ejecutado, nos encontraríamos con una primera línea y después muchos caracteres sin sentido con atributos de color y un mensaje de error como puede ser incluso “K Invalid colour …” en la parte inferior de la pantalla.

      Pero si se escribe LIST y un número de línea mayor, como por ejemplo LIST 20 o LIST 100, entonces sí podríamos ver el resto del programa con normalidad, mientras no exista protección adicional alguna.

      • septiembre 5, 2013 10:04 pm

        Pues gracias por la explicación. Me imaginaba que tenía que ser algo así, similar a meter datos directamente en posiciones de memoria con el truco, pero no recuerdo haberlo visto nunca en mi tierna infancia con Spectrum.

Publica aquí tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: