Mi experiencia desarrollando para un concurso de Amstrad CPC

Hace ya aproximadamente un año y medio que acabé junto a un grupo de compañeros – Miguel y Juan, siento mi situación entonces – el que sería nuestra entrada para el certamen CPCRetroDev, organizado desde la Universidad de Alicante por nuestro profesor de Videojuegos Francisco Gallego. Un juego que, como os podéis imaginar por el título del texto, fue desarrollado en ensamblador Z80 para Amstrad CPC utilizando además las librerías de CPCtelera -creo que sin ella habríamos muerto. Hoy, después de un mes y pico sin escribir, vengo a realizar un pequeño postmortem de lo que fue su desarrollo. Un trabajo para el cual tuvimos que aprender el lenguaje y que nos llevó más tiempo del deseado y un resultado peor que el esperado -acabamos decimoséptimos de treinta y cinco, básicamente media tabla-, pero del que nos llevamos una experiencia muy interesante. Voy a contaros la historia de Shadow Soul.

amstrad cpcY es que, siendo sinceros, éramos estudiantes que jamás habíamos tocado Z80 y que todo esto nos sonaba a chino. En unas tres semanas aproximadamente tuvimos que ponernos y aprender el lenguaje desde cero, trabajando con las equivalencias de código de lo que eran las llamadas hexadecimales. Hasta ahí casi parece fácil el periplo, pero de los tres componentes del grupo yo me encontraba en una situación personal peculiar que, seamos sinceros, era insostenible para ser una parte funcional del equipo. Trabajando por las mañanas a la vez que iba por las tardes cuando podía a clase (eso el día que no me tenía que ir a mitad y hacerme 30 kilómetros en coche o vagabundear por la ciudad) no son un buen momento para dedicarse a hacer un videojuegos, así que creo que esta es la primera lección que puedo sacar de todo este proceso: para realizar un videojuego, no importa cual, siempre que haya una fecha de por medio inamovible es absolutamente imposible compaginar el desarrollo con cualquier tipo de impedimento personal. Realizar videojuegos precisa de tu cuerpo y alma y es una de las tareas de desarrollo más duras debido a la cantidad de campos que involucra en su creación.

Dentro de la producción del juego, la cual duró dos meses, yo me encargué casi en exclusiva de todo el apartado artístico, sonoro y de diseño de niveles del juego, así como hice el trailer y diseñé el manual que lo acompañaba y ayudé en su planteamiento. Apenas toqué código porque mi tiempo era limitado y los tilesets y el diseño de cada nivel los realizaba en mis pausas del trabajo, además de cada momento que tenía libre por las tardes. Por eso vuelvo a agradecer a mis dos maravillosos compañeros todo el trabajo que aportaron programando, porque poco puedo hablar de ello.

Érase una primera vez

Shadow Soul nació como un plataformero, en parte por ser la idea que más sencilla nos parecía de ejecutar dado el sistema al que iba dirigido. Al final, aparte de las complicaciones derivadas por el cambio de mapas y el diseño de colisiones del juego, dado que pretendíamos que se pudiera matar a ningún enemigo sino que te sintieras como un ninja -de ahí el nombre-, las mecánicas que realmente costaron diseñar y sobre la que se basó todo el sistema de niveles fueron el dash y la escalada. En el juego puedes agarrarte a las paredes para saltar y puedes dashear una vez en el aire. Todo el juego giraba entorno a esa idea y, tras crear una serie de niveles introductorios para mostrar las mecánicas, comenzó su diseño real. Dividiendo el juego en cinco temáticas -campo, desierto, montaña, hielo y castillo-, la verdad es que ni nos preocupamos por darle coherencia al hecho de ser un ninja, simplemente surgió.

