Duck Out for Amstrad CPC
8756 hits
Carátula nueva hecha por un servidor
– New cover art made by yours truly
"Duck Out" es la conversión oficiosa para CPC del videojuego homónimo desarrollado originalmente para Spectrum y MSX por Fernando de la Villa e Ignacio Ferreras (que a juzgar por los textos dentro del juego querían hacerse llamar "Bytemess") y publicado en 1989 por la compañía española Xortrapa. En su momento se anunció que habría versiones para CPC y C64 pero nunca llegaron a hacerse, cosa por otra parte comprensible dada la efímera carrera de Xortrapa en general y los problemas internos de las versiones originales de "Duck Out" en particular, con graves errores de diseño y programación que la generosa "Microhobby" pasó por alto pero la más severa "Micromanía" no perdonó.
–– "Duck Out" is the informal CPC port of the homonymous videogame originally developed for Spectrum and MSX by Fernando de la Villa and Ignacio Ferreras (who according to the texts within the game seemed to label themselves "Bytemess") and published in 1989 by the Spanish company Xortrapa. Back in the day they announced that versions for CPC and C64 would be released, but they never came to be, something understandable given the general ephemeral career of Xortrapa and the particular internal problems in the original versions of "Duck Out", with serious errors of design and programming that the generous magazine "Microhobby" forgave but the more severe "Micromanía" didn't.
"Kung-Fu Master" (1984) y "Vigilante" (1988), ambos de Irem
– "Kung-Fu Master" (1984) and "Vigilante" (1988), both from Irem
El argumento del juego es más que trivial. El héroe es un pato que debe escapar del restaurante donde ya estaba todo listo para convertirle en un asado, cruzar la ciudad entera hasta llegar al parque municipal y regresar al estanque donde le espera su amada: todo ello sin más defensa que una sartén por arma contundente. En resumen, lo que ya habíamos visto en "Kung-Fu Master" (Jp. "Spartan X") y "Vigilante" por decir solamente dos títulos.
–– The game plot is more than trivial. The hero is a duck who must escape from the restaurant where everything was ready to turn him into a roast, running through the whole city until reaching the central park and heading back to the pond where his girlfriend awaits: all without an defense but a frying pan as a blunt force weapon. In few words, the same we had already seen in "Kung-Fu Master" (Jp. "Spartan X") and "Vigilante" just to name two titles.
Carátula original y grabación del juego funcionando en un MSX
– Original cover art and recording of the game running on a MSX
Lo que hizo que "Duck Out" destacase era el gran trabajo gráfico de Ignacio Ferreras, que resultó en el videojuego español con los gráficos de mayor tamaño y mejor animados de la era de los ocho bits. Otros juegos tenían sprites aún mayores (también en 1989 fueron publicados por Dinamic "After the War" de Enrique Cervera, con gráficos de Jorge Azpiri, y "Astro Marine Corps / AMC" de Creepsoft) pero no estaban tan bien animados ni por casualidad.
–– The thing that made "Duck Out" stand out was the great graphical work by Ignacio Ferreras, who led to the Spanish videogame with the largest and best animated sprites in the eight-bit era. Other games had even bigger sprites (also in 1989, Dinamic published "After the War" by Enrique Cervera, with graphics by Jorge Azpiri, and "Astro Marine Corps / AMC" by Creepsoft) but they weren't as well animated at all.
Tablas de sprites y azulejos
– Sprite and tile sheets
El objetivo de la presente conversión era doble. No solamente había que convertir el juego de una plataforma a otra, sino que además había que limar las muchas asperezas que lo hacían bastante poco jugable, desde los controles mal definidos que paralizaban al protagonista en los peores momentos posibles, hasta la inconsistencia en los movimientos de los enemigos, pasando por la lentitud de la acción, la dificultad desmedida, la sensación general de indefensión y la falta de recompensa al esfuerzo del jugador. Para colmo el juego era mudo.
–– The goal of this port was twofold. Not only I had to convert the game from one platform to another one, but I also had to soften the many rough spots that made it very unplayable, ranging from the badly defined controls that paralysed the hero in the worst possible times, to the enemy motion inconsistency, to the slow action, the disproportionate difficulty, the general feeling of defenseless and the rewardlessness to the player's effort. Even worse, the game was mute.
Demo del motor gráfico
– Video engine demo
Ante todo y sobre todo, lo primero era conseguir un motor gráfico solvente. El scroll original era inaceptablemente lento, máxime sabiendo que en el Spectrum hay que mover la mitad de memoria de vídeo que en el CPC. En consecuencia hube de escribir un dibujador de tiles de 6x1 caracteres (48x8 píxeles) casi totalmente desenrollado y un pintador de sprites igualmente forzado, además de usar el doble búfer por hardware del CPC. Todo esto significaba desde muy temprano un hándicap grave: la escasez de memoria. Incluso reduciendo la VRAM visible a 32x24 caracteres y utilizando la VRAM invisible para almacenar gráficos (los sprites del protagonista, por ejemplo) la riqueza gráfica del juego original me obligó a emplear un sistema de "súper-azulejos" para reducir el peso de los mapas a su novena parte, lo más que pude reducirlos manteniendo los conjuntos de azulejos y súper-azulejos representados con 8 bits por elemento, y a prescindir de un juego de caracteres de texto propio: en su lugar se emplean los caracteres por defecto presentes en la ROM del CPC.
–– First and foremost, the top priority was to achieve an efficient video engine. The original scroll was unacceptably slow, especially given that on the Spectrum we move half as much VRAM as on the CPC. Thus I had to write an almost completely unrolled 6x1 character (48x8 pixels) tile blitter and a similarly forced sprite renderer, as well as using the CPC hardware double buffer. All these things meant since very early a serious handicap: lack of memory. Even by shrinking the visible VRAM to 32x24 characters and using the invisible VRAM to store graphics (for example, the hero sprites) the rich graphics from the original game made me rely on a "super-tile" system to compress the game maps to one ninth part, the most I could pack them down while keeping the tiles and super-tiles in 8 bits per item, and to give up on a custom character set: instead, the game uses the CPC ROM default characters.
Primeros pasos del juego en acción. Obsérvese la tosca IA de los malos
– First steps of the game in motion. Notice the baddies' rough AI
Corregir los errores de diseño del juego exigió bastantes consideraciones sobre lo que hacía del primer juego una mala experiencia. El primero de todos los problemas era el control: el juego original permitía hacer dos tipos de ataque, y para hacerlos era preciso hacer DISPARO+ARRIBA (golpe frontal) o DISPARO+ABAJO (golpe bajo); limitarse a pulsar DISPARO paralizaba el personaje, y combinarlo con IZQUIERDA o DERECHA le hacía caminar sin atacar. Esto no es nada intuitivo: el ataque siempre debe tener prioridad, y el ataque más habitual debe tenerlo sobre el menos común. En consecuencia decidí que DISPARO+ABAJO mantuviese el golpe bajo, y que todas las demás combinaciones de DISPARO realizasen el golpe frontal; en particular, DISPARO+IZQUIERDA y DISPARO+DERECHA serían capaces de hacer que el jugador diese la vuelta si un ataque por la espalda lo requiriese. Por supuesto, hice que los "hit boxes" fuesen mucho más generosos que los originales, tan exiguos que era imposible quitarse de encima a enemigos que ya hubiesen entrado en contacto con el jugador.
–– Fixing all the design errors from the game required many considerations over what turned the source game into a bad experience. The first of them all was the control: the original game allowed two attacks, to be performed with FIRE+UP (frontal attack) or FIRE+DOWN (ground attack); pressing FIRE alone paralysed the hero, and mixing it with LEFT or RIGHT made it walk without attacking. This wasn't intuitive at all: attack should always be the priority, and the most common attack should have high priority over the least common one. That's how I decided that FIRE+DOWN would keep the ground attack, and all the other FIRE combinations would perform the frontal attack; most particularly, FIRE+LEFT and FIRE+RIGHT would let the player turn around if a attack from behind required it. Of course, I made the "hit boxes" way more generous than the original ones, so tiny that it was impossible to get rid of enemies that were already touching the player.
Puntuación, distancia, efectos especiales...
– Scoring, distance, special effects...
Los demás problemas estaban parcialmente relacionados entre sí. La frustración del jugador provenía principalmente del daño que los enemigos hacían: no solamente era elevado, sino que además era irreversible. Por ello elegí rebajar un poco este daño e introducir una forma de recuperarlo: cada enemigo derribado devolvería un poco de energía al jugador. Daniel Canales (que escribiría la música del juego) propuso una mejora adicional, que además añadía un elemento de interés: combos de golpes. Un contador registraría el número de enemigos abatidos consecutivamente, y la energía recuperada por cada sartenazo sería proporcional al contador. Esto además hacía possible un sistema de puntuación que sumaría puntos con cada combo y liquidaría bonus al final de cada fase: otra forma de elevar el interés del jugador. Otra causa de desesperación era la longitud de las fases: el jugador no podía saber cuánto le faltaba para terminarlas. Por ello añadí un sencillo marcador que mostraría la ubicación actual del jugador dentro de la fase actual. Esta información tenía su valor, porque un jugador al que le quedase poco para terminar la fase podría asumir unos riesgos que otro que aún estuviese lejos de acabarla no podría aceptar.
–– The other problems were partially related to each other. The player's frustration came mostly from the damage dealt by enemies: not only it was high, but it was also unrecoverable. Thus I chose to lower it a little and to add a way to recover it: each beaten enemy would return a little energy to the player. Daniel Canales (who would write the game music) suggested an additional improvement, that also added an element of interest: hit combos. This also allowed for a scoring system that would add points on each combo and would calculate bonuses at the end of each level: another way to increase the player's interest. Another source of desperation was the level length: the player couldn't know how much he had yet to walk to finish them. Thus I added a simple gauge that would show the player's current location within the running level. This information had its value, because a player who was very close to finishing the level could take risks that another one, still far from completion, wouldn't be able to accept.
Los nuevos impactos: todo se mueve
– The new impacts: everything moves
Otras mejoras se enfocaron en la parte visual del juego, tan cuidada por el grafista original pero tan poco cuidada por su amigo el programador. Un enemigo vapuleado ya no se limita a quedarse quieto y aturdido durante unos segundos y desaparecer después: ahora hay estrellas en el impacto y la víctima sale despedida. También añadí animación al menú: los botones brillan y los personajes parpadean. Ah, y como el motor gráfico es capaz de todo lo que queramos, el límite de enemigos simultáneos ya no es tres, ¡sino cuatro!
–– Other improvements focused on the visuals of the game, so well cared by the original graphist but so little by his friend the programmer. A stun enemy is no longer staying still for several seconds to disappear later: stars flash on impact and the victim flies away. I also added some animation to the menu: the buttons shine and the characters blink. Oh, and since the video engine can handle anything we want, the maximum amount of enemies at once is no longer three, but four!
Demo de la tercera fase, todavía con la canción de "Averno"
– Third level demo, still with the "Averno" song
El juego tardó su tiempo, sin embargo, merced a una serie de retrasos debidos a la vida real. Hubo demos jugables en varios eventos retroinformáticos en 2015 y 2016, pero o bien les faltaban algunas de las mejoras ya discutidas, o bien aún tenían la música provisional: en 2015 aún era el tema de piano de "Averno", mientras que en 2016 eran "rips" de otro juego de puñetazos en 2D laterales: "My Hero" (1985) de Coreland para Sega. Finalmente Daniel escribió una serie de partituras que tras muchos dimes y diretes se convirtieron en la banda sonora definitiva del juego.
–– The game took a while, however, because of a string of delays caused by real life. There were playable demos in several retrocomputing events held in 2015 and 2017, but they either lacked the aforementioned improvements or they still had temporary songs: in 2015, it was the piano theme from "Averno", while in 2016 they were rips from another sidescrolling 2D fighting game: "My Hero" (1985) by Coreland for Sega. Finally, Daniel wrote a series of scores that after lots of talks and exchanges turned into the game's final soundtrack.
Y así llegamos al estado actual de las cosas, con el juego listo para ser publicado. ¡Espero que os guste tanto como yo quise que me gustase en 1989!
–– And thus we reach the current state of things, with the game ready for release. I hope you'll like it as much as I wanted to like it back in 1989!
César N.G., 27 Dec 2017
Staff
Programa y retoques / Programming and editing
César Nicolás González
Banda sonora musical / Musical soundtrack
Daniel Canales
Programa original / Original programming
Fernando de la Villa
Gráficos originales / Original graphics
Ignacio Ferreras
Changelog
20180103: Second public release. Made pilot tones longer in the tape version to ease recording on a real cassette. Energy recovery is no longer proportional to the current combo chain.
20171227: First public release.