CPC Retrodev 2023: Alloy Box
389 hits

eXTReMe Tracker

Esta edición de CPC Retrodev era especial: la última organizada por la Universidad de Alicante. Hay sitio para el pesimismo (basta con borrar palabras) pero a pesar de todo quise apuntarme una vez más y así surgió el presente videojuego, "Alloy Box". -- This edition of CPC Retrodev was special: the last one ever managed by the University of Alicante. There's room for pessimism (it's just a matter of deleting words) but I wanted to give it another shot nonetheless, and that's how the current videogame surfaced, "Alloy Box".



"Wireware" y "Dire Dare" -- "Wireware" and "Dire Dare"

El punto de partida era el deseo de hacer algo diferente. Tenía tres meses para prepararlo todo, pero al mismo tiempo también tenía que compaginar el desarrollo del videojuego con mi trabajo, a diferencia de años pasados en los que estaba desempleado y tenía las mañanas y las tardes a mi disposición. De hecho, los tres meses iban a reducirse a solamente uno, pues sólo tenía unos pocos garabatos en papel cuando terminó Septiembre. La situación empezaba a parecerse a años pasados, con el tiempo de desarrollo reducido a pocas semanas; las condiciones maratonianas en las que escribí "Wireware" en 2021 y "Dire Dare" en 2022. -- The starting point was the wish of making something different. I had three months to get everything ready, but at the same time I also had to balance the development of the videogame with my job, unlike past years when I was unemployed and I had both mornings and afternoons fully available to me. In fact, the three months would shrink to just one, as all I had when September ended were some few scribbles on paper. The state of things was beginning to remind of past years, when the development time was reduced to few weeks; the marathonian conditions where I wrote "Wireware" in 2021 and "Dire Dare" in 2022.



MSXEC, el nuevo emulador de MSX -- MSXEC, the new MSX emulator

A pesar de todo ya había hecho mi elección: un juego de tema militar inspirado en las dos primeras entregas de la célebre serie "Metal Gear" de Konami. ¡No en vano había empezado a escribir un emulador de MSX! Quería que fuese más arcade que aventura, pero al mismo tiempo me interesaba obligar al jugador a mantener un mínimo de estrategia, escondiéndose periódicamente de los soldados enemigos, todo mientras buscaba los objetos (al final todos los videojuegos de aventuras son "fetch quests", búsquedas de objetos) necesarios para satisfacer el objetivo y completar el juego con éxito. -- I had already made my choice nonetheless: a military-themed game inspired by the first two episodes of the famous series "Metal Gear" from Konami. After all I had begun writing a MSX emulator! I wanted it to be more arcade than adventure, but at the same time I felt compelled to make the player keep a minimum of strategy, often hiding from the enemy soldiers, all while he looked for the objects (in the end all adventure videogames are "fetch quests") required to satisfy the goal and finish the game succesfully.



"Super Cauldron", el juego elegido por la organización -- "Super Cauldron", the game chosen by the organisation

La inspiración era escasa, eso sí, y se notó en el aspecto artístico desde el principio; más aún cuando "Super Cauldron" (el videojuego elegido por la organización del concurso para el homenaje opcional) no tiene nada que ver con "Metal Gear". El héroe acabó siendo un simple rubio en camiseta y vaqueros, alguien muy poco militar, al que sólo le faltaban las gafas de sol y la gabardina para convertirse en mi viejo amigo Timothy Gunn, al que ya conocéis del videojuego homónimo de 2018. -- I was low on inspiration though, and it showed in the art department since the starting point; even more so when "Super Cauldron" (the videogame chosen by the compo organisation for the optional tribute) has nothing to do with "Metal Gear". The hero ended up a simple blond guy in t-shirt and jeans, a very un-military folk, who only lacked sunglasses and a coat to turn into my old friend Timothy Gunn, whom you already know from the 2018 namesake videogame.


Los gráficos del juego: azulejos y sprites -- The game graphics: tiles and sprites

De lejos, la parte que más tiempo consumió fue el motor gráfico, hecho para mover un scroll de 6x6 superazulejos de 4x4 caracteres (divididos en dos subazulejos de 4x2 caracteres) a la mayor velocidad posible, y para dibujar sprites debidamente recortados según los bordes de la pantalla, en ambos casos empleando macros y código automodificable para ganar unos pocos microsegundos más. Irónicamente, como el jugador siempre corre a la velocidad de un carácter por paso, la mitad de mi trabajo al escribir el motor gráfico fue superflua, pues los casos del scroll con posiciones horizonales o verticales desalineadas al carácter no se utilizan nunca. Además, como decidí prohibir los movimientos en diagonal (ya estaban prohibidos en el "Metal Gear" original y su secuela "Metal Gear: Solid Snake") perdimos la posibilidad de movernos diagonalmente en pasos de medio carácter en ambas dimensiones. -- By far, the part that consumed the most time was the graphics engine, made to move a scroll of 6x6 supertiles of 4x4 characters each (divided in two subtiles of 4x2 characters each) at the highest possible speed, and to render sprites properly clipped by the screen bounds, in both cases using macros and self-modifying code to gain some few extra microseconds. Ironically, because the player always runs at the speed of a character per step, one half of my work when writing the graphic engine was useless, because the scroll cases where the horizontal or vertical positions are character-misaligned are never employed. Besides, because I chose to forbid diagonal motions (they were already forbidden in the original "Metal Gear" and its sequel "Metal Gear: Solid Snake") we lost the ability to walk in diagonals of steps of half character in both dimensions.



El accidentado desarrollo del motor gráfico -- The troublesome development of the graphics engine

Para entonces el tiempo apremiaba, la última semana se me fue en dos días de elaborar el mapa, dos días de hacer el código de la lógica de juego, y dos días de probar muy someramente el resultado, cambiando detalles sobre la marcha. Por ejemplo, las granadas iban a ser parte del arsenal de los enemigos, pero ahora simplemente las lanzan soldados invisibles desde fuera de la pantalla. Además mis planes de implementar el algoritmo de Bresenham para determinar si un personaje podía ver a otro se vieron reducidos a un simple cálculo de posiciones medias (1:2, 1:4, 3:4) para detectar obstáculos. No era muy fino pero tampoco hacía falta más: el jugador siempre está en el centro de la pantalla y los bordes están a solamente tres azulejos de distancia. -- By then time was running out, the last week flew away after two days of designing the map, two days of writing the code of the game logic, and two days of testing the outcome very shallowly, changing details as I found them. For example, the grenades were going to be part of the enemy weaponry, but now they're simply thrown by invisible soldiers from outside the screen. Besides, my plans of implementing Bresenham's algorithm to check whether a character could view another one were reduced to a simple test of median locations (1:2, 1:4, 3:4) to catch any obstacles. It wasn't very precise but we didn't need more: the player is always in the centre of the screen and the bounds are just three tiles away.

La música hubo de hacerse sin homenajes, deprisa y corriendo. Más allá de la necesidad de tener dos versiones de la misma canción (normal y rápida) no tenía modelo alguno, ni base ni nada. Al final, como de costumbre, improvisar un ritmo dio pie a cubrirlo con series de acordes, y a introducir variaciones que camuflaban la pobreza de partida. No soy capaz de escribir melodías, es superior a mis fuerzas. -- The music had to be made without homages, quick and dirty. Beyond the requirement of featuring two versions of the same song (normal and quick) I had no references whatsoever, no base, nothing. In the end, as usual, improvising a beat enabled covering it in chords, and adding variations that disguised the starting poverty. I'm unable to write melodies, it's beyond me.


"Alloy Box: main song"


"Alloy Box: hurry up!"

Ahora sí que se acababa el tiempo. Había que escribir el manual y entregarlo todo a la organización, y de propina grabar un vídeo de muestra con el juego en acción. XeNoMoRPH me echó un cable grabando un vídeo adicional más largo y detallado que el mío. -- Now the time was really about to end. I had to write the handbook and deliver everything to the organisation, and as a bonus, recording a sample video with the game in motion. XeNoMoRPH helped me by recording an extra video, longer and more detailed than mine.



Pantallazos de la versión entregada al concurso -- Screenshots from the version delivered to the contest


YouTube: I3kV_xrn-9Y + QZsyynmkCx4

Con esto se acaba la aventura de desarrollar un videojuego de intriga que al final acabó por parecerse más al "Cosa Nostra" de Opera Soft que al modelo original japonés. Pero aún así logré entregarlo a tiempo, que es lo que importa. ¡Ahora todos a esperar! -- Thus ends the adventure of developing a stealth videogame that finally ended up more similar to "Cosa Nostra" from Opera Soft than to the original Japanese model. But I nonetheless got to deliver it in time, and that's what matters. Now we all wait!

César Nicolás-González, 6 de noviembre de 2023

20231118: ¡"Alloy Box" ha ganado la primera plaza y varios áccesits! -- "Alloy Box" has been awarded first place and several special mentions!


Changelog

[ CPCRetroDev 2023 Awards | amstrad.es | cpcwiki.eu ]
Download the 1st revision (45 hits)
Send a comment
Return to index