Páginas

8 de enero de 2024

«El Amstrad CPC era una máquina encantadora en la que trabajar». Entrevistamos a Dean Belfield, desarrollador de Secret Agent o Gauntlet III para CPC


Cuándo pensamos en las grandes empresas editoras de software como Ocean o U.S. Gold nos olvidamos muchas veces de esos pequeños estudios repletos de talento que hicieron el trabajo duro para ellas. Hoy hablamos con Dean Belfield, quien comenzó una exitosa carrera haciendo juegos para Amstrad CPC y ZX Spectrum en Software Creations. Dean continúa a día de hoy activo tras su alter ego L Break Into Program contribuyendo a la buena salud de la escena retroinformática con proyectos como el BSX, el BBC BASIC para el Spectrum Next o habiendo preservado el archivo musical de Tim y Geoff Follin.

ENGLISH INTERVIEW AFTER THE SPANISH TRANSLATION.

Antes de nada, permíteme darte las gracias por tu amabilidad al aceptar esta entrevista. Estamos ansiosos por conocer un poco más sobre el hombre responsable de algunos de los juegos más interesantes desarrollados al final de la era comercial del Amstrad CPC. Empecemos por el principio: ¿cuándo empieza tu interés en la tecnología?

Empecé a cacharrear con unos nueve años, aprendiendo de revistas como la Hobby Electronics cómo montar circuitos rudimentarios en una stripboard. Por supuesto, habiendo nacido a finales de los sesenta, para cuando tuve edad suficiente ya existían juegos electrónicos simples en las tiendas, como la Binatone/Grandstand TV Ping/Pong y la Grandstand Astro Wars

Entonces, mi mejor amigo recibió un ZX81 por su cumpleaños...

El comienzo de una industria. Fuente: Barnoid
 

¿Cuales fueron las primeras máquinas que entraron en tu vida?

Bueno, diría que el ZX81. Me quedé enganchado jugando en casa de mi amigo, así que pedí uno a mis padres. Por fin tuve uno en navidades de 1981. Era un fuerte gasto para mi familia, ya que no nos iba demasiado bien en esa época. Todavía conservo ese ZX81.

Los desarrolladores soléis estar muy influenciados al comienzo de vuestras carreras por los juegos a los que jugabais a una temprana edad. ¿Cuales eran tus favoritos?

En los arcades serían Scramble, Galaxians y Star Wars. En el ZX81 sería Mazogs.

Jugar mola y para la mayoría de nosotros es suficiente. ¿Qué te llevó a pensar "¡hey, yo también quiero hacer juegos!"?

Tuve la suerte de nacer en la época adecuada, con ordenadores de todas las formas y tamaños saliendo al mercado mensualmente, y con revistas y libros disponibles que traían tutoriales y ejemplos de cómo programar en BASIC y en ensamblador. Estuve metiéndome en ello durante mucho tiempo; entonces otro amigo mío (Andrew Miah) y yo empezamos a picarnos para escribir rutinas en ensamblador. Al final, él consiguió trabajo en Binary Design en Manchester y yo escribí un —nunca publicado— juego para el Spectrum llamado VIS. Es un juego de naves de scroll vertical.

Un clásico

 

Una cosa es pensar "¡yo también quiero hacer juegos!" y otra cosa ser capaz de hacerlo. Por supuesto, por aquel entonces no teníamos ni Stack Overflow ni Google *risas*. ¿De qué recursos disponías para aprender a programar? ¿Cuáles eran tus favoritos?

Ah, aparte de las revistas, de los libros que más aprendí fueron Mastering Machine Code on your ZX80/ZX81 de Toni Baker, The Complete Spectrum ROM Disassembly de los doctores Ian Logan y Dr Frank O’Hara (Melbourne House), y The Z80 Reference Guide de Alan Tully (también de Melbourne House).

En algún momento te encuentras con la confianza suficiente en tu código como para buscar quien lo publique. ¿Cómo fue ese momento en el que te diste cuenta que eras lo suficientemente bueno como para intentarlo? ¿Cuál fue la catarsis?

Pues había escrito un juego para el Spectrum llamado VIS, y un puñado de otras demos incluyendo gráficos vectoriales rellenos. Había terminado la universidad y decidí que quería un trabajo en la industria del videojuego, y mi portfolio era suficientemente bueno probablemente.

Convertido por el mismísimo Simon Brattel

 
¿Cómo era tu equipo de desarrollo en esta temprana etapa de tu carrera?


En casa usaba un Spectrum 48K con una interfaz 1 y dos microdrives. Usaba el ensamblador Zeus para escribir el código fuente. Ya que desarrollaba en la máquina objetivo, mi manera de trabajar era:

  1. Cargar el Zeus en memoria.
  2. Después el código fuente.
  3. Hacer cambios, corregir errores.
  4. Guardar el código fuente.
  5. Ensamblar.
  6. Guardar el archivo binario.
  7. Cargar los gráficos y probar (esto sobrescribiría el ensamblador y el código fuente).
  8. Otra vez y repetir.


¿Qué nos puedes contar sobre tus primeros juegos? Como ya nos has comentado, el primero de todos nunca fue publicado.

