Bueno, pues
el ORIC era el nombre de un microcomputador de los "viejos tiempos".
Básicamente contenía un microprocesador 6502 a 1Mhz, 48k de RAM (incluyendo
memoria de vídeo, 8K para alta resolución, 1k para modo texto) 16k de ROM
(Basic incluído), una VIA 6522 y un chip de sonido AY-3-8912.
Si quieres saber
más sobre esta máquina, puedes consultar aquí:
http://es.wikipedia.org/wiki/Oric_Atmos
o aquí (más
información, pero en inglés)
http://en.wikipedia.org/wiki/Tangerine_Computer_Systems
¿Por qué es
un tema de mi interés?, fue mi primer ordenador. Con él me inicié en el mundo
de la informática (aunque esto no sé si es para estar agradecido...) y siempre
queda algo de morriña, sobre todo cuando es un ordenador con un éxito casi nulo
en nuestro país...
La cuestión
es que hace algún tiempo descubrí que hay un grupo de "chiflados"
usuarios de Oric (aún) que se dedican a hacer emuladores y ¡software! Así que
me introduje en el mundillo.
Se
fabricaron 3 ordenadores: Oric-1, Oric ATMOS y Telestrat (o Stratos en UK).
Por ahora
existen emuladores de estos equipos para diferentes plataformas, un compilador
de C cruzado, y bastante software tanto de entonces como nuevo. Y la gente
sigue trabajando. ¡Incluso se han realizado demos en esta máquina!
Mi primer
trabajo para el Oric fue una colaboración con el autor de Euphoric (un soberbio
emulador de los 3 Oric para PC) Fabrice Francès para realizar un intérprete de
los juegos de Infocom hasta la versión 3 (Standard
Series). Yo me encargué de realizar la primera versión del mismo en
C y Fabrice lo optimizó, reescribiendo prácticamente todo el cuerpo del intérprete
en ensamblador del 6502 para darle velocidad además de prestarme una gran ayuda
durante el desarrollo. Si alguno lo desea puede bajarlo desde aquí.
Tras esto me
propuse aprender a programar en el ensamblador de 6502 y, de paso, aprender
cómo se hacían las maravillas que veíamos en los 80 correr en esas pequeñas
máquinas. Y comencé con algo de lo más duro: los juegos en perspectiva
isométrica. Y así nació el juego Space:1999, una aventura basada en la popular
serie de TV.
Más
información, descarga y vídeos en https://www.defence-force.org/index.php?page=games&game=space1999
¿Y después?
Pues como no me canso de aprender, me enredé con el 3D. Parece imposible hacer
3D decente en una máquina como ésta. De modo que me puse manos a la obra y así
nació 1337, homenaje al fabuloso Elite. El juego 1337
ganó el premio
a mejor juego del año 2010 de Oldschool Gaming .
De nuevo más
información, descarga y vídeos en https://www.defence-force.org/index.php?page=games&game=1337
Os dejo un
enlace al número 3 de la revista Retromaniac (fantástica revista, por cierto),
donde me hicieron una entrevista respecto a 1337 (páginas 44 y 45)
http://retromaniacmagazine.blogspot.com/2011/04/retromaniac-numero-3.html
¿Y ahora?
Pues ahora estoy intentando aprender más. Mi siguiente proyecto es portar el Skool Daze, excelente juego
que maneja un buen número de sprites con una IA más que avanzada. Si os
interesa seguir el desarrollo: http://forum.defence-force.org/viewtopic.php?t=706
El juego ya está disponible https://www.defence-force.org/index.php?page=games&game=skooldaze
Una
vez acabado Skool Daze me pregunté
qué otras cosas parecía imposible hacer con un Oric. La máquina es incapaz de
borrar y volcar la pantalla completa a una velocidad decente, de forma que
cualquier juego que necesite una velocidad alta (por ejemplo el típico
matamarcianos), con muchos enemigos, y que modifique el área de juego de manera
continua (por ejemplo haciendo scroll de la misma, sobre todo si es
pseudo-paralax) es todo un reto Y me encantan los retos.
En
Space:1999 y en Skool Daze, sólo se actualiza la parte necesaria y en 1337, aunque se actualiza todo el área
de juego en cada cuadro, no hace falta mucha velocidad de refresco para tener
un juego suave (ronda los 10-5 cuadros por segundo). Pero en un matamarcianos,
esto no es adecuado. Recordé un juego de la época que tuvo mucha fama: el Uridium. La versión de Spectrum
lo hacía bastante bien. ¿Sería posible hacer algo así con un Oric? No tiene
sprites por hardware, ni un chip gráfico que se encargue del scroll. Tampoco se
puede definir el inicio de la memoria de pantalla (que es fija) para tener
doble-búfer por hardware y los trucos que se usaban con el Z80 (como usar la
pila que se puede mover en memoria y tiene entradas de 16-bit) no son
aplicables aquí.
Y
de ese reto nace Oricium. Una
versión muy modificada de Uridium con algunas especificaciones que parecen
imposibles. Por ejemplo los niveles son generados proceduralmente (es decir,
algorítmicamente) para tener un número virtualmente infinito de ellos. Se añade
una componente de tipo puzle para destruir las naves nodrizas enemigas y
“cazas” enemigos con animaciones y diferentes estrategias de ataque (algunas
muy complicadas). También se añaden mejoras a la nave que se pueden ir
recogiendo y la posibilidad de recargar la energía de tus escudos.
Aún
está en versión beta, pero espero que esté disponible en las próximas semanas:
El juego ya está disponible https://www.defence-force.org/index.php?page=games&game=oricium
Además,
ha sido revisado en Retro Gamer Magazine y le dieron una puntuación de 91% y status de “Sizzler”
Un
vídeo del gameplay de una versión de desarrollo (ya han cambiado algunas cosas
desde entonces) lo podéis ver aquí.
Si
os interesa seguir el desarrollo podéis hacerlo en los foros de
Defence-Force o en los de
RetroWiki. En estos últimos he ido comentando cómo hago las cosas y dancresp tuvo la amabilidad de juntar
toda esa información en este documento.
Tras
una (merecida) pausa para descansar, el siguiente proyecto en que me embarqué
fue en realizar un juego de aventuras gráficas (estilo Lucas) para el Oric.
Es
algo que parece imposible y, al principio, tuve mis dudas. Sobre todo en el uso
de memoria y en la velocidad a la hora de realizar las animaciones. Con unos
muñecos del tamaño de los del Maniac Mansion de C64, cada personaje iba a
necesitar más de 4K para todas las animaciones. Una habitación un poco grande
se iba a pasar de las 10K fácilmente. Y faltaban objetos, textos, todos los
scripts…
Tocó
pensar bien cómo abordar el proyecto, estudiar otros motores como el SCUMM e
implementar un motor a medida para el Oric. Y así nació OASIS, un motor
completo con gestión de memoria dinámica, ejecución en multitarea cooperativa
de scripts y con todo lo demás necesario para implementar un juego como este.
Junto
con esto hubo que desarrollar dos herramientas nuevas: un editor de pantallas
que reprodujera la pantalla del Oric y sus modos de vídeo y un compilador de
scripts.
Viendo
que a la gente le había gustado el juego basado en la serie Espacio:1999, se me
ocurrió que quizás fuese una buena idea basarlo en otra serie de la época,
también de culto en el mundo ci-fi: Los 7 de Blake, cuya
primera temporada se emitió en España a principios de los 80.
Tuve
la suerte de contar con jojo073, un grafista impresionante del mundo del Amiga,
para el diseño de los personajes, que quedaron realmente increíbles.
Tras
más de dos años de trabajo, el proyecto salió a la luz en octubre de 2017. El
juego, con manual y lo necesario para crearse una edición física, se puede
descargar de aquí:
https://www.defence-force.org/index.php?page=games&game=blakes7
Si
queréis seguir el desarrollo, no dejéis de ver el hilo al respecto en RetroWiki,
sobre todo este
post, donde explico un poco las interioridades. La documentación técnica de
OASIS la podéis ver en este documento.
Vídeo
de la intro: https://youtu.be/iDQZTKdoiyA.
La comunidad
Oric se agrupa en torno al sitio que administra Mickaël (Dbug) Pointier http://www.defence-force.org/ donde se
encuentra el foro principal de discusión (en inglés) http://forum.defence-force.org/
El sitio http://www.oric.org/ es la página principal del
Club Europe Oric. El sitio http://oric.free.fr/
tiene información (alguna algo desactualizada) acerca del Oric, y desde ahí
puede descargarse el fabuloso Euphoric, aunque es un programa originalmente
escrito para DOS y cada vez da más problemas para ejecutarlo en sistemas
operativos modernos.
El emulador
más actual y, además multiplataforma, es el Oricutron http://code.google.com/p/oriculator/