| |
Comentarios de Jose Luis
Tur:
El "Caverns of Titan" es producto de mi
afición por los plataformas más clásicos, que
desgraciadamente no abundan en la norma. No era sólo la
escasez lo que me carcomía sino también la escasa
calidad de los mismos; en ninguno de ellos la capacidad
de los MSX había sido completamente aprovechada.
Decidido a poner fin a esa situación me arme de valor y
decidí hacer mi primer juego completo en ensamblador
aprovechando la oportunidad que me brindaba el MSXDev'05,
después de todo tenía un año por delante. ¡Iluso de
mí!, es increible el trabajo que puede llevar un juego
de estas características, si a eso le unimos mi natural
incapacidad para planificar las cosas el resultado pudo
ser un auténtico desastre.
El comienzo fue sencillo, quería un juego de unas 20
pantallas con el máximo colorido posible, eso me
obligaba a usar no sólo sprites HW, sino también a usar
sprites por software. Esto último es algo que, si mi
mala memoria no me traicionaba, no se había hecho nunca
aprovechando la alta resolución de color de SC2. Lo
visto hasta ahora se reducía a aproximaciones de las
técnicas usada en ordenadores inferiores como el
spectrum. Originalmente mi objetivo inicial fue hacer una
ROM de 8Kb, al poco tiempo me dí cuenta de que eso era
prácticamente imposible y tuve que planificar de cara a
los 16Kb; producto de esa política inicial de ahorro, es
el sistema de empaquetado de las fases, algo extraño;
pero que para este tipo de juegos me permitía exprimir
hasta el último byte. Básicamente cada pantalla está
compuesta por un conjunto de formas geométricas
rectangulares apiladas que pueden estar rellenas por 1, 2
ó 4 caracteres diferentes que se repiten, con un patrón
irregular, cubriendo toda el area. Cada una de esas
formas consumía 4 bytes e incluía también los
atributos que la caracterizaban (tipos de suelo, si
estaba animada, si era mortal, puntuable, etc.). El
formato era tan compacto y poco redundante que probé a
comprimirlo por si podía rascar algunos bytes y el
resultado fue que aumentaba de tamaño en vez de
disminuir :P.
Aparentemente no podía quejarme, hasta que caí en la
cuenta de que hacer un diseñador de pantallas que
optimizara como yo quería era tarea de locos y por tanto
tuve que codificarlas yo a mano, bit a bit. Acabe
recitando de memoria el significado de cada uno de los
bits de cada uno de los bytes que componían un elemento
de pantalla, un infierno, vamos. Una de las lecciones que
he aprendido es que no hace falta perder tanto tiempo en
estos detalles, si hace falta más memoria pues se coge y
ya está.
Los gráficos fue posiblemente el tema que más cuidé en
el juego, fruto de esto fueron los muchos cambios que
llegue a realizar sobre los patrones que utilizaba. Este
es uno de los primeros conjuntos sobre los que trabajé:
|
|
| |
También he de reconocer que el
gracioso meneillo del que hace gala el personaje es el
resultado de algún sabio consejo por parte de Jon.
Sin lugar a dudas la parte gráfica ha sido la más
entretenida en la creación del juego. A veces el diseño
de pantallas también pudo llegar a resultar
divertido (imaginando las caras de espanto de los que las
jugaran :D ); pero fueron más los momentos de hastío.
La programación no representó un reto demasiado grande,
no hay realmente nada revolucionario o
supercalifragilísticamente síncrono: se hace uso
abuntante de la BIOS, no uso interrupciones (bendito
HALT) y el bucle principal es sencillo. Los sprites de
software u objetos de movimiento vertical, son ni más ni
menos que volcados sobre la tabla de patrones y de color
en bruto, esto me facilita la tarea a la hora de
conseguir que pasen por detrás de algunas plataformas ya
que estas últimas se representan, en su casi
totalidad, mediante carácteres en la tabla de
nombres. El efecto multiplano es muy curioso. Para el
borrado no es necesario hacer nada especial, ya que ellos
mismos se borran al desplazarse gracias a que tienen una
línea vacia tanto arriba como abajo. Otro truco curioso
es el no tener vacia esta linea, a veces es interesante
que el objeto no borre su rastro, por ejemplo las arañas
que cuelgan (fase "Methane Frozen Fall").
Los sprites de HW están organizados para que cada objeto
tenga tres colores o tres sprites diferentes, el truco
para que parezca que hay hasta 6 sprites horizontales es
evidente, no están alineados verticalmente de manera que
dos de ellos sólo solapan sendas mitades, superior e
inferior del sprite con el color "principal",
La verdad es que da mucho juego, la única limitación es
que sólo podrá existir un enemigo horizontal a la
altura del personaje, nada grave.
De la rutina de música
poco hay que decir ya que es de sobras conocida por
todos, el PT3 player. Única alternativa viable por mi
escasa capacidad musical y la inmensa base de recursos
que ponía a mi disposición. Prueba de que el sonido es
un tema en el que estaba (y sigo estando pez) es que la
ROM presentada carecía de un sistema digno de SFX,
problema recientemente solucionado gracias a la
inestimable ayuda de WYZ.
Inestimable fue también el servicio prestado por el
compresor BITBUSTER, que permitió comprimir 10858 bytes
de gráficos y datos (y algo de código también) a tan
sólo 5481 bytes. Si alguien consiguiese mejorar el grado
de compresión, cosa que dudo, o reducir el descompresor
se convertiría inmediatmente en benefactor de la
humanidad :).
Estoy bastante satisfecho
del conjunto, posiblemente cambiaría pocas cosas. Quizá
reduciría algo la dificultad; pero no de las primeras
fases, sino de las últimas, que yo mismo reconozco que
son sólo para aficionados "hardcore" del
género. Algúna que otra animación no ha resultado todo
lo fluida que a mi me habría gustado en un principio y
poca cosa más; también se me ocurre que si tuviese
entre mis manos un editor de pantallas como Dios manda,
prepapararía posiblemente una versión extendida con
más fases; pero no, este tipo de juegos no se
caracteriza por el gran número de pantallas (no así los
de la familia del "Jet Set Willy", que es la
evolución natural del Caverns ;) ), si no por tener
pocas y complicadas (arderé en el infierno por esto).
Y ahora algunos trucos para
los que jugando en el MSX, tiren la toalla y
decidan que ya han acabado con el juego para el resto de
sus vidas...
Vida extra :
Pulsa "JEDI" durante más de dos segundos...
Congela a los enemigos : Pulsa
"ICED" durante más de dos segundos...¡ojo!,
que su contacto sigue siendo mortal.
Pasa de fase : Pulsa "CHIEF"
durante más de dos segundos...
¡Nos vemos en el MSXDev'06!
José
Luis Tur Santolaria (quemándose en el infierno
de los malos programadores).
[ Nota del Kun: No estoy de acuerdo con
esta ultima frase :) ]
|
|