16 de Diciembre, 2014

»One Game a Month · Anoche escribí mi post-mortem de one game a month (en inglés). Traduciendo las conclusiones:

El reto 1GAM ha sido intenso y duro, muy duro. He aprendido muchas cosas nuevas y he acabado 12 juegos. Eso es parte del reto: acabar proyectos. Es posible que haya cometido los mismos errores una y otra vez, pero perseverar es lo importante.

Hay 0 comentarios, anotación clasificada en: 1gam.

14 de Diciembre, 2014

Micro INC

Ya está, he finalizado mi reto de un juego al mes durante 2014; algo antes porque se acercan las vacaciones y no tendré mucho tiempo libre para programar :).

El último juego de la serie es Micro INC, otro juego tipo puzzle en la categoría match-3.

Pantalla del juego

La idea no es muy excitante, pero como acabé completamente agotado con el juego anterior, y dado que tenía unas dos semanas para hacer el juego (que al final ha sido una semana solo), no tenía más remedio que ir a por un objetivo relativamente sencillo. Al final el juego no está mal del todo y se deja jugar, aunque no sea muy original.

Intentaré escribir un post-mortem de la experiencia que ha sido programar un juego cada mes, pero eso será más adelante :).

Hay 0 comentarios, anotación clasificada en: programming, 1gam, speccy.

30 de Noviembre, 2014

Escape from Colony 8

Acabo de publicar el juego de Noviembre dentro de mi reto de un juego al mes: Escape from Colony 8.

Se trata de un juego tipo corre y dispara en el que controlamos a un personaje que tiene que escapar de una base espacial invadida por criaturas alienígenas (y hostiles, claro). Algo parecido a lo que propone Alien Gamma, pero en prespectiva top-down, y con un mundo continuo (sin niveles separados), y además para el ZX Spectrum 48K (como mi juego anterior: The Legend of Traxtor).

Pantalla del juego

He vuelto a repetir con Z88DK (y sus bugs :P) y la librería SP1 para ayudarme con los sprites. Creo que ya les voy cogiendo el tranquillo, aunque gran parte del trabajo es programar herramientas de apoyo (en Python).

Este juego es técnicamente más complejo que el anterior y me ha costado bastante hacerme a las limitaciones de la memoria (en teoría 48KB, y en la práctica tenemos mucha menos). El diseño de los mapas ha quedado muy bien, pero usan bastante memoria, con lo que el juego es algo corto (y no muy difícil). Buenos gráficos pero poco juego :(.

Sigo aprendiendo y es un juego menos que tengo que hacer este año, ¡me falta uno solo para acabar el reto!

Hay 0 comentarios, anotación clasificada en: programming, 1gam, speccy.

2 de Noviembre, 2014

It's Behind You

Estoy leyendo muy poco este año, simplemente porque no encuentro el momento con tanto lío de hacer un juego al mes. Al final mi costumbre de leer antes de irme a la cama es bastante difícil de mantener porque casi prefiero dormir un poco más y estar más descansado al día siguiente, y no termino de engancharme a ningún libro.

Lo último que he leído es este It's Behind You de Bob Pape, donde nos cuenta su experiencia desarrollando la conversión al ZX Spectrum de R-Type, un shoot'em up de máquina recreativa que tuvo algo de nombre a finales de los 80 principalmente por las conversiones que se hicieron a diferentes sistemas domésticos. Creo jugué al juego en el Amstrad de un amigo, pero nunca vi siquiera la recreativa (o la versión para Spectrum).

El libro está disponible en formato e-book para descargar desde la página del autor en bizzley.com, y la entradilla es como sigue:

In April 1982 Clive Sinclair launched the follow up to his successful ZX81 home computer, The ZX Spectrum. In the ten years that followed over nine thousand commercial games were written for this iconic machine. This is the story of one of them.

El libro es entretenido, Pape tiene gracia explicando la historia, y yo diría que tiene un efecto inspirador similar al de Masters Of Doom, aunque la carga nostálgica es bastante mayor, al menos para mi que mi primer ordenador fue un ZX Spectrum +2A ;).

El libro proporciona una idea de lo particular era el negocio del desarrollo de videojuegos en UK cuando las máquinas de 8-bit dominaban el mundo (de los dormitorios de los programadores a millones de jugadores), algo de contenido técnico interesante de leer (casualmente ahora que estoy programando un poco para Spectrum), y en general recomendable para cualquiera que vivió aquella época y sus ordenadores (y con un poco de nivel de inglés, eso sí).

Hay 0 comentarios, anotación clasificada en: lecturas.

28 de Octubre, 2014

»Resultados de la SpeccyJam · Ya están los resultados de la SpeccyJam en la que participé con The Accolade. Mi juego ha quedado entre los tres primeros según uno de los jueces (hay un ganador por juez), lo cuál no está nada mal :). Sigo trabajando en mi siguente juego, que como Traxtor (ZX), será para ZX Spectrum.

Hay 0 comentarios, anotación clasificada en: speccy.

5 de Octubre, 2014

Programando juegos para Spectrum

La verdad es que The Legend of Traxtor (ZX) ha sido un poco accidente: no lo planee demasiado y ha sido más un proceso de descubrimiento que otra cosa en cuanto a que funciona, pero hay muchas partes que no están nada bien implementadas (incluso llegando a afectar la jugabilidad; por ejemplo las explosiones bloquean los controles durante demasiado tiempo).