VIS (para el Spectrum) era un juego de naves de scroll vertical y vista cenital, muy al estilo de 1942, pero en el espacio. Tenia una muy buena rutina de scroll que usaba la pila para desplazar datos muy rápidamente a memoria. Sin perseguir al raster como en LED Storm o en Cobra, pero aún así muy rápida.

¿Cómo acabaste en Software Creations?

Escribí a todos los estudios de videojuegos que había en Manchester en la época (Ocean, Binary Design, Tiertex, Zippo, etc) intentando vender mi juego, con escasa suerte. Conseguí una entrevista en Binary Design básicamente porque conocía a Andy Miah. Me dijeron que no tenían vacantes inmediatas, pero que Richard Kay en Software Creations si tenía. Así que llamé a Richard y concerté una entrevista.

Richard Kay en 1992. Fuente: Amstrad Cent Pour Cent

 

Curiosamente, tu amigo Ben Jackson acabaría contigo en Software Creations y pudisteis trabajar de nuevo juntos. Así que no estuvo tan mal que Binary Design no tuviera un trabajo para ti ¿no?

En absoluto. Ben hizo los gráficos para VIS. Yo conocía a Andy y Ben de la escuela. El mundo parecía un pañuelo en Manchester; la mayoría de desarrolladores se conocían entre sí.

Por entonces, se hacía mucho trabajo en videojuegos tanto desde casa como en una oficina normal y corriente. Algunas empresas confiarían siempre en trabajadores externos y así nació la legenda del "chico prodigio programando en su dormitorio". Otras empresa querían tener un mayor control de sus productos y tenían oficinas donde la gente podría trabajar junta. ¿Cómo era el caso de Software Creations? ¿Qué tal era el clima de trabajo?

Era una empresa pequeña cuando yo empecé, quizás con una docena de desarrolladores como mucho. Era un gran lugar para trabajar, un primer trabajo de ensueño.

El equipo de Software Creations en 1992. Fuente: CPCRulez

 

Así que empiezas a trabajar en Software Creations pero allí te encontraste con que ya tenían a sus rockstars del ZX Spectrum (los hermanos Follin) y acabas trabajando con el Amstrad CPC. ¿Qué experiencia tenías con esta máquina?

Ufff. Nada de nada, y creo que eso es evidente en mi primer juego, LED Storm, que era terrible. Mike Webb me sugirió que toqueteara los registros del CRTC para hacer el scroll vertical. Ojalá le hubiera ignorado; era demasiado para un primer proyecto en esa máquina.

Uno podría pensar que si eres capaz de desarrollar con éxito para el ZX Spectrum, debería ser fácil adaptarse a otra máquina con Z80. Eso es una verdad a medias, ya que el Amstrad CPC tiene un sistema de memoria de vídeo diferente y ese diabólico chip CRTC que muchos desarrolladores no lograron conquistar. ¿Cómo aprendiste a programar específicamente para el Amstrad CPC?

Aparte del sistema de archivos y de pantalla, era más o menos como programar un Spectrum.

¿Qué te encantaba de la máquina? Por el contrario: ¿qué era lo que más odiabas de ella?

Tenía una limitada aunque efectiva paleta de colores y tuve suerte de trabajar con algunos artistas increíbles que eran capaces de sacar el mayor partido de ella (Ben Jackson, Simon Street). No pienso nada negativo sobre ella; todavía me gusta.

Simon Street en 2007. Fuente: Moby Games

 

Era bastante común en la industria que un desarrollador empezase su carrera en una máquina de Sinclair y más adelante se tuviera que adaptar al Amstrad CPC ya que muchas empresas querían versiones para ambas máquinas. Era también bastante normal que un desarrollador programase el Amstrad como si fuese un ZX Spectrum, produciendo juegos lentos. Tú, por el contrario, hiciste un buen uso del Amstrad CPC, empleando técnicas de programación que funcionan muy bien en el CPC pero que no sirven de nada en el Spectrum. Eso demuestra que hiciste un gran esfuerzo en producir buenos títulos aunque ello posiblemente te llevase más tiempo que simplemente hacer un portaco. ¿Qué te llevó a invertir este tiempo extra en hacer las cosas bien en el Amstrad en vez de ahorrar tiempo y hacer una conversión rápida?

Me contrataron para hacer las conversiones de CPC, poniéndome a trabajar junto a Mike Follin, quien haría las versiones de Spectrum. A Mike le pusieron a desarrollar para Game Boy tras Ghouls n Ghosts, así que tuve que decidir cómo haría Sly Spy. Acordé con Richard Kay que trabajaría en la versión de Amstrad en la oficina y haría la versión de Spectrum aparte en mi tiempo libre en casa para ganar un poco más de dinero, que me venía bien, ya que estaba ahorrando por entonces para mi primera casa. Yo no era para nada fan de los portacos de Spectrum en el Amstrad.

Aquí arranca una interesante carrera en el CPC

Por ejemplo, el primer juego de Amstrad CPC que tienes acreditado es LED Storm. ¿Fue realmente tu primer juego para Amstrad? Es difícil de creer que, siendo nuevo en la plataforma, fueras capaz de hacer buen uso de técnicas de programación que funcionan bien en el Amstrad en tu primer intento. LED Storm tiene una pantalla en overscan vertical, que demuestra que sabías usar el chip CRTC. Incluso usaste las capacidades de scroll vertical del CRTC, y una rutina de pintado muy decente con dos planos diferentes (fondo y sprites), que es muy rápida y eficiente. ¡Por entonces había gente con 5 años a sus espaldas en la plataforma que nunca fueron capaces de emplear dichas técnicas! ¿Qué recuerdas del desarrollo de este juego?

Oh, demonios. Estaba muy feliz con la rutina de sprites, pero no fui capaz de hacer el scroll correctamente. Estaba estresado hasta las trancas con el juego; era un proyecto que ya iba tarde cuando empecé. Ojalá hubiera tenido un par de semanas más. No es mi mejor trabajo :-(

¿Qué habrías hecho diferente ahora que sabes lo que sabes?

Ojalá hubiese ignorado la recomendación de Mike Webb de trastear con los registros del CRTC para intentar conseguir el scroll vertical suave. No había tiempo suficiente para ponerme al día con el hardware del Amstrad. No obstante, no sé exactamente cómo habría hecho el scroll. En mi cabeza sería algo más colorido como Sly Spy.

Nótese la pantalla en overscan vertical

 

Después trabajaste en Ghouls n Ghosts. Nuevamente encontramos una pantalla en overscan vertical, rutinas de impresión rápidas y eficientes, pero vas un paso más allá y usas las habilidades de scroll multidireccional del CRTC. ¿Qué nos puedes contar de este desarrollo?

Aprendí de mis errores. Era un proyecto enorme para convertirlo a los 8 bits. Creo que la versión de Mike para el Spectrum es también muy buena. Quedé mucho más contento con esta conversión, aunque siendo como soy un perfeccionista ¡no al 100%!

¿Tuvisteis ayuda por parte de Capcom en alguno de los dos juegos? ¿Tal vez enviaban gráficos o algún otro tipo de material sobre el que trabajar?

Que va, para nada. Obtuvimos una versión temprana del arcade prestada a través de US Gold y tuve que jugarla de arriba a abajo y memorizar el juego. Andrew Threlfall hizo cientos de fotografías con una cámara de 35mm para que los artistas pudieran usar como referencia. Sigue sonando como una locura, pero así era como realmente se hacían las conversiones arcade en esos tiempos.

Una evolución técnica impresionante

Tras esos dos juegos llegó Secret Agent. Nuevamente volvemos a ver un poco de evolución en tu trabajo, todavía en la dirección correcta. Si no estoy equivocado, este es el primer juego en el que hiciste las versiones de Spectrum y Amstrad a la vez. Usas en el Amstrad un tamaño de pantalla de ZX Spectrum, pero haces uso de las propiedades del CRTC para ajustar la pantalla a ese tamaño y ahorrar memoria. 

Te sorprenderías de la cantidad de veces que programadores usaron una pantalla de tamaño Spectrum en el Amstrad pero nunca usaron el CRTC, haciendo juegos de pantalla pequeña pero usando la misma memoria que si hubiera sido a pantalla tamaño CPC. De nuevo muestra un buen conocimiento de cómo se debía programar el Amstrad y tú hiciste el esfuerzo de hacerlo bien, incluso si ello te llevase más tiempo que una conversión rápida de código Z80 desde el Spectrum. Perdona si me repito mucho: ¿qué te llevó a emplear más tiempo en hacer las cosas bien en vez de hacer caja con una conversión rápida?


Me gustaba bastante el arcade y podía ver que funcionaría bien en el Amstrad. Es un juego con versiones totalmente separadas. No creo que haya mucho código compartido entre la de Amstrad y la de Spectrum.

Incluso usaste esa memoria que pudiste ahorrar en implementar un doble buffer hardware y cambiaste tus rutinas de impresión por otras mucho más coloridas. ¿Qué te llevó a tomar esta decisión?

¡Sabes más de esto que yo mismo! ¿Lo hice? Honestamente, no me acuerdo.

Comienza el declive de los 8 bits
 

Empezaste a trabajar en la industria en un momento en el que los ordenadores de 8 bits empezaban a decaer en cuota de mercado. Por desgracia te viste inmerso en tiempos turbulentos en los que el presupuesto para desarrollo iba mermando todo el tiempo. En medio de esto vino Gauntlet III, un juego del que no estarás sorprendido si te digo que es el peor juego de Amstrad de tu carrera. Ya que nos habías demostrado previamente lo que sabías hacer en esta máquina: ¿qué pasó aquí? Mi apuesta es que no te dieron suficiente tiempo y tuviste que hacer ambas versiones muy rápido.

Ah, hay historia detrás. US Gold se había hecho de alguna manera con los derechos de Gauntlet, y quería hacer una secuela. Yo estaba por la labor de hacer un juego multiscroll con vista cenital y cientos de sprites, como todo Gauntlet debería ser. Sin embargo, Bill Barna (nuestro desarrollador para Atari ST) quería hacer una versión en 3D basada en una rutina en la que había estado trasteando. Por supuesto US Gold se decidió por eso. Yo decidí hacer lo mejor que podía con los recursos que tenía en ese momento, lo que significaba portaco. Lo siento, gente :-(

¿Por qué usa 128K en el Amstrad? ¿Crees que con el debido tiempo habrías podrido hacer un juego de 64K en condiciones con los estándares de calidad que tenías en tus trabajos anteriores?

US Gold insistió en ello. No creo que estuviera particularmente interesados en las conversiones de 8 bits en ese momento.

¿Era necesario un Guantlet isométrico?

Si no estoy equivocado, Gauntlet III es el primer juego profesional que programaste que no era una conversión directa de un arcade. ¿Pudiste influir en su diseño? ¿Pudiste aportar tus propias ideas para el juego?

En efecto, lo es. Pude influir algo, aunque se sentía más bien como si estuviera convirtiendo la versión de 16 bits al Spectrum y al Amstrad.

¿Qué máquina objetivo tenía el equipo en mente como máquina principal? ¿Puede ser que el juego estuviera diseñado con una máquina objetivo de 16 bits y fuera demasiado difícil meterlo en 8 bits?

Sí, tal cual, aunque en su defensa debo decir que la rutina de Bill Barna mencionada anteriormente se pudo portar muy bien a los 8 bits.

También trabajaste en Solar Invasion para la Magnum Light Phaser —periférico para algunos ordenadores de 8 bit diseñado por Amstrad— tanto en CPC como en Spectrum. ¿Participaste también en Robot Attack? ¿Había a estas alturas otros programadores de CPC trabajando también en Software Creations?

Nos dijeron que hiciéramos un puñado de minijuegos para ser incluidos en los packs de inicio. Creo que estábamos en el proyecto yo, Mike Follin, Peter Gough y Steve Tatlock. Hice el driver inicial para la pistola y nos fuimos todos a hacer y diseñar algunos juegos sencillos. Creo que yo hice dos —Solar Invasion y Things on String—. Al final solo incluyeron Solar Invasion. Mike hizo Robot Attack.

Solar Invasion para la Magnum Light Phaser

 

¿Cómo fue adaptarse a este nuevo accesorio? ¿Te llevó mucho tiempo?

Lo único que hice al principio fue investigar y escribir una rutina en Z80 para leer la posición Y de la pistola en pantalla, con una sugerencia de cómo obtener la posición X. Al final la rutina funcionaba tal que así, al menos en nuestros juegos:

  • Cuando el gatillo está pulsado, parpadea la pantalla en blanco.
  • En vblank un contador mide el tiempo que tarda la coordenada Y hasta que el sensor de luz detecta blanco.
  • Oscurecer la pantalla.
  • Parpadear en blanco cualquier sprite que haya alrededor de esa coordenada Y.
  • Si el sensor de luz detecta blanco, entonces ese sprite ha sido alcanzado por el disparo.

No hicimos ninguna de las otras conversiones como Operation Wolf, y hasta donde yo sé, mi driver no fue usado en esos juegos. Aun así, sospecho que usarían una aproximación similar. Creo que tuvimos todo el proyecto completo hecho en un mes, desde las primeras investigaciones usando un lápiz óptico para Spectrum hasta que los juegos estuvieron listos para ser publicados. Fue muy divertido y estaba muy feliz con Solar Invasion.

Te promocionaron a consolas tras Gauntlet III ¿cierto? ¿Es ese el motivo por el cual Software Creations ni siquiera intentó convertir Solar Jetman al CPC —¿tal vez no quedaban más programadores para CPC?— aunque sí llegó a ser convertido para Spectrum y C64?

Sí, ya había sido trasferido a Game Boy. No se cual es el motivo de que no se llegase a convertir al CPC.

Fruto de su trabajo en Game Boy: The Incredible Crash Dummies

 

¿Cuál era tu equipo de desarrollo en Software Creations?

Los equipos de desarrollo eran muy superiores a lo que yo estaba acostumbrado. En vez de escribir código en la máquina objetivo, teníamos una máquina fuente separada (un Tatung Einstein). Ahí editábamos y ensamblábamos el código y el binario resultante era enviado a la máquina objetivo a través de un cable serie o paralelo. De hecho, mi primera tarea en [Software] Creations fue crear un adaptador de puerto paralelo para el Amstrad basado en el que estaban usando para el Spectrum +3. Mike Webb me preguntó si yo era bueno con el soldador y me dejó uno y una caja de componentes en mi mesa.

¿Solías cooperar con los otros desarrolladores y compartir trucos de programación que pudieran ser útiles independientemente de la máquina donde fueran usados?

Todo el rato, aunque eran mayormente bromas entre Mike Follin y yo, los dos expertos de 8 bits de la casa.

¿Qué aprendiste en este tiempo que te haya servido a lo largo de tu carrera? ¿Encontraste algún truco de programación tan útil que pudiste seguir usandolo más tarde en máquinas mucho más potentes?

Creo que refiné mis rutinas básicas, las que manejan los sprites. Esto lo usé una y otra vez.

Divertido juego multijugador

 

Estabas acostumbrado a programar para máquinas con recursos muy limitados en lo que se refiere a RAM y potencia de procesador. Eso significaba que tenías que ahorrar cada byte y cada ciclo de proceso para hacer grandes juegos. ¿Dirías que esta lucha constante contra la falta de recursos te ayudó más tarde cuando trabajaste en consolas? ¿Dirías que habiendo tenido que optimizar todo y aconstumbrándote a ello te dio una ventaja comparado a las nuevas generaciones de programadores que empezaron directamente en consolas?

Sí. La primera consola para la que trabajé fue la Game Boy. La primera consola potente fue la PlayStation. Todavía tengo el código fuente de ese juego de PlayStation. Es remarcablemente compacto considerándolo.

Si se me permite la pregunta: ¿podía uno ganarse la vida decentemente trabajando en juegos de 8 bits? Todos hemos oído historias de Porsches y fiestas y mansiones pero cuando hablamos con desarrolladores veteranos, la mayoría recuerdan algo diferente; sí, una vida por encima de la media pero nada espectacular.

*Risas* No. Empecé en [Software] Creations en 1988 con un salario de entrada de 5200 libras. Este subió a 8000 libras tras mi periodo de prueba. No era mucho, pero era suficiente para poner comida en la mesa y pagar el alquiler. Al final de mi etapa en [Software] Creations, alrededor de 1993, había subido a 18000 libras. Esto era en parte debido a la competencia de otras empresas. Unos cuantos se habían ido quejándose de los salarios. Entonces dejé la empresa (junto a Mark Wilson y los hermanos Follin) para ir a Malibu Interactive con un salario de entrada de (creo) 22000 libras.

Sly Spy en acción

 
¿Pudiste acabar todos tus juegos de Amstrad? ¿O te queda algún trabajo sin acabar que nunca viera la luz del día?

Sí, acabé todos. No tengo juegos de CPC ocultos, lo siento.

¿Conservas todavía discos, código o máquinas de entonces? ¡Serían muy útiles para la gente que quiera ver como se debe programar un juego de Amstrad en condiciones!

Por desgracia no, aunque me han dado una caja con los discos de Tim Follin con un montón de su música y de la de Geoff, algunos para el Z80/AY. Se pueden encontrar en mi GitHub.

https://github.com/breakintoprogram/archive-follin

¿Tiene el CPC un lugar en tu corazón? ¿Dirías que haber trabajado para él te ayudó a construir tu carrera?

Sí, era una máquina encantadora en la que trabajar. No tenía sprites, y solo un scroll rudimentario, pero aun así era una máquina más agradecida de trabajar que el Spectrum.

En toda su gloria CRT

 
¿Oyes la llamada del ensamblador? ¿Volveremos a ver una gran producción de Dean Belfield en el Amstrad CPC en el futuro?

Bueno, nunca digas nunca jamás. He estado haciendo algo de código retro en los últimos años, escribiendo (de memoria y mis notas) rutinas de Spectrum y poniéndolas en mi GitHub. También he estado involucrado en convertir el BASIC del BBC al Z80 de varias máquinas, incluidas el Spectrum next y el Agon.

https://github.com/breakintoprogram/

Así que quien sabe. Podría estar tentado en algún momento de revisar esa rutina de scroll del LED Storm. Programar y testear es mucho más fácil hoy día que en aquellos tiempos, como esos emuladores con debuggers paso a paso.

Déjame nuevamente darte las gracias por tu tiempo y tu amabilidad. ¿Hay algo que te gustaría añadir para nuestros lectores?

¡Gracias por leer y por mantener vivo el CPC!

[english version]

First of all let me thank you for your kindness in accepting this interview. We are thrilled to know a little bit more about the man behind some of the most interesting Amstrad Games done near the end of the commercial era. Let me start from the beginning: When did your interest in technology start?

I started tinkering with electronics from about the age of 9, learning how to assemble rudimentary circuits on stripboard from magazines like Hobby Electronics. And of course, being born in the late ‘60s, by the time I was old enough, there were simple electronic games in the shops, like the Binatone/Grandstand TV Ping/Pong games and Grandstand Astro Wars.

Then my best friend got a ZX81 for his birthday…

The begining of a new industry. Fuente: Barnoid

Which were the first machines that entered your life?

Well, that’d be the ZX81. I got hooked playing on my friends, and asked my parents for one. I finally got one for Christmas 1981. It was a big expense for my family, we were not terribly well off at the time (I still own that ZX81 today).

Game developers are usually heavily influenced at the beginning of their careers by the games they used to play at a young age. Which ones were your favorites?

In the arcades it’d be Scramble, Galaxians, Star Wars. On the ZX81 it’s Mazogs every time.

Playing games is always nice and for most of us was already enough. What moved you to say “hey, i want to make games as well!”?

I was fortunate to be born at the right time, with home computers of all shapes and sizes being brought out monthly, and with magazines and books widely available with tutorials and examples on how to program in BASIC and assembly language. I dabbled for a long while, then another friend of mine at school (Andrew Miah) and I started challenging each other to write routines in assembly language. At the end of it, he’d got a job at Binary Design in Manchester and I’d written a (non-published) game on the Spectrum called VIS. It was a vertical scrolling shoot-em-up.

A classic book very well known

 

One thing is to think “I also want to make games!” and another thing being able to do it. Of course, back then we didn't have Stack Overflow or Google :-) What resources did you have at your service to learn how to code? Which ones were your favorites?

Ah, in addition to the aforementioned magazines, the books I learned most from were Mastering Machine Code on your ZX80/ZX81 by Toni Baker, The Complete Spectrum ROM Disassembly by Dr Ian Logan and Dr Frank O’Hara (Melbourne House), and The Z80 Reference Guide by Alan Tully (also by Melbourne House)

At some point you find yourself confident enough with your code to try to find a publisher. How was that moment when you realize that you are already good enough to try that? What moment was the catharsis?

So I’d written a game on the Spectrum called VIS, and a handful of other demos including filled-in vector graphics. I’d finished college and decided that I wanted a job in the games industry, and my portfolio was probably good enough.

Ported to ZX Spectrum by Simon Brattel

What was your coding setup at this very beginning of your career? (Hardware, software)

At home it was a Spectrum 48K with an Interface 1 and two Microdrives. I used the Zeus assembler to write the source. As I was developing on the target machine, the workflow was:

  • Load the Zeus assembler into memory
  • Then the source code.
  • Make changes / bug fixes
  • Save out the source code.
  • Assemble
  • Save out the binary file
  • Load in the graphics and test (this would overwrite the assembler and source code)
  • Rinse lather and repeat.

What can you tell us about your first videogames? If I am not mistaken, the very first one was never published?

VIS (on the Spectrum) was a vertical top-down scrolling shoot-em-up, pretty much in the style of 1942, etc, but in space. It had quite a good scroll routine that used the stack to shift data quickly to screen. Not chasing the raster like LED Storm or Cobra, but still pretty quick.

How did you end up in Software Creations?

I wrote to all the games studios in Manchester at the time (Ocean, Binary Design, Tiertex, Zippo, etc) trying to sell my game, with little luck. I got an interview at Binary Design, mostly because I knew Andy Miah. They said that they didn’t have any immediate vacancies, but Richard Kay at Software Creations had. So I rang Richard and arranged for an interview.

Richard Kay in 1992. Source: Amstrad Cent Pour Cent

Funny enough, your friend Ben Jackson would end up with you at Software Creations and you were able to work again together. So it wasn't that bad that Binary Design didn´t have a job for you, was it?

No not at all. Ben did the graphics for VIS, and I knew Ben and Andy from school. It seemed like quite a small place Manchester; most of the developers knew each other.

Back in the day, a lot of work done in videogames was done from Home as well as a regular office. Some companies would always rely on freelance work and the legend of the “wizkid bedroom coder” was born. Other companies wanted a more tight control of their products and had regular offices where people could work together. How was the case of Software Creations? How was the working atmosphere?

It was a small company when I started, maybe a dozen developers at most. It was a great place to work, a dream first job.

The Software Creations team in 1992. Source: CPCRulez

So you started working for Software Creations but you found there that they already had their ZX Spectrum rockstars (The Follin brothers) and you ended up working for the Amstrad CPC. What experience did you have with this machine?

Eeek. Non at all, and I think that was probably evident with my first game, LED Storm, which was terrible. Mike Webb suggested I mess around with the CRTC registers to do the vertical scroll. I wish I’d ignored him; too much to take on for the first project on the machine.

One could think that, being able to develop successfully for the ZX Spectrum, should make it easy to adapt to another Z80 machine. That´s a half true, since the Amstrad CPC had a different video memory and that diabolical CRTC chip that many developers failed to conquer. How did you learn to program specifically for the Amstrad CPC?

Apart from the file system and the screen layout, it was more or less the same as developing on the Spectrum.

What did you love about that machine? On the contrary: what did you hate the most?

It had a limited yet effective palette, and I was lucky to work with some incredible artists who could squeeze the most out of it (Ben Jackson, Simon Street). I don’t have any negative thoughts about the machine, still very fond of it.

Simon Street in 2007. Source: Moby Games

It was quite common in the industry that a developer would start his/her career with a Sinclair machine and later had to adapt to the Amstrad CPC because many companies demanded versions for both machines. It was as well quite usual that a developer would program the Amstrad like if it was a ZX Spectrum, resulting in sluggish games. You, on the contrary, do a very good use of the Amstrad CPC, using programming techniques that work very well on the CPC but are unusable on the Spectrum. That shows that you really made a good effort to produce good products even if it probably took you more time than just coding like it as a Spectrum. What moved you to invest this extra time in doing the things well on the CPC instead of just saving time and doing a quick conversion of the code?

I was taken on to just do the CPC conversions, pairing up with Mike Follin who would do the Spectrum version. Mike was moved onto Gameboy development after Ghouls n Ghosts, so I had to make the decision on how I’d do Sly Spy. I agreed with Richard Kay that I’d work on the Amstrad one at work, and do the Spectrum one as a separate conversion in my spare time at home, to earn a bit more money, which suited me, as I was saving up for my first house at the time. I wasn’t a huge fan of Spectrum to Amstrad ‘lazy conversions’.

Here starts an interesting career

For example: the very first Amstrad CPC credited to you is Led Storm. Was it really your very first Amstrad game? It's hard to believe that, being new to this platform, you were able to make such a good use of programming techniques that worked well on the Amstrad CPC in your very first effort. Led Storm has a vertical overscan screen, which shows you were already able to dominate the CRTC chip. You even use the vertical hardware scrolling abilities of the CRTC, and use some very decent printing routines with two different planes (background and sprites) which are very quick and efficient. At that time, there were people working for 5 years already on the platform that never were able to use such techniques! What do you remember about developing this one?

Oh heck. I was quite happy with the sprite routine, yet could not get the scroll right. I was stressed up to the eyeballs with that, it was a project that was running late when I started on it. I wish I’d had an extra couple of weeks on it. Not my finest hour :-(

What would you have done different in that project now that you know what you know?

In retrospect, I wish I'd ignored Mike Webb's advice to hack the CRTC registers to attempt smooth vertical scrolling. There was not enough time to get up to speed on the Amstrad hardware. I don't know exactly how I'd have approached the scrolling though. In my mind it'd be more colourful like Sly Spy.

Vertical overscan screen in Ghouls N Ghosts

After that you work on Ghouls n Ghost. Again we find here a vertical overscan screen, quick and efficient printing routines but you even go a little bit further and use the multidirectional hardware scroll abilities of the CRTC. What can you tell us about this develop?

I learned from my lessons - it was a huge project to convert to the 8-bits. I think Mike’s version was very good too on the Spectrum. I was much happier with this conversion, yet being a perfectionist, not 100% happy!

Did you have any help from Capcom in any of the two games? Did they maybe send graphics or any other kind of materials to start working from?

Ah no, not really. We got an early release of the arcade board in on loan via US Gold, and had to play it all the way through and memorise the gameplay. Andrew Threlfall took hundreds of photographs on a 35mm film camera for the artists to reference. It still sounds mad, but that was how arcade conversions were done at the time.

An impressive technical evolution

After those two games came Secret Agent. Again we see a bit of evolution in your work still in the right direction. If I am not mistaken, this is the first game that produced both Spectrum and Amstrad versions?. You use on the Amstrad a ZX Spectrum screen size, but you used the CRTC abilities to make the screen that size and save on memory. You would be surprised about how many times a developer used a ZX Spectrum screen size on the Amstrad CPC but never used the CRTC, producing smaller games that actually took the same memory as if they really used the full screen :) Again, it shows a good knowledge of how the Amstrad should be programmed and you made the effort to do it well, even if that probably took more time than a lazy quick porting of ZX Spectrum Z80 machine code. Sorry if i repeat myself: what moved you to invest more time to do the things right instead of just quick cashing on a quick conversion?

I quite liked the arcade game and could see it working quite well on the Amstrad. It was a completely separate game. I don’t think there is much code shared between it and the Spectrum version.

You even used that memory you saved to implement a hardware double buffer the proper Amstrad way and changed your printing routines to another one a lot more colorful. What was the reason behind this decision?

Oh, you know more about this than me! Did I? I honestly can’t remember.

The decline of the 8 bit market had already started

You started working in the industry at a point when the 8 bit Computers started to already shrink in market share. Unfortunately you found yourself in some turbulent times with the budget for developing shrinking all the time. Right in the middle of this came Gauntlet III, a game that you are not probably surprised if I say it´s the worst Amstrad game in your career. Since you already showed before what you were able to do in this machine: what happened here? My guess is that they gave you not enough time and you had to produce both Spectrum and Amstrad versions too quickly?

Ah, there is a story behind that. US Gold had somehow acquired the rights for a Gauntlet game, and wanted to do a sequel. I was all up for just doing a competent top scroller with hundreds of sprites, as Gauntlet should be. However, Bill Barna (who was our ST developer) wanted to do a 3D version based upon a routine he’d been messing around with. Of course US Gold went for that. I decided to do the best I could with the resources I had at the time, which was a lazy conversion. Sorry folks :-(

Why use 128K on the Amstrad? Do you think that, with proper time, you would have been able to make a proper 64K game with the quality standards that you had in your previous works?

US Gold insisted upon it. I don’t think they were particularly interested in the 8-bit conversions at that time.

Was it really necesary a issometric Gauntlet?

If I am not mistaken, Gauntlet III is the first professional game you coded that was not a direct conversion of an arcade machine. Did you have a say in the design of the game? Were you able to put your own ideas on the game?

That’s right, it was. I had some input, though it felt very much like I was porting the 16-bit versions to the Spectrum and Amstrad.

What machine had in mind the team that worked on this game as the “original” one? Could it be the case that the game was designed with a 16bit machine as goal and was too difficult to put everything together on a 8 bit one?

Yes pretty much so, though to his credit, Bill Barna’s aforementioned routine did port quite well to the 8-bits.

You also worked in Solar Invasion for the Magnum Light Phaser for both Amstrad and Spectrum. Were you also involved in Robot Attack? Were at this point any other CPC programers working as well at Software Creations?

We were told to write a handful of mini games for the starter packs. I think there was me, Mike Follin, Peter Gough and Steve Tatlock involved. I wrote the initial driver for the gun and we all went away and designed / wrote some simple games. I think I wrote two - Solar Invasion and Things on Strings. Only Solar Invasion got included. Mike wrote Robot Attack,

Solar Invasion for the Magnum Light Phaser
 
How was adapting to program for this gadget? Did it take much time to adapt to it?
 
The only involvement I had was the initial investigation and writing of a Z80 routine to read the gun's Y position on screen, with a suggestion on how to get the X position. In the end the routine worked like this, at least for our games.
  • When the trigger is pressed, flash the screen white
  • Software time a Y position counter on vblank until the light sensor detects white
  • Darken the screen
  • Flash any sprite that is on or around that Y position white
  • If the light sensor detects white, then that sprite is the one that's been shot
We were not involved with other existing game ports, like Operation Wolf, and to the best of my knowledge, my driver wasn't used. Though I suspect they'll have used a similar approach.
I think we had the whole lightgun project done within a month, from initial R&D (using a Spectrum light pen) to games ready for publish. It was a lot of fun, and I was quite happy with Solar Invasion.
 
After Gauntlet III you were promoted to consoles, right? Is that the reason why Software Creations didn´t even try to convert Solar Jetman to the CPC (Because there was no other CPC specialist in the company maybe?) altough they did the Spectrum and C64 ports?

Yes I'd been moved to Gameboy. I don't know the reason why there is no CPC port of it.

Work for the Game Boy: The Incredible Crash Dummies

What was your coding setup in Software Creations?

The development systems however were well ahead of what I was used to. Instead of writing code on the target machine, there was a separate source machine (a Tatung Einstein). Code was edited and assembled on that, and the resultant binary file was squirted down to the target machine over a serial or parallel cable. In fact, my first task at Creations was to create a parallel port adaptor for the Amstrad based upon the one they were using on the Spectrum +3. Mike Webb asked me whether I was good with a soldering iron, and left me with one and a bag of components on my desk.

Did you use to cooperate with other developers there and share programing tips that could be useful regardless of the platform where they were used?

All the time, though it was mostly banter between me and Mike Follin, the resident 8-bit experts.

What did you learn at this time that helped along your career? Did you find any programming tricks so useful that you were able to use it later in more powerful machines?

I think I refined my core routines, the ones that handle sprite objects. This has been used over and over again.

A funny multiplayer game

You were used to programming for machines with very limited resources regarding RAM and Processor Power. That meant you had to save every single byte and processing cycle to produce great games. Would you say that this constant fight against the lack of power helped you later when you worked on consoles? Would you say that having to optimize everything and getting used to that gave you an advantage compared to the new generation of programmers that started working directly on consoles?

Yes. The first console I worked on was the Gameboy. The first power console I worked on was the Playstation. I still have the source code for that Playstation game - it is remarkably compact considering.

If I may ask: could one make a decent living working on 8 bit games? We all heard stories of Porsches and parties and big houses but when you talk to veteran developers most of them remember something different: yes, an above average living but nothing spectacular.

Hahaha! No. I started off at Creations in 1988 on a starting salary of £5,200. This went up to £8,000 after my probation. It wasn’t a lot, but was enough to put food on the table and pay the rent. At the end of my time at Creations, around 1993, it had gone up to around £18,000. This was partly down to competition from other companies - a few folk had left after complaining about the wages. I then left (with Mark Wilson and Tim, Geoff, Mike Follin) to go to Malibu Interactive on a starting salary of (I think) £22,000.

Sly Spy in action

Were you able to finish all your Amstrad CPCs games? Or do you have any unfinished works that never saw the light of day?

Yes, they were all finished. No hidden CPC games, sorry.

Do you still keep code-discs-machines from then? They would be really helpful for people who wanted to see how a proper Amstrad game should be programmed!

Unfortunately not. Though I have been given a box of disks by Tim Follin with a load of his and Geoff’s music files on, some of them for the Z80/AY. They can be found on my GitHub.

https://github.com/breakintoprogram/archive-follin

Does the CPC have a place in your heart? Would you say that working on the CPC helped you build your career?

Yes, it’s a lovely machine to work on. It didn’t have sprites, and only rudimentary scrolling, yet was a much richer machine to work on than the Spectrum.

In all its CRT glory

Do you hear the call of the assembler? Would we see again a great Dean Belfield production on the Amstrad CPC in the future?

Well, never say never. I have been doing some retro coding over the last few years, writing (from my memory and notes) Spectrum routines and putting them on my GitHub. I’ve also been involved porting BBC BASIC for Z80 to various machines, including the Spectrum Next and the Agon.

https://github.com/breakintoprogram/

So who knows - I might be tempted at some point to revisit that LED Storm scroll routine. Coding and testing is so much easier these days than back in the day, what with emulators with single-step debugging.

Again let me thank you for your time and your kindness with us. Is there anything that you would like to add for our readers?

Thank you for reading, and keeping the CPC alive!

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.