Canarias Go Retro: De cómo NO hacer un videojuego de 8 bits

jueves, 25 de mayo de 2023

De cómo NO hacer un videojuego de 8 bits

 

        Esta vez escribo sobre cómo yo mismo me compliqué las cosas al querer hacer un simple juego.







La historia comienza con la buena intención de crear algo para el C64 usando BASIC. El punto de partida fue un simple programa por turnos en el que tu héroe "@" se mueve por un tablero intentando escapar de un terrible y monstruoso "%"  durante un número limitado de pasos. Dicho y hecho:


 

Pues ahí se podía haber quedado la cosa. Pero entonces apareció el peor error que se puede cometer durante un desarrollo. La temible, por sus consecuencias, pregunta "¿Y si...?"

¿Y si... lo hago más grande? 



La velocidad a la que se rehace el tablero tras cada turno no se resentía mucho, así que bien.

Pero... ¿Y si... lo hago aún más grande?
        ¿Y si... pongo dos monstruos? 
        ¿Y si... colores?

Ahora me tenía que enfrentar a las limitaciones del BASIC del C64 y un listado lleno de PEEKS y POKES no me apetecía nada. Me acordé entonces de una de las muchas extensiones al lenguaje que existen, quizás la más famosa:



Recordaba que el autor sólo tenía 16 años cuando lo publicó. Gracias al Simons' Basic, el BASIC del C64 ya es otra cosa: comandos gráficos, para situar texto en pantalla, de sonido, llamadas a procedimientos, bucles repeat, comandos para modificar caracteres, etc. Una maravilla.

Primera prueba:



Gracias al Simons' Basic, facilísimo. Con una instrucción que permite rellenar un área de la pantalla con un mismo caracter, el tiempo entre refrescos del tablero se hace aún más corto.

¿Y si... añadimos una salida (E), de forma que la partida no se acaba hasta que escapas?

(Ya van cinco "y si", ejem, ejem)


Todo bien. Mi único problema es que los monstruos (ahora M y N) son implacables y siempre me comen antes de alcanzar la salida...

   

(son buenos chicos, pero tienen hambre)


¿Y si... reorganizo la pantalla para mostrar información de forma más presentable?
¿Y si... la sailda lleva a otro tablero a modo de mundo paralelo?
¿Y si... en vez de letras para héroe y enemigos, hago unos gráficos?
(Nota mental: Creo que me estoy viniendo muy arriba)



Simons' Basic permite redefinir el juego de caracteres con facilidad. La salida y un monstruo ya no son letras. El 49 indica que he vuelto a poner un límite de movimientos. No está mal como exploración de las posibilidades del Simons', pero... ¡Ese no era el plan!


¿Y si... Invento una historia para el juego?
¿Y si... la hago incluyendo a mis compañeros de CGR?

        Me contesto a todo que sí sin darme cuenta de que ese es el punto de inflexión hacia el desastre.
Ahora el juego es "ESCAPE FROM CGR" y cuenta con un delirante argumento:






Ahora el juego muestra en qué tablero nos encontramos y quiénes nos persiguen:



Entre una tontería y otra, el programa ya es 10 veces más grande que el inicial, si bien la mecánica es casi la misma.
¿Y si... pido a los compañeros que cada uno aporte un sprite hecho por ellos?
¿Y si... emulo a E.T. (el videojuego) y hay que recoger partes de una radio para ser rescatado?

(E.T. ... ¿En serio? ¿No había otro juego en el que inspirarse que no recordase a una catástrofe?)


Cada enemigo y el héroe Geraldo tienen su propio muñeco diseñado por los amigos. Contador de radios recogidas abajo a la derecha y eliminado el número que indicaba los turnos. La cosa se complica.


¿Y si...? ¡Nada de "y si"! Es que a mi petición de sprites a los chicos de CGR que iban a formar parte del juego me han respondido más. Ahora tengo más gráficos que personajes. Y no puedo hacerles el feo de no incluirlos en el juego.

Hmmmm...

¿Y si... cuando tenga todas las partes de la radio acude al rescate uno de los personajes "extra"?

Allá vamos, programa cada vez más absurdamente complejo. Lo de WORLD me parece excesivo para un tablero hecho de puntitos y lo cambio por ZONE. Me vuelvo loco con las facilidades para el texto de Simons' Basic y hago una pantalla de inicio rayando en la horterada con scroll de texto, nombres de los protagonistas apareciendo como en una película, sprites a lo loco por la pantalla:



Además, decido desarrollar el juego exclusivamente en las reuniones mensuales del grupo (porque en casa ya me está costando motivarme). Y claro, tenemos charlas, distracciones, risas, música SID a todo volumen... Se hace complicado y la programación avanza lentamente, muy lentamente.

("chiquita castaña tu juego")


  No me doy cuenta de que, realmente, el juego ya está terminado. Funciona. Empiezas y acabas. Cuando recoges las 5 radios, aparece un rescatador que lo aniquila todo y ganas la partida. Sólo queda el tedio de pulirlo para poder compartirlo.



Pero no, ahí está esa parte del cerebro que trabaja en segundo plano para complicarnos la vida gratis:

¿Y si... añado frases características de humor de cada un de los protagonistas que aparezcan cuando estén activos?

Cómo no, vamos:

(¡Jajajaja!)


13 "y si" después y a pesar de que estoy agotado de ver el mismo código (cada vez más largo) en todas las reuniones,  un día me doy cuenta de que es un C64 y que el C64 destacó por una cosa sobre todas las demás: el sonido. Maldita sea mi estampa, ¿ cómo voy a hacer un programa para el Commodore sin sonido ? Pero es que no tengo ni idea de sonido, pero ni idea. Nada, venga, a leer manuales a ver si me entero.

Por suerte para ustedes, las infantiles y poco armoniosas melodías que conseguí me escupiese la máquina no se pueden reproducir aquí y mejor es.

En este punto, con el juego funcional pero no acabado (falta una pantalla final tanto para cuando se gana como para cuando se pierde) y mi cabeza completamente saturada por culpa exclusiva del "y si" que no se calla, decidí abandonar. Ahí se queda. He hecho este artículo un año después de la última modificación porque no quería acercarme al juego, no me fuese a aparecer otro "y si"...




9 comentarios:

Magoric dijo...

Sencillamente "Maravilloso".

Josepzin dijo...

Vaya tela :D :D

Podría haber sido peor, con el temible... ¡¡SÍNDROME DEL MENÚ BONITO!!

Anónimo dijo...

Me ha encantado.
Muchas gracias.
¿Y si... haces una segunda parte? :-)

Almighty God dijo...

¿Y si ahora lo haces en código máquina?

Josepzin dijo...

¿Y si ahora lo haces para dos jugadores?? :D

Monseñor Geraldo Rivera dijo...

Sólo mi amigo kempston puede hacer un juego de ...Geraldo!!!!
Kemston of Goldeneye rules!!!

Art of Walls dijo...

Ahora te falta convertirlo en un FPS tipo Doom pero con gráficos PETSCI.

Txinto dijo...

Alucinante Kempston, un pedazo de artículo para un pedazo de juego.

FoG dijo...

Enhorabuena Kempston, sencillamente genial, ahí está la grandeza de un juegos, que para ser entretenido, y que te eches unas risas, no hace falta la PS5 ni la Xbox One X, el C64 sigue dando caña. Me han parecido geniales las aportaciones del Simon´s Basic, vaya máquina de pibe, haber creado esto con esa edad.