shadow soulAl ser un juego de Amstrad no le vi ningún problema con esto, simplemente buscaba hacer mi juego lo más vistoso y, sobre todo, darle una continuidad al mapa creando un sistema de niveles donde cada escenario estuviera conectado con el siguiente y tuviera un sentido de mapeado interconectado. Creo que fue de hecho lo mejor que hice para todo el juego. Sin embargo, el diseño fue un caos. Sin apenas testeo más allá de nosotros, los niveles iniciales de Shadow Soul fueron demasiado complicados y requerían una forma de resolverlo demasiado precisa en muchas ocasiones. Recuerdo que me sentía orgulloso mientras realizaba todo el pixel art y cuando montaba los niveles para luego oír las críticas sobre el diseño. El testing es algo que pocas veces se valora fuera del ámbito del desarrollo; es la diferencia entre lo que puede ser una absoluta basura y un buen juego, ya no diré excelente. Sin una prueba adecuada de las mecánicas del juego y del diseño de niveles tienes que ser un diseñador excelente para que lo que hagas valga la pena a la primera. Aunque sea tu familia y gente cercana, cuanta más gente lo prueba mejor para él, y eso es algo que aprendí para mi siguiente proyecto.

Pero en este caso el tiempo fue el que fue, y ni así llego al nivel de la música. Compuesta en una hora antes de enviar el producto, sigo sin entender del todo a día de hoy cómo siquiera funcionaba el programa que se recomendó o el uso de los tipos de onda a la hora de conseguir funcionar los tres canales de sonido con los que cuenta el Amstrad CPC. No soy compositor y las pocas nociones de música que tengo dan lo justo para no morirme del asco. Otra cosa que aprendí por tanto es a no dejar la música para el final, sobre todo si no tienes ni idea de lo que haces. Con prueba y error puedes conseguir un resultado “aceptable”, sobre todo con sistemas modernos. Es una de las facetas dentro de la creación de videojuegos de la que menos nociones se suele tener de manera general, o al menos desde mi experiencia en la carrera, pero no por ello deja de ser importante. De corazón digo que si buscáis componer para sistemas antiguos busquéis información y, sobre todo, un teclado MIDI. Eso se agradece mucho, por lo que pude probar más tarde.

Tras dos meses de trabajo llegamos al certamen y… decimoséptimos. No es que pensáramos ganar pero esperábamos algo más por ese momento, y es algo que achaco completamente a mi diseño de niveles. Por encima y debajo de nosotros hubieron unos cinco juegos más de plataformas, algunos mejores que Shadow Soul, otros peores. Uno de ellos incluso se parecía mecánicamente, llamado Super Tongue Dino, pero fue pura casualidad. Nuestro juego tuvo sus defectos, pero como todo, siempre se puede aprender una lección. O un par, en este caso.

  • Éramos estudiantes, por lo que equivocarnos no importaba. Cuando un trabajo lo haces para entregar en la carrera tienes este colchón. Lo mismo pasa cuando te tomas el desarrollo como hobby planteado a largo plazo.
  • El testeo es una parte crucial de un desarrollo. Sin él las probabilidades de crear un producto frustrante son muy altas, y aunque es algo que se dice constantemente que es imprescindible, cuando comienzas a desarrollar por primera vez o no se hace o no el tiempo que se necesita.
  • Ensamblador es un lenguaje de programación que tiene sus problemas y sus virtudes. Es difícil, pero también es lo que es y la memoria, al no dar más de sí, obliga al programador a optimizar para meter más contenido y a prevenir pérdidas de memoria, cosa que en juegos más grandes se suele dar si no se tiene cuidado (sobre todo cuando tu te lo montas todo).
  • Al ser un formato de pixeles tan grande, pues en nuestro caso cogimos el modo 0 del Amstrad CPC y contábamos con una resolución de pantalla de 160 por 200 pixeles a 16 colores, los dibujos dan menos de sí, pero a la vez menos conocimientos se necesitan de diseño artístico pues se abstrae la información.

Al final, todo fue una experiencia y podéis incluso probar el juego descargándolo desde aquí. No hubieron daños a largo plazo y eso es lo bueno de trabajar dentro del ámbito académico. Postmortems como el de The Fall of Lazarus o el de Solo: Islands of the Heart te hacen darte cuenta de lo complicado que es el diseño y la producción de videojuegos y cómo se vive de ello al borde de una espada muy afilada en el caso de los indies. Espero que este pequeño texto os haya resultado entretenido y, si es así, en un par de semanas publicaré una continuación con el proyecto final que tuve que realizar en la carrera. Un desarrollo más largo y complicado que pilló en un momento aún más raro que el que aquí acabo de contar, pero en el cual podré explayarme más. Porque los videojuegos son un arte, sí, pero uno muy laborioso y complicado de vivir de él.