Las herramientas básicas que he usado son las siguientes:

  • Z88DK: compilador de C para máquinas basadas en el procesador z80, lo que incluye el ZX Spectrum (y otros de la época como el Amstrad CPC). Incluye un ensamblador y es bastante sencillo escribir código asm en linea. El runtime no es muy grande, pero en general es más lento y ocupa más espacio que escribir ensamblador a mano (claro).
  • La librería SP1: el Spectrum no proporciona soporte para sprites vía hardware, así que no hay otra que implementar un motor basado en las funcionalidades que sí están disponibles. En realidad no usé sprites en el juego, pero la librería es cómoda para manejar tiles (sobretodo si no sabes qué estás haciendo :P).
  • png2c: una herramienta que he programado para convertir imágenes en código C (datos en realidad) listo para usar con SP1.
  • png2scr: permite convertir imágenes al formato SCR que podemos mostrar en pantalla durante la carga del juego

Aparte existen gran cantidad de programitas que nos pueden ayudar en el proceso, pero la mayoría son binarios para Windows y, aunque muchos de ellos funcionan con WINE, programar png2c y png2scr ha sido entretenido y un buen ejercicio para ayudarme a entender cómo funcionan algunas cosas.

En general Z88DK tiene de todo para empezar, pero si quieres investigar un poco (y para dar un toque final más profesional), recomiendo echar un ojo a otras herramientas que pueden ser úiles (como bas2tap, porque el cargador BASIC que usar Z88DK es bastante limitado). Muchas de las herramientas incluyen el código fuente en C y compilan en Linux sin problemas.

Ya en cuanto a documentación, para Traxtor no necesité mucha porque los ejemplos y el código fuente de SP1 son bastante claros, pero si alguien quiere hacer las cosas un poco mejor a la primera recomiendo ojear How to Write Spectrum Games (de Jonathan Cauldwell, al final de la página; es en ensamblador, pero muy bien explicado) y en general la documentación enlazada en WOS.

Además hay kits para desarrollar juegos, como La Churrera de Mojon Twins (sí, españoles y a estas alturas... ¡leyenda! :D), o el Arcade Game Designer de Cauldwell; que incluso si no nos interesa usarlos, siempre podemos ojear su código fuente cuando nos quedemos atascados ;).

Hay 0 comentarios, anotación clasificada en: programming, speccy.

27 de Septiembre, 2014

»The Legend of Traxtor (ZX) · Acabo de publicar The Legend of Traxtor (ZX), una conversión del juego del mismo nombre que presenté a la GBJam 3. Aunque no es un juego complicado de implementar, tener que aprender a programar para una nueva plataforma no es fácil (y menos para el ZX Spectrum). Pese a todo no me ha llevado demasiado tiempo (lo he programado a ratos en C, con Z88DK), y estoy muy contento con el resulado. Ya comentaré más en detalle, porque he aprendido muchas cosas nuevas ;).

Hay 0 comentarios, anotación clasificada en: programming, 1gam, speccy.

14 de Septiembre, 2014

»Programando para el ZX Spectrum · Lo pasé bastante bien imitando los juegos del ZX Spectrum, y me picó el gusanillo: ¿cómo sería programar un juego para el Spectrum de verdad? Pues estoy contestando a esa pregunta con un emulador (no tengo el hardware) y Z88DK; intentando una conversión de The Legend of Traxtor. Por ahora parece vialble (y ya he publicado una herramienta: png2c), así que es posible que mi juego de Octubre sea algo especial ;).

Hay 2 comentarios, anotación clasificada en: programming, speccy.

8 de Septiembre, 2014

The Accolade

Ayer acabé y entregué The Accolade, un juego que he hecho en una semana para la SpeccyJam.

La idea era hacer un juego dentro de unas restricciones técnicas para que el resultado evocara el estilo de los juegos para ZX Spectrum, incluyendo la resolución máxima (256×192), el número de colores a usar y limitaciones más complicadas como la del attribute clash (no pueden haber más de dos colores en un celda de 8x8 pixeles). Se pueden leer las reglas en la página de la jam.

Al final he conseguido entregar un juego en isométrica, en el estilo de clásicos como Hero Quest, Alien 8, Batman and Knight Lore, con una mecánica tipo rogue (aunque los niveles no son aleatórios).

El juego no es muy largo, pero dado que es primeros de mes, aún tengo tiempo para añadir más contenido antes de considerarlo mi juego de Septiembre (la publicada es versión 0.9).

Estoy muy contento con el resultado, pese a las dificultades técnicas de la jam. El juego es bastante Spectrum, aunque funcione en una máquina de escritorio moderna. Además es oficialmente mi primer RPG, que casualmente se parece bastante a aquel juego en isométrica que hice en gwbasic cuando era un crío ;).

Hay 0 comentarios, anotación clasificada en: sfml, cpp, programming, rpg, speccy.

5 de Septiembre, 2014

»The Accolade está en camino · Aunque no correrá en un Spectrum de verdad, las reglas son bastante interesantes. Debería de estar acabado este fin de semana ;).

WIP

Es una especie de RPG (bastante sencillo), centrado en exploración y combate, con tintes de rogue-like. Veremos en qué queda ;).

Hay 0 comentarios, anotación clasificada en: 1gam, programming, sfml, rpg, speccy.

Entradas antiguas