Con Boriel Basic y este libro, ya no hay escusas para no desarrollar juegos para ZX Spectrum y Next.
Corren buenos tiempos
Parece que corren buenos tiempos en la escena del Spectrum a nivel nacional en cuanto a producción de libros técnicos se refiere. Este año se han publicado dos libros de programación para nuestra calculadora más querida (no se me enfaden, mi alma es spectrumera): el primero de ellos nos invita a desarrollar un juego en ensamblador para ZX Spectrum y ha sido escrito por nuestro compañero Juan Antonio Rubio García (yo mismo, queda raro hablar de uno mismo en tercera persona), y el que acaba de salir, que nos enseña a programar con Boriel Basic, un Basic compilado obra de José Rodríguez «Boriel». En este último también he colaborado mínimamente, escribiendo un prólogo y revisando el texto en busca de posibles errores (espero que no se hayan escapado muchos).
Boriel Basic
¿Qué es Boriel Basic?
Boriel Basic no es algo nuevo, José Rodríguez lleva mucho tiempo trabajando en ello.
Aunque está basado, como no puede ser de otra manera, en el Basic de Sinclair, en la práctica no es lo mismo, Boriel Basic no es solo un compilador de Basic, es todo un lenguaje; José Rodríguez ha reescrito muchos de los tokens del Basic de Sinclair como PRINT, para que sean más óptimos y rápidos, lo cual es transparente para el programador ya que seguirá usando PRINT tal y como lo haría con el Basic de Sinclair.
El compilador de Boriel convierte a código ensamblador el código fuente Boriel Basic, contenido en un archivo de texto plano, y lo ensambla convirtiéndolo en código máquina; el resultado en cuanto al rendimiento de los programas es asombroso.
Boriel Basic posee múltiples librerías para manejo de sprites, scroll, desarrollar para ZX Spectrum Next, etc.
Para terminar esta pequeña introducción a Boriel, señalar que en algunos foros se ha abierto la posibilidad de que Boriel Basic sea adaptado para generar código para otras máquinas, como nuestro amado Amstrad CPC o MSX, por nombrar las que comparten microprocesador, aunque haría falta la ayuda de personas que controlen estos sistemas.
Multiplataforma
Técnicamente, Boriel Basic ya es multiplataforma, se puede programar para ZX Spectrum clásico o para ZX Spectrum Next. Yo he estado haciendo pruebas y los resultados son excelentes, es como si realmente los programas se hubieran desarrollado en ensamblador, y lo más importante, por un buen desarrollador.
Sería realmente alucinante que se llevara a otras plataformas como Amstrad CPC, Amstrad Plus, MSX, MSX2, etc., pero que esto no sirviera para volver a la técnica del port directo, por favor, no volvamos otra vez ahí.
Boriel Basic para ZX Spectrum. Manual para torpes… y para los que no lo son tanto
Hemos llegado al motivo de este artículo, la publicación del libro «Boriel Basic para ZX Spectrum. Manual para torpes… y para los que no lo son tanto», escrito por Juan Segura Duran (Duefectu), y que tiene como objetivo enseñarnos a desarrollar con Boriel Basic tanto para ZX Spectrum (todos los modelos), como para ZX Spectrum Next.
Y cuando digo que también podréis aprender a desarrollar para ZX Spectrum Next, no es hablar por hablar, Duefectu ya tiene publicado algún juego para el sistema.
Boriel Basic
¿Qué encontraréis en este libro?
La mejor y más sencilla manera de ilustrar el contenido de un libro es viendo su índice, así que vamos allá.
- 0. Prólogos
- Juan Antonio Rubio García
- José Rodríguez «Boriel»
- Javier Ortiz Carrasco – El Spectrumero
- Juan Segura Duran – Duefectu
- Como empecé en esto del Spectrum
- ¿Por qué Boriel Sinclair Basic?
- 1. Introducción
- Agradecimientos
- Objetivos del libro
- ¿A quién va dirigido este libro?
- Conceptos asumidos
- 2. Calentando motores
- El tractor para arar, el Twingo para la ciudad y el Ferrarri para la autopista
- El compilador
- El IDE
- Bloc de notas, Notepad++ y similares
- ZX Basic Studio
- Visual Studio Code
- El emulador
- Gráficos
- ZX Paintbrush
- ZX Graphics
- ResourceDesigner
- Remy Sharp
- Sonido
- Beepola
- BeepFX
- Vortex Tracker
- WYZTracker
- AYFX
- Otras herramientas
- 3. El compilador Boriel Basic
- Compilando nuestro primer programa
- Parámetros de la línea de comandos
- Ejemplos de compilación
- ¿En que dirección compilar?
- Ajustando el HEAP para reducir memoria
- Optimizando nuestro código
- El mapa de memoria
- Generando el ensamblador
- 4. Variables y tipos
- Los nombres de las variables
- Tipos de variables
- Variables numéricas
- Los límites
- Operaciones entre tipos de datos diferentes
- Variables de texto (alfanuméricas)
- Matrices
- Trabajando con matrices
- Matrices bidimensionales
- Matrices tridimensionales
- 5. El lenguaje Boriel Basic
- Números de línea vs etiquetas
- Condiciones (IF… END IF)
- Condiciones
- Condiciones avanzadas
- Optimizando condiciones
- Bucles e iteraciones
- Bucle con GOTO
- FOR… NEXT
- WHILE… WEND
- DO… LOOP
- Saliendo de los bucles de manera forzada
- Excepciones durante la iteración
- Subrutinas y Funciones
- Subrutinas (SUB)
- Funciones (FUNCTION)
- Variables locales y ámbitos
- Librerías
- Directivas del compilador
- #INCLUDE {fichero}
- #DEFINE {nombre} [{valor}]
- #IFDEF… #ELSE… #ENDIF
- #PRAGMA
- Ensamblador
- Utilizando parámetros
- Compartiendo variables
- 6. La memoria
- ZX Spectrum 16K, 48K y +
- ROM
- RAM
- Memoria contenida
- ZX Spectrum 128K, +2 y +3
- ROM
- RAM
- Conmutando que es gerundio
- Simple radical
- El mundo real
- ZX Spectrum Next / N-GO
- 7. La pantalla en el ZX Spectrum
- ZX Spectrum «clásico»
- Borde
- Pixels
- Atributos
- Color clash
- GDUs / UDGs
- GUDs con ZX Basic Studio y ZXGraphics
- Fuentes
- ASCII
- Fuentes con ZX Basic Studio y ZXGraphics
- Múltiples bancos y mucha imaginación
- Sprites
- PutChars
- ¡Moviendo el esqueleto!
- Tiles y mapas
- Detección de colisiones con el mapeado
- Sprites con máscara
- Scroll al píxel
- Scroll al carácter
- Doble buffer
- Pantallas comprimidas
- Todo junto en la olla
- 8. La pantalla en el Next/N-GO
- Layer 2
- Sprites
- Atributo 2 del sprite
- Atributo 4 del sprite
- Tiles y mapas
- Scroll
- Overlay
- 9. Colisiones
- Colisión por límites de área
- Colisiones por atributo
- Colisiones por mapa
- Colisiones (y movimiento) al píxel
- Sprites
- Fuente personalizada
- El código
- Detección de colisiones
- 10. Controlando el Spectrum
- El teclado
- Detección de múltiples teclas pulsadas
- Redefinir teclas
- El joystick
- Interface o norma
- Atari
- Sinclair
- Protocolos
- Selección de protocolo en Next
- Kempston
- Sinclair
- Cursor joystick
- El ratón
- Recursos gráficos
- El código
- 11. Las interrupciones
- IM 2
- Un horizonte de interrupciones
- 12. El Beeper
- Codificando el sonido
- Tono
- Duración
- Convirtiendo una partitura
- Efectos de sonido simples
- Efectos de sonido con BeepFX
- Compilando los efectos
- Reproduciendo efectos desde Boriel
- Música con Beepola
- Motores soportados por Beepola
- Estructura de una canción
- Componiendo
- Compilando la canción
- Ejemplo prácticos con Beepola
- Un reproductor estándar de Beepola
- Aislando el motor
- Añadiendo una canción
- Añadiendo más canciones
- Consumiendo la librería
- 13. El chip AY-3-8912
- El chip AY-3-8912 por dentro
- ¡Un piano!
- Música con Vortex Tracker II
- Usando Vortex Tracker
- Exportando a Boriel Basic
- Efectos de sonido con AYFX
- Funcionamiento de AYFX
- Efectos de sonido en Boriel Basic
- 14. Arquitectura
- Consejos de un perro viejo y apaleado
- Diagrama de un juego típico
- El mapa de memoria de nuestro juego
- Un juego típico de 48K
- Aprovechando el 128K (paginación de memoria)
- Siendo creativos
- Módulo de control (Control.bas)
- Variables comunes (Vars.bas)
- Módulo de menú (Menu.bas)
- Módulo de juego (Juego.bas)
- Módulo de minijuegos (Minijuego.bas)
- Módulo Game Over (GameOver.bas)
- Compilando todo esto
- Multicarga
- ZX Spectrum Next (carga dinámica desde disco)
- 15. Creando el producto final
- Cinta de casete
- Cargador Basic
- La pantalla de carga
- Nuestro programa
- Cargas adicionales
- Creando el fichero Master.tap
- Editando nuestro .tap
- Creando nuestro disco para +3
- Tarjeta SD para Next/N-GO
- Distribución
- Anexo A: librerías incluidas con Boriel Basic
- Anexo B: directivas predefinidas
- Anexo C: códigos de las teclas
- Anexo D: decimal, binario y hexadecimal
- Conversiones entre sistemas
- Binario a decimal
- Decimal a binario
- Hexadecimal a decimal y binario
- Decimal a hexadecimal
- Anexo E: operaciones binarias
- Puertas lógicas
- NOT
- AND
- OR
- XOR
- Aplicación práctica
- Desplazamientos bit a bit
- Bibliografía y atribuciones
- Recursos
- Boriel Basic
- IDEs
- ZX Basic Studio
- Visual Studio Code
- KliveIDE
- Emuladores
- ZXSpin
- ZEsarUX
- CSpect
- Retro Virtual Machine
- Sonido
- Gráficos
- Utilidades varias
- Remy Sharp
- TAPonDSK
- Tapir
- ZX0
Largo verdad, menudo pedazo de índice. No en vano el libro tiene 692 páginas y, según el propio autor, se ha quedado material fuera, así que es posible que tengamos un segundo volumen.
Con este índice os podéis hacer una idea de todo lo que contiene este libro, que es mucho, y seguro que de aquí salen muchos juegos para Spectrum.
¿Dónde comprar el libro?
El libro se ha autopublicado a través de Amazon y está disponible en tres ediciones:
- Tapa blanda: 692 páginas, con unas dimensiones de 15.24 x 3.96 x 22.86 cm (aproximadamente A5) y un precio de 22,99€.
- Tapa dura: 549 páginas, con una dimensiones de 17.78 x 3.63 x 25.4 cm (aproximadamente A4) y un precio de 44,99€.
- Kindle: 766 páginas, con un tamaño de 31 MB y un precio de 9,09€.
Aunque el número de páginas es distinto, el contenido de las tres ediciones es el mismo, el número de páginas cambia debido al tamaño de las mismas.
Los precios son de Amazon España, en el resto de Amazon pueden variar dependiendo de los impuestos aplicados. El tapa blanda está en casi todos los Amazon, el tapa dura no y en México, India y Brasil solo está en Kindle (cosas de Amazon).
En el siguiente enlace puedes leer una muestra del libro, como el prólogo de un servidor.
Conclusión
Puedo hablar del libro en primera persona, ya que me lo he leído entero antes de que se publicara, y os puedo decir que es bastante asequible si lo que quieres es aprender a programar juegos para ZX Spectrum o Next. En muy poco tiempo podrás ver avances y como tus ideas van tomando forma.
Yo, como sabéis, soy más de ensamblador. Cuando estuve revisando el libro, estuve haciendo pruebas de las misma cosas desarrolladas en Boriel Basic y en ensamblador, y me sorprendió muy gratamente Boriel Basic, hasta el punto de hacerme dudar si cambiar de lenguaje, aunque la cabra siempre tira para el monte.
Otra cosa que puedes hacer en Boriel Basic es incrustar código ensamblador, de igual modo que se hace en C, así que todo son ventajas.
La optimización es muy buena, y pese a incluir librerías en tu código, solo compila aquellas rutinas que se usan, con el ahorro tan necesario que eso supone en estas máquinas.
Si te interesa aprender a programar para Spectrum, poder hacer un juego con scroll y pasártelo en grande, no lo dudes, este es tu libro, tu autorregalo perfecto para estas fechas.
Galería de imágenes
Aquellas entrañables máquinas, que llenaron nuestras tardes de mundos mágicos a recorrer e historias que vivir, también sirvieron como puerta de entrada a pioneros que acabaron revolucionando sus respectivos campos. Hoy os traemos una entrevista con el hombre que revolucionó el entrenamiento de los controladores aéreos tras iniciarse en la informática de la mano de un ZX81. Señoras y señores: don Mike Male.
[English version below the spanish interview!]
Antes de nada quisiera darle las gracias por su tiempo y su amabilidad aceptando esta entrevista. No tenemos todos los días la oportunidad de hablar con una persona con su historial, no siendo el típico chico wizkid programando en su dormitorio, sino un adulto con un trabajo serio y estable: controlador aéreo. Pero empecemos por el principio: ¿cómo empezó su interés por la tecnología?
Mi padre era ingeniero informático y de vez en cuando me llevaba a su trabajo, donde me veía rodeado de aparatos en una habitación enorme llena de unidades de cinta y discos duros del tamaño de una papelera, y encontraba todo eso fascinante. Recuerdo que la única interfaz gráfica era una pantalla verde muy pequeña y solo podía mostrar gráficos muy sencillos pero muy espectaculares para la época. En esos días hacía falta una habitación llena de equipamiento informático para dibujar una imagen de un perro pequeño caminando por la pantalla. E incluso entonces tenías que saber que era un perro para darte cuenta de qué estabas viendo en la pantalla. ¡Lo que han cambiado los tiempos!
|
Mike Male en la actualidad. Fuente: LinkedIn
|
En su momento se decía en las revistas de informática que lo que usted quería ser en realidad era piloto. ¿Es cierto?
Sí, es cierto. En un principio intenté convertirme en piloto de British Airways, pero no me seleccionaron. Yo sabía bastante sobre control aéreo ya que vivía a pocas millas de Heathrow y solía ir allí con un pequeño receptor VHF para escuchar a los aviones.
Entonces descubrí que para ser entrenado como controlador aéreo te enseñaban a pilotar la típica nave privada estándar, así que me apunté para ello y tuve la suerte de ser seleccionado. Aun a día de hoy piloto una pequeña aeronave.
¿Qué le llevo a estudiar para convertirse en controlador aéreo?
Cómo te decía, ellos me enseñaron a volar como parte de mi entrenamiento y ese era mi deseo principal. De todas formas, una vez empecé con el entrenamiento me di cuenta de lo interesante y del reto que supone esa carrera y el poder volar era simplemente un bonus.
|
En el puesto de trabajo. Fuente: Ron Daly Photography
|
El mundo era un pelín más analógico en los años 70 comparado con lo que estaba a punto de llegar. Usted ha trabajado como controlador aéreo durante 13 años pero, mientras tanto, desarrolló interés en la informática. ¿Qué encontraba tan interesante en esos primeros ordenadores? Me refiero a que usted ya tenía un buen contacto con tecnología a diario y tal vez era más difícil sorprenderle con nuevos aparatos.
Te sorprenderías de lo primitiva que era por entonces la tecnología de control aéreo. El control aéreo es, correctamente todo sea dicho, muy conservador a la hora de adoptar nueva tecnología ya que requiere de un montón de pruebas para asegurarse de que el sistema sea seguro.
Yo tenía interés por la informática de acompañar a mi padre, pero lo
que de verdad terminó de disparar mi curiosidad fue la disponibilidad de
ordenadores domésticos asequibles. Mi viaje como programador empezó con
un Sinclair ZX81, que compré a través de un anuncio en una revista
dominical.
Empecé a aprender a programar en BASIC y después de un
periodo de tiempo muy corto me volví adicto a la programación y me
pasaba horas y horas aprendiéndolo todo sobre la máquina. En un momento dado escribí un simulador de vuelo muy sencillo en BASIC que te encargaría la
tarea de guiar a una aeronave hacia un aterrizaje seguro.
Fue
solo por diversión pero uno de mis compañeros de trabajo sugirió que se
lo enviara a una de esas pequeñísimas casas de software para ver si
tenían interés. Lo tuvieron, y se convirtió en mi primer programa
publicado comercialmente por Hewson Consultants, con quienes trabajé
durante muchos años.
|
Imágenes de otra época. Fuente: Ron Daly Photography
|
¿Cuál fue el primer ordenador que entró en su vida?
Mi
primer ordenador fue un Sinclair ZX81, programar en BASIC y después
aprendí por mi cuenta ensamblador de Z80, di el salto al ZX Spectrum y
después a muchos de los ordenadores domésticos de la época.
¿Cuál
era su intención al entrar en el mundo de la informática? Me refiero a
si estaba interesado principalmente en disfrutar de lo que otros creaban
o si ya se había plantado esa semilla de la creatividad que buscaba
expresarse por sí misma?
La única intención que tenía cuando
entre en el mundo de la informática comprando mi primer ordenador era la
programación y que podía hacerse con ella. No esperaba que me llevara a
programar tan bien como lo hacía y desde luego no tenía pensamiento en
ganar dinero con ello.Por aquel entonces, aprender a programar era un poco más difícil
que preguntarle a Google o mirar en Stack Overflow *risas* ¿Qué recursos
tenía disponible para aprender a programar? ¿Alguno que fuese su
favorito?
Como la mayoría de amateurs, empecé con el BASIC
leyendo el manual de usuario. Pero, ya que la cantidad de memoria
disponible (¡el ZX81 solo tenía 768 Bytes en su configuración básica!) y
la velocidad del procesador eran limitados, me pasé rápidamente al
ensamblador de Z80 y después hice lo mismo con otros procesadores de 8
bits. Todo el aprendizaje venía de libros o artículos de revistas.
Cuando
pasé al IBM PC y sus clones, una vez estuvieron disponibles, aprendí
por cuenta propia C; lenguaje que me parecía tan rápido como eficiente.
Más tarde, durante la creación de simuladores de control aéreos "de
verdad" usamos una variedad de lenguajes incluyendo Pascal, Modula2 y
después C++. C y C++ eran mis favoritos aunque, ¡dudo que recuerde lo
suficiente como para que me fueran útiles ahora!
|
Uno de los primeros trabajos de Mike.
|
Llegado el momento te ves con la confianza suficiente como para
intentar vender tus creaciones. ¿Cuándo te das cuenta que ya tienes un
producto listo para ser vendido entre tus manos?
No fui yo el
que se dio cuenta, fue uno de mis compañeros controladores en Heathrow
el que sugirió que enviase mi primera creación, Pilot, a una casa de
software.
Empezaste una muy exitosa colaboración con Hewson Consultants. ¿Qué te llevó a elegirles a ellos?
Cuando
empecé a tontear con el ensamblador, me compré un libro de Andrew
Hewson que de verdad me inició en el ensamblador de Z80 para ZX81 y
Spectrum. Por entonces él se anunciaba en la última página de las
revistas de juegos, así que fue al primero al que envié mi primera
creación. Eran comienzos muy tempranos de esta etapa de la informática.
Los programas se vendían en cassettes en eventos amateur muy pequeños o
por correo. Era un poco antes de que se empezaran a vender en tiendas.
Por supuesto, no había Internet. |
Nightflite 2 en acción
|
En tus primeros trabajos está envuelto el tráfico aéreo de una
manera u otra, lo cual, por supuesto, nos intriga conociendo tu
profesión. ¿Qué puedes contarnos o recuerdas de esos primeros
simuladores aéreos?
Los simuladores de control aéreo "de
verdad" eran muy simple por aquel entonces y por norma general los
suministraba la misma empresa que proveía los verdaderos sistemas de
control aéreo.
Durante mi entrenamiento, la pantalla del radar era
monocroma y en un tubo fosforescente. Eran carísimas así como el equipo
necesario para manejarlas.
Este tipo de simuladores, aunque
parecían muy simples, eran escasos y estaban muy distanciados entre sí.
Había un enorme simulador en la academia de control aéreo, y solo había
simuladores en los sitios más grandes como Heathrow o el centro de
control aéreo de Londres.
El sistema en la academia no tenía
etiquetas (texto en pantalla con el identificador de la aeronave) y, de
hecho, ¡solo cuando entré en Heathrow vi una pantalla de radar con
etiquetas! ¡Esto fue a comienzo de los 70, así que hablamos de hace un
montón de años!
Tu simulador más ambicioso es Heathrow International Air Traffic
Control. ¿Pudiste desarrollar todas las ideas que tenías para el juego o
tuviste que dejar algunas fuera debido a falta de memoria o recursos?
El
mayor problema era la falta de resolución de pantalla, lo que significa
que no podía usar identificadores completos para cada aeronave en las
etiquetas del radar. Aparte de eso, la habilidad necesaria para
completar una sesión es muy realista.
|
Como en casa, en ningún sitio
|
¿Cuán "cerca a la realidad" era el juego comparado a tu trabajo normal?
Muy
similar en términos de técnicas, excepto que en la vida real cada avión
lleva a un montón de gente a bordo y con ello la realidad es mucho más
tensa que jugar a un juego. Cuando un controlador aéreo o un piloto se
gana realmente el sueldo en es caso de que ocurra una emergencia de
cualquier tipo. Entonces usas la misma técnica pero con bastante más
tensión en ello.¿Cómo era el proceso de convertir la realidad en una simulación? ¿Cómo virtualizaba los parámetros, etc?
El
escenario alrededor de Heathrow fue creado a partir de datos reales
respecto a la localización del aeropuerto y su pista así como de su
dirección. Todas las características de vuelo fueron modeladas
de forma realista, así como la influencia del tiempo en las aeronaves. Era
tan solo cuestión de entender las matemáticas implicadas y replicarlas.
Modelar cosas como el motor de vapor en Southern Bell y Evening Star fue
mucho más complejo y necesité un montón de investigación y ayuda para
hacerlos tan realistas.
|
Ahora en glorioso píxel ladrillo
|
Durante tu colaboración con Hewson
tuviste que aprender a desarrollar para otras máquinas. ¿Cómo fue
adaptarse al Amstrad CPC y resto de ordenadores? ¿Tuviste ayuda desde
Hewson?
Con el Amstrad CPC la mayor parte del código era igual
ya que también estaba basado en un Z80. Todo lo que tuve que hacer fue
cambiar el código de entrada, pantalla y sonido. No recuerdo que Andrew
Hewson me ayudara, pero la interfaz a cada ordenador estaba publicada
en revistas y manuales. Convertir a ordenadores con otros procesadores
fue más complejo ya que tuve que reescribir todo el código usando otros
ensambladores, pero el esquema del código era el mismo. Tras Heathrow International Air Traffic Control da el salto hacia
los trenes. ¿Qué le llevó a ello? ¿Ya había hecho todo lo que era
posible respecto a la simulación aérea en esas máquinas?
El
principal motivo es que mi nicho de mercado era la simulación de objetos
del mundo real. No tengo la imaginación o creatividad necesaria para
desarrollar juegos originales. Dejé que eso lo hicieran otros.
Una
vez acabé Heathrow (y una versión holandesa simulando el aeropuerto de
Amsterdam Schiphol) busqué mi próximo tema. No recuerdo exactamente como
empezó la conversación pero uno de mis mejores amigos, Bob Hillyer —también controlador aéreo— era, y todavía lo es, aficionado a los
trenes y creo que Bob me sugirió que un motor de vapor sería un buen
candidato para una buena simulación.
No sabía nada sobre el
funcionamiento de los motores de vapor, pero encontré un buen libro sobre
el tema y decidí que podría simular la manera en que se maneja un motor
de vapor. Bob eligió la linea férrea que simularíamos e hizo todo el
trabajo de documentación topográfico (pendientes, curvas, límites de
velocidad, etc.). Así nació Southern Belle. |
Manejando un tren de vapor en una línea histórica
|
A propósito: ¿por qué trenes de vapor y no trenes modernos?
Al
igual que tantas cosas, al no estar entre nosotros, los trenes de vapor
tienen un componente nostálgico que las cosas modernas no tienen.
Una
vez empecé a investigar cómo funciona el motor de vapor me di cuenta de
lo difícil que es conducir un tren de vapor comparado con un tren
moderno. Hay un delicado equilibrio entre el fuego, la presión en la
cámara de vapor y el manejo del tren, que no existe en un tren
moderno diésel o eléctrico. A eso le añades la complejidad del horario y
los muy limitados recursos que permití que tuviera el jugador y se
convierte en una simulación muy complicada.
Usted disfrutó de
su correspondiente ración de éxito y fama durante ese tiempo que trabajó
con Hewson. Incluso recibió un cassette dorado como conmemoración de
las ventas de sus juegos. ¿Qué significo eso para usted? Porque damos
por supuesto que es cierto que se vendieron 100.000 copias y que no fue
solo una estrategia de marketing para impulsar las ventas... :)
Vendimos bastante por encima de las 100.000 unidades pero fue principalmente marketing. Lo siento.
Echando
la vista atrás, no pensé que fuera un hito de ventas, pero sí que pensé
que eso mostraba que Hewson Consultants estaba creciendo y que el
mercado del videojuego se estaba convirtiendo en algo más que un simple
pasatiempo como era al principio. |
Un sonriente Mike Male recibe el cassette dorado. Fuente: Crash
|
¿Tenía libertad creativa en Hewson o se involucraba la compañía más o menos en el desarrollo de sus juegos?
Tuve
libertad absoluta. Hice todo el desarrollo de las ideas (con ayuda de
Bob para Southern Bell y Evening Star) e hice toda la programación.
Hewson Consultants era responsable de la duplicación y ventas.
¿Conoció a otros programadores que trabajaban para Hewson? ¿Cómo era el ambiente allí?
Sí.
Según iba creciendo la compañía, Hewson Consultants fue haciendo
eventos de presentación de productos en el que uno o más programas eran
lanzados. Cuando uno de mis programas se lanzaba al mercado junto a
otros, allí conocía a los otros programadores.
En ese momento
todos trabajábamos desde casa. No se programaba nada en las oficinas de
Hewson Consultants, así que estas eran las únicas oportunidades de
conocer y charlar con otros programadores. El ambiente era genial ya que
no había competición. Mi nicho de simuladores era muy diferente al del
resto.Imaginemos por un momento de que usted no tuviese su trabajo
normal por aquel entonces. ¿Podría ganarse bien la vida con las
ganancias de sus juegos? ¿Tal vez lo suficiente como para comprarse su
propio avión privado? :)
Tal cual; estaba haciendo más dinero
con la programación que con mi trabajo normal. Me compré mi propio avión
pero no es tan lujoso como suena, ya que no era nuevo y su coste era
similar al de un buen coche.
|
Mike junto a Rob. Fuente: CPCRulez
|
En cualquier caso, usted abandona
su trabajo en 1987, deja de hacer videojuegos y funda su propia
compañía: Micro Nav Ltd. Ahí desarrolla un nuevo sistema para el control
aéreo que, si no estoy equivocado, era más flexible, barato y fácil de
actualizar que lo que había en uso en su momento. ¿Podría decirse que
finalmente fue capaz de desarrollar todo lo que usted quería incluir en
Heathrow International Air Traffic Control sin las limitaciones de esos
ordenadores básicos?Llevaba trabajando 11 años en el control
aéreo de Heathrow, pero estaba haciendo tanto dinero vendiendo programas
hasta el punto de que vi una oportunidad de concentrarme en ello y ver
hasta donde podía llevarlo.
Lo veía como un movimiento de bajo
riesgo ya que no es nada fácil cualificar como controlador aéreo en
Heathrow. Si mi aventura con los ordenadores hubiese fallado, suponía
que podría conseguir de vuelta mi viejo trabajo. Por suerte, no tuve que
ver si eso era cierto o no.
Cuando dimití por primera vez en
Heathrow, mi jefe de aquel entonces me convenció para que me quedara y
les ayudara en el desarrollo de control aéreo en su centro de
desarrollo. Lo hice durante un corto periodo de tiempo pero se vio claro que a ellos en realidad no les interesaba mi experiencia con
ordenadores domésticos y PCs, ya que en ese tiempo todo estaba basando en
mainframes.
Durante ese tiempo conocí a un chico llamado Fred
Johnson, que quería construir simuladores para el entrenamiento del
control aéreo comercialmente y juntos decidimos ponernos a ello. Mis
aportes a Hewson Consultants acabaron en ese momento ya que mi atención
estaba en otra parte.
Ya tenía funcionando a Micro Nav como
empresa que vendía un entrenador de pilotos por radionavegación basado
en PCs y Fred estuvo de acuerdo en ello y empezamos a crear un simulador
de control aéreo real basado en PCs.
Nadie más estaba haciendo
algo similar por aquel entonces y nuestra competencia eran grandes
empresas de ingeniería que usaban mainframes enormes y caros.
Tuvimos
un gran golpe de suerte ya que una gran empresa británica llamada
Rediffusion Simulation, quienes principalmente construían simuladores de
vuelo, querían entrar en el mercado del control aéreo e iniciamos una
colaboración con ellos en la que nosotros escribíamos el software y
ellos venderían los sistemas. Entonces a ellos les compraron los
americanos Hughes y de repente se nos veía como a una organización
enorme a nivel mundial pero debajo de esa fachada solo éramos dos
personas.
Tuvimos éxito inmediato ya que eramos más baratos,
potentes y flexibles que nuestros competidores gracias simplemente a la
tecnología PC y sistemas de pantallas más modernos.
Bromas aparte: ¿Fue en Alemania donde encontró sus primeros clientes o estoy equivocado?
¿Cuánto de sus juegos hay en esas primeras versiones que su empresa
vendió con éxito en Alemania? ¿Sólo la idea de usar software informático
para ayudar con el control aéreo o tal vez algo más?
Estos
sistemas basados en PCs no eran juegos. Era software serio y potente
escrito específicamente para entrenar controladores. Nuestro primer
cliente estaba en realidad en España, ya que vendimos allí dos sistemas
(creo que en Barcelona y Mallorca) y después unos cuantos en Reino
Unido. Entonces —como producto de Hughes— logramos un gran contrato para
vendérselos a los BFS —como se llamaban por entonces— en lugares en
toda Alemania.
De hecho, tengo mucha curiosidad. ¿Qué vino primero, la idea de un
control aéreo controlador por ordenador como juego o como posibilidad a
explorar comercialmente?
Primero me llegó la idea del juego
simulador. No tenía pensamiento real en crear un simulador comercial
hasta que entré en contacto con Fred.
El resto es historia. Ha
empleado más de tres décadas en desarrollar algunos de los sistemas
tecnológicos más avanzados que podemos encontrar hoy día. Si echa usted
la vista atrás a esos años en Hewson Consultants: ¿qué aprendió que le
haya sido útil hasta hoy día?
Si Hewson Consultants no hubiera
estado interesado en vender mis programas desde el principio ¿Quién
sabe cómo habría sido mi futuro? ¿Habría ido más allá de trastear con
ordenadores domésticos?
Andrew Hewson era un gran ejemplo para mi
en el sentido de que creamos una relación muy profesional desde el
principio. Era muy directo y se podía confiar en él al trabajar y ambos
entendíamos que necesitábamos tener una ganancia justa en nuestros
negocios. Así es como, hasta el día de hoy, siempre me ha gustado
trabajar con mis clientes y con aquellos con los que colaboro. |
Andrew Hewson. Fuente: Huey
|
¿Qué importancia tuvieron el ZX Spectrum y el Amstrad CPC en tu
carrera? ¿Hay aún un lugar en tu corazón para esas máquinas de 8 bits?
Fueron
muy importantes. Si no hubieran salido en el momento oportuno, el
mercado del videojuego no se hubiera desarrollado como lo hizo, y fue
ese mercado el que hizo empezar en ello.
Tengo un lugar en el
corazón para todas ellas pero la única que conservo a día de hoy es mi
ZX81. Está en una caja en algún lugar, y no estoy seguro del todo donde,
pero nunca me desharé de él.
¿Cree que el haber trabajado en
esas máquinas tan limitadas le ayudó a optimizar recursos y extraer el
máximo potencial posible de cada máquina y equipo humano con los que ha
trabajado? Si mira al mundo de hoy: ¿le sirvió de ventaja respecto a
generaciones más jóvenes que simplemente pueden añadir memoria y
potencia de proceso según necesidad de proyecto?
Desde luego
al principio cuando incluso los PCs tenían memoria limitada, pero la
realidad ahora es que los ordenadores tienen tanta potencia y velocidad
que en el único aspecto donde tenemos que ir lo más rápido con el mínimo
de memoria posible es en el área de los gráficos 3D donde simulamos la
vista desde una torre de control. ¿Cree que su historia podría ser extrapolada a día de hoy? ¿Cree
que aún se pueden traer ideas del videojuego a productos de la vida
real?
No de la misma manera, pero estoy seguro de que hay
personas con nuevas ideas que podrían tener una historia similar. Muchas
veces la innovación viene en etapas tempranas de la mano de personas
individuales.
Decir que traje una idea de un videojuego a la vida
real no es como yo lo veo. Mis "juegos" siempre estuvieron basados en la
vida real y creé un juego a partir de algo real para entretener. La
única diferencia con los simuladores que hacemos ahora es que están
diseñados y pensados para desarrollar una serie de habilidades y no para
entretener, y obviamente apuntan a un nivel mucho más alto.
Si cree que aún se podría extrapolar: ¿qué consejos le daría a
alguien que desarrolla una idea en un mundo virtual que quiere
construirla en el mundo real?
No estoy seguro de tener
consejos para ese escenario ya que en la simulación estás creando una
versión digital de algo real. La diferencia entre el juego de Heathrow y
los simuladores reales que hacemos ahora es en una escala de potencia,
complejidad y flexibilidad mientras se mantiene tan fácil de usar como
sea posible.
Permítame darle nuevamente las gracias por su tiempo. ¿Hay algo que le gustaría añadir para nuestros lectores?
Tengo
que decir que estoy halagado por haber interés en la historia de
aquellos tiempos, pero ha sido divertido y estoy contento de haber
estado involucrado tanto en la época temprana de los videojuegos como
más adelante en el mundo comercial.[ENGLISH VERSION]
First of all, let me thank you for your time and your kindness in accepting this interview. Not everyday we have the chance to speak to a man with a career like you, who was not a typical “bedroom wizkid coder” but an adult with a very serious and stable job: Air Traffic Controller. But let's start from the beginning: how started your interest in technology?
My father was a computer engineer and from time to time he would take me to work with him where I would be in a huge room full of equipment with tape decks and hard disks the size of small dustbins and I found them fascinating. I remember the only graphical interface was a very small green screen and it was only capable of very simple graphics but spectacular for the time. In those days it took a room full of computer equipment to draw a picture of a small dog walking across the screen. Even then you had to know it was a dog to be able to work out what you were seeing. How times have changed!
|
Mike Male nowadays. Source: LinkedIn
|
It was said back in the day in the computer magazines that you really wanted to be a Pilot. Is that true?
MM: It is true. I first applied to be a British Airways pilot but was not selected. I knew quite a bit about Air traffic Control as I lived a few miles from Heathrow and used to go there with a small VHF receiver to watch the aircraft.
I then discovered that for Air Traffic Controller training you were taught to fly up to Private Pilot standard, so I applied for that and was lucky enough to be selected. I still fly small aircraft today.
What moved you to study to become an Air Traffic Controller?
See the answer above, they taught me to fly as part of my training and that was my initial interest. However once I started the training you realise what an interesting and challenging career it is and the flying was just a bonus.
|
Hard at work! Source: Ron Daly Photography
|
The world in the 70´s was a little bit more analogical compared to what was about to come. You worked as an Air Traffic Controller for 13 years, but in between you grew an interest in computing. What did you find so interesting on those early computers? I mean, you already had a good contact with technology on a daily basis so maybe it was more difficult to surprise you with new things.
You would be surprised how primitive the technology was in Air Traffic Control at that time. Air Traffic Control is, quite correctly, very conservative in adopting technology as it requires a lot more testing to ensure the systems are safe.
I had an interest in computers from being with my father, but the real trigger was the availability of affordable home computers. My programming journey started with a Sinclair ZX81 which I bought from an advert in a Sunday magazine.
I started to learn to program in BASIC and after quite a short period I became ‘addicted’ to programming and spent many hours learning all about the machine. I eventually wrote a very simple flight simulator in BASIC which would task you with guiding the aircraft down to a successful landing.
It was just for fun but one of my work colleagues suggested I sent it in to one of the very small, start up, programming houses to see if they were interested. They were and that became my first commercial program published by Hewson Consultants who I worked with for many years.
|
A picture from another time. Source: Ron Daly Photography
|
What was the first one that entered your life?
My first PC was a Sinclair ZX81 programming in BASIC and then I taught myself Z80 assembler language and moved on to the Sinclair Spectrum and then many more of the then ‘home’ computers.
What was your intention when you entered the computer world? I mean, were you mainly interested in enjoying other people´s creations or was there already planted in you a creative seed that wanted to express itself?
The only intention I had when I entered the computing world by purchasing my first home PC was interest in programming and what could be done with them. I did not expect to take to programming as well as I did and certainly had no thoughts of making money.
Back in the day, learning to code was a little bit more difficult than asking Google or looking at Stack Overflow :-) What resources did you have to learn to code? Any favourite?
Like most amateur programmers, I started in BASIC reading from the user manuals, but as the amount of RAM available (the ZX81 had 768 bytes in its simplest state!) and processor speed was limited, I quickly moved into assembler on the Z80 then for other similar 8 bit processors. All such learning was from books or magazine articles.
When I migrated up the IBM PC and its clones, when they first became available, I taught myself C which I found both fast and efficient. Later in the creation of ‘real’ ATC simulators we used a variety of languages including Pascal, Modula2 and then C++. C and C++ were my favourites although I doubt that I can remember enough to be useful now!
|
One of his very early games
|
At a certain point, you find yourself confident enough to try to sell your creations. When did you realize “hey, i already have a marketable product in my hands!”?
I didn’t really, it was one of my Air Traffic Control colleagues at Heathrow that suggested I send my first creation “Pilot” off to a software house.
You started a very successful collaboration with Hewson Consultants. Why did you choose them?
When I started dabbling in assembler, I bought a book by Andrew Hewson that really started me in Z80 on the ZX81 and Spectrum. He advertised in the back of the game magazines then, so he was where I first sent my first creation. It was early days in this type of computing. Programs were sold on cassettes and sold in small, very amateur, exhibitions or via mail order. It was a while before you could buy programs in shops. There was no internet, of course.
|
Nightflite 2 in action
|
Your early works involve Air Traffic one way or another which, of course, intrigues us knowing your profession back then. What can you tell us/remember about those first Air Simulators?
‘Real’ ATC simulators were pretty simple in those days and generally provided by the same manufacturers that provided the real ATC equipment.
During my training the ‘radar’ display was monochrome and on a phosphorescent tube. These were very expensive as was the equipment required to drive them.
As such these simulators, although very simple in how they look were few and far between. There was a large simulator at the College of Air Traffic Control, and simulators only at the largest places such as Heathrow or the London Air Traffic Control Centre.
The system at the college had no labels (text on the screen with the aircraft callsign) and, in fact, only when I arrived at Heathrow did I see a radar display with labels! This was in the early 1970s, so we are talking a while ago!
Your most ambitious one is Heathrow International Air Traffic Control. Were you able to develop all the ideas you had for that game or were you forced to leave some out due to lack of memory/resources?
The biggest problem was the lack of screen resolution which meant I could not really use full callsigns for each aircraft on the radar labels. Other than that, the skills required to complete a session were very realistic.
|
Home sweet home
|
How “near to reality” was the game compared to your normal job?
Pretty real in terms of techniques, except that in the real world each aircraft has a lot of people on board and as such reality could be more tense than playing a game. Where an Air Traffic Controller or pilot really earns their money is when there is an emergency of some type, then the same techniques would be used but with rather more riding on it.
How was the process of converting a real life world into a simulation? How did you virtualize parameters, etc
The scenario around Heathrow was created from real data in terms of airport and runway location and direction. All the flight characteristics were modelled realistically as was the effect of the weather on the aircraft. So, it was simply a matter of understanding the mathematics and replicating it. Modelling things like the steam engine in Southern Belle and Evening Star were more complex and I needed a lot of research and help to make that realistic.
|
Now with glorious brick pixels!
|
You had to learn to develop for some other machines during your collaboration with Hewson. How was adapting to the Amstrad CPC and the others? Did you have help from Hewson?
With the Amstrad CPC most of the code was the same as it was Z80 based. All I had to do was change the input, display and sound code. I do not recall Andrew Hewson helping me there but the interfaces to each computer were published in magazines and manuals. Converting to computers with other processors was more complex as I had to rewrite all of the code into a different assembler language, but the construct of the code was the same.
After Heathrow International Air Traffic Control you change to trains. What motivated this? Had you already done everything that could be done regarding air simulation in those old machines?
The motivation was that my niche was simulation of real-world subjects. I do not have the imagination or creativity required to create original games. I left that to others.
Once I finished Heathrow (and a Dutch version simulating Amsterdam Schiphol airport) I looked around for my next subject. I cannot remember exactly who started the conversation but one of my best friends, Bob Hillyer (another Air Traffic Controller) was, and still is, into trains and I think Bob suggested that a steam engine simulator would make a good simulation.
I knew nothing about how a steam engine worked but I found a good book on the subject and decided that I could simulate the way a steam engine was driven. Bob chose the railway line we would simulate and did all the research into the topography of the line (slopes, curves, speed restrictions etc.). So, Southern Belle was born.
|
The joy of driving a steam engine train
|
By the way: why steam trains and not modern ones?
Like many things, once they are not around something older has a nostalgia that modern things do not have.
Once I started researching the way steam engines work you begin to realise how difficult it is to drive a steam train compared with a modern version. There is a delicate balance between the fire, the pressure in the steam boiler and the operation of the train that is not there for a modern diesel or electric train. Add the complexity of the schedule and the very limited resources that I allowed the player and it became a tricky simulation.
You enjoyed your share of success and fame during that time working with Hewson. You even received a golden cassette as a commemoration for the sales of your games. What meant that to you? Because we are assuming it was true that 100.000 copies were sold and not just a marketing stunt to boost sales :)
We did sell well in excess of 100,000 cassettes but it was primarily marketing, sorry.
Looking back, I did not look at it as a sales milestone, but I did think it showed that Hewson Consultants were growing up and the computer games market was becoming more than an overgrown hobby which it was at the beginning.
|
Receiving the golden cassette. Source: Crash
|
Did you have creativity freedom at Hewson or were the company more or less involved in the development of your games?
I had complete creative freedom. I did all the development of the ideas (with help from Bob with Southern Belle and Evening Star) and did all the programming. Hewson Consultants were responsible for the duplication and sales.
Did you meet with other programmers that worked for Hewson? How was the working atmosphere there?
I did. As the company grew Hewson Consultants would have product launches where normally one or more programs were launched. Where one of my programs was being launched along with others, I would meet the other programmers.
At the time we all worked from our home. There was no programming carried out at Hewson Consultants, so this was the only opportunity to meet and chat. The atmosphere was great as there was no real competitive edge to it. My simulation niche was so different from all the other guys.
Let's imagine that you didn't have your day job back then. Could you make a good living with the earnings from your games? Maybe good enough to buy your own plane? ????
That is exactly how it was, I was making more money out of programming than I was out of my day job. I did buy my own plane but that is not as fancy as it sounds as it was not new, and the cost was similar to that of a good car.
|
Mike and Rob. Source: CPCRulez
|
Anyways, in 1987 you quit your job, stopped doing games and started your own company: Micro Nav Ltd. There you develop a new system for the Air Traffic Control that, if i am not mistaken, was more flexible, cheaper and easier to upgrade that was in use back in the day. Can one say that you finally were able to do everything you wanted for Heathrow International Air Traffic Control without the limitations of those basic computers? ????
I had been working at Heathrow for 11 years in Air Traffic Control, but I was making good money out of selling programs to the extent that I saw an opportunity to concentrate on that and see how far I could take it.
I saw that move as low risk as it is not easy to qualify as a Heathrow Controller. If my venture into computers had failed, I assumed I would be able to get my old job back. Luckily, I did not have to find out
When I first resigned from Heathrow, my then boss persuaded me to stay and help them in Air Traffic Control development at their Development Centre. I did that for a very short period, but it became clear that they were not really interested in my expertise in home computers and PCs as it was all more mainframe computer based at the time.
During that time, I met a guy called Fred Johnson who wanted to build real, commercial, Air Traffic Control training simulators and together we decided to do that. My input to Hewson Consultants dwindled at that time as my attention was now elsewhere.
I already had Micro Nav running as a company selling a PC based pilot radio navigation trainer (hence the name Micro Nav) and Fred bought into that and we started to create a PC based ‘real’ ATC simulator.
No one else was doing that then and our competitors were all big engineering companies using large, expensive, mainframe computers.
We had a very lucky break in that a big UK company called Rediffusion Simulation, who primarily built flight simulators, wanted to get into Air Traffic Control and we formed a collaboration with them where we would write the software and they would sell the systems. They were then bought by the US company Hughes and we suddenly looked like a huge, worldwide organisation but underneath it was just the two of us.
We were successful immediately as we were cheaper, more powerful and more flexible than the competitors purely because of PC technology and more modern display systems.
Jokes aside: how much of your games are in those early versions that your company sold successfully in Germany? (was it in Germany where you first got your first customer or am I mistaken?) Just the idea of using computer software to help with the controlling or maybe something more?
These PC based systems were not games. This was serious and powerful software written specifically for training controllers. Our first customer was actually in Spain as we sold two systems there (in Majorca and Barcelona, I think) and then several systems in the UK. We (badged as a Hughes product) did then get a big contract to sell to the BFS (as they were called then) in sites all over Germany.
Actually I am very curious: what came first, the idea of computer controlled air traffic as a game or as a possibility to explore in a commercial way?
For me the simulation ‘game’ came first. I had no real thoughts about creating a commercial simulator until I linked up with Fred.
The rest is history. You spent more than three decades successfully developing some of the most advanced tech that we can find nowadays. When you look back at those early days at Hewson Consultants: What did you learn that it is still useful for you nowadays?
If it were not for Hewson Consultants being willing to sell my programs from the start, who knows what my future would have been? Would I have gone beyond tinkering with home PCs?
Andrew Hewson was a great example to me in that we formed a very professional relationship from the start. He was very straightforward and trustworthy to work with and we both understood that we both needed to make a fair return out of the business. That is how, to this day, I have always liked to work with my customers and those that we collaborate with.
|
Andrew Hewson. Source: Huey
|
How important were the ZX Spectrum and the Amstrad CPC in your career? Is there still a place in your heart for those good old 8 bit machines?
They were very important. If they had not been around at the right time, the games market would not have developed as it did, and it was that market that got me started.
I do have a place in my heart for all those old machines but the only one I still have is my ZX81. It’s in a box somewhere, and I’m not entirely sure where but I will never get rid of it.
Do you think that having worked on those very limited machines helped you optimize resources and bring out the maximum potential of every equipment and teams that you have worked on? If you look at the world today: was that an advantage to you compared to younger generations who could simply just add as much memory and processor power as needed in a project?
For sure in the early days when even the PCs had limited RAM but now the reality is that computers have some much power and speed that the only place where we need to go for the very fastest and with maximum memory is in the 3D graphics area where we are simulating the view from a control tower.
Do you think that your story could be extrapolated to nowadays? Do you believe that is still possible nowadays to bring ideas from videogames to real life products?
Not in the same way but I’m sure there are individual people with new ideas that can create a similar story. Innovation is usually driven by individuals at the very beginning.
To say that I brought a video game idea into real life is not how I see it really. My ‘games’ were always based on real life and I created a game out of something real for entertainment. The only difference in the simulators we create now is that they are designed and intended to develop skills rather than to entertain and obviously they are aiming at a far higher level.
If you think so: what tips would you give to someone who developed an idea in a digital virtual world that wanted to build in the real, physical one?
I’m not sure I have any tips for that scenario as in simulation you are creating a digital version of something real. The difference between the Heathrow game and the real simulators we do now is just scaling up in power, complexity, flexibility while keeping it as easy to use as possible.
Let me thank you again for time. Is there anything that you would like to add for our readers?
I have to say that I am flattered that there is any interest in the story of those times but it was fun and I’m glad I was involved both in the early days of games and thereafter in the commercial world.