¡Estamos de festejo! "La Mazmorra Abandon" cumple 15 años en internet de actividad ininterrumpida y, por ese motivo, voy a celebrar el mayor sorteo jamás realizado en el portal durante todo este tiempo. Una oportunidad de premiar vuestra participación y, sobre todo, la fidelidad que habéis demostrado.
Para ello, el 15º aniversario de "La Mazmorra Abandon" vendrá acompañado de un total de 12 sorteos que tendrán lugar desde enero hasta diciembre y en los que se entregará una clave correspondiente a un juego de STEAM a cada uno de los participantes que resulten agraciados. Por lo tanto, todos aquellos que toméis parte dispondréis de doce oportunidades para conseguir alguno de los títulos que serán objeto de sorteo.
La forma de participar es muy sencilla, habiendo de cumplir con los requisitos que se detallan a continuación:
- Estar suscrito al canal de YouTube de "La Mazmorra Abandon" y haber configurado las suscripciones como públicas para su correcta comprobación.
- Seguir la cuenta de Twitter de "La Mazmorra Abandon", además de retuitear el anuncio correspondiente al sorteo y darle "Me gusta".
- Estar registrado en "La Mazmorra Abandon" y disponer de una cuenta activa con la que poder incluir su "nick" en forma de boleto en el presente sorteo.
Asimismo, se exigirá que el participante sea mayor de edad en el momento en que se lleve a cabo la celebración del sorteo y sólo se permitirá la participación de un mismo usuario por cada uno de ellos, quedando excluido de este sorteo y los restantes quien haga uso de diferentes "nicks" o cuentas de Twitter/YouTube.
En cuanto al premio, se tratará en esta ocasión de una clave para STEAM de "Gunborg: Dark Matters" valorada en 9,99€, gracias a la colaboración de ORBMIT Productions que ha hecho posible la celebración de este sorteo. Para optar a él, será necesario haber introducido el "nick" en el módulo hasta el día 30 de abril de 2022, fecha a partir de la cual no será admitido ningún boleto más. En ese momento, comenzarán a eliminarse boletos de forma aleatoria hasta que quede solamente uno, correspondiente al ganador.
¿A qué esperáis para participar y llevaros este fantástico premio? ¡Mucha suerte a todos!
Guardian_Misterioso
Hace unos días, RELEVO Videogames, a través de su cuenta de Twitter, ha anunciado que está trabajando en el juego British Bob VS Mr. Cracksman que unirá los universos de dos de los personajes que han protagonizado con anterioridad sendos juegos de la compañía.
British Bob fue lanzado en 2009 y su encanto se basaba principalmente en su mecánica de juego de plataformas al estilo clásico: sencillo de entender pero una curva de dificultad que se eleva conforme pasan los niveles. Además, tenía secretos que era necesario descubrir para ver el final «bueno».
Por su parte Mr. Cracksman se publicó unos años después y es un juego más sencillo que el anterior, pero no por ello menos adictivo. Acción trepidante en laberintos repletos de monedas que nuestro personaje tenía que recorrer a toda prisa. También emanaba de él un olor muy familiar, a las máquinas arcade clásicas de los años ochenta.
Ahora, sus mundos se juntan para dar comienzo a una aventura con plataformas de por medio y niveles repletos de enemigos. El juego nos permite elegir en qué nivel empezar a jugar para acabar con cada uno de los jefes finales (parece que son cuatro y uno extra). Imagino que ambos personajes contarán con sus particulares habilidades para superar los niveles y dependerá de su elección o colaboración el éxito de la misión.
Es aún muy pronto para hablar de una fecha de lanzamiento, pues RELEVO se encuentra en plena promoción y desarrollo de Bullfighter NEON para PC y consolas. Eso sí, el planteamiento inicial de Jon Cortázar es que British Bob VS Mr. Cracksman salga publicado en formato físico, ya sabéis, el favorito de todos nosotros: cartucho ROM. La edición correrá a cargo de Matra, como es costumbre en sus lanzamientos.
Para ir haciendo boca, tenemos a nuestra disposición dos capturas de pantalla y la portada del juego, cuya ilustración corre a cargo de Juan Carlos Bonache: ¡espectacular! Así que, mi consejo para hacer más llevadera la espera y las próximas noticias alrededor de este título es que probéis los dos anteriores si aún no los conocéis, porque merece la pena.
Enlace relacionado: Twitter
Iniciamos un nuevo tutorial de programación en ensamblador para ZX Spectrum. Si eres nuevo, te recomiendo que primero visites el tutorial en el que vemos como programar un clon de Pong para ZX Spectrum.
Mata marcianos en ensamblador
En este caso vamos a desarrollar un mata marcianos, Batalla espacial, siendo este el primer programa que desarrollé en ensamblador para ZX Spectrum, quitándome de esta manera la espina que tenía clavada desde pequeño. Batalla espacial no es más que una prueba de los conocimientos adquiridos siguiendo el curso Curso de Ensamblador Z80 de Compiler Software.
Ya publiqué Batalla espacial anteriormente, aunque durante el desarrollo de este tutorial han cambiado varias cosas.
En Batalla espacial los gráficos son de un carácter, se usan UDG (User-Defined Graphic) y el movimiento es carácter a carácter, por lo que las diferencias con respecto a PorompomPong son patentes.
Batalla espacial hace uso de las interrupciones, cosa que en PorompomPong no hace, también hace un mayor uso de las rutinas de la ROM y al usar UDG y RST $10 para pintar, es necesario cambiar de canal para pintar en la parte superior de la pantalla, o en la línea de comandos.
Mata marcianos en ensamblador para ZX Spectrum
Herramientas necesarias
- Editor de texto, ya sea Notepad, Notepad++, Visual Studio Code o cualquier otro con el que os sintáis cómodos.
- Compilador de ensamblador PASMO: está disponible para Windows, Linux y Mac, y es compatible con Raspberry Pi OS, que es el sistema desde el que estoy redactando el presente tutorial.
- Emulador de ZX Spectrum: aquí tenéis varios para elegir como ZEsarUX, Fuse, Retro Virtual Machine, etc., dependiendo del sistema operativo que uséis. En mi caso vuelvo a optar por ZEsarUX.
Con respecto a PASMO, recomiendo a los usuarios de Windows que incluyan la ruta del ejecutable en la variable de entorno Path. Aquí tenéis un vídeo que muestra como hacerlo en Windows 10.
Estructura del tutorial
A diferencia de PorompomPong, Batalla espacial no se desarrolló con idea de realizar un tutorial, por lo que la estructura es distinta, no voy a ir desarrollando, haciendo y deshaciendo como hice en PorompomPong, en esta ocasión ya lo tengo terminado y ahora toca escribir “Cómo se hizo”, aunque si hay cambios en el código con respecto de lo que hay publicado.
En lo primeros pasos vamos a definir la nave, la vamos a mover, luego vamos a abordar los enemigos y el disparo. Una vez realizado lo anterior, vamos a implementar la mecánica del juego, las colisiones, las puntuaciones, las vidas disponibles, etc.
En los últimos pasos vamos a implementar el menú de inicio, la selección de controles, inicio y fin de partida, marcadores, los efectos de sonido y, en general, a decorar un poco el resultado final.
Lo último será añadir una pantalla de carga, a ver que tal nos sale esta vez.
Entorno de trabajo
Esta vez no voy a trabajar bajo Windows, voy a usar el reciente regalo que me han hecho, lo que algunos llaman el Spectrum del siglo XXI, una Raspberry Pi 400.
El emulador que voy a usar es ZEsarUX, el compilador PASMO y el editor Visual Studio Code, por lo que en este aspecto no cambio nada con respecto a PorompomPong.
En esta ocasión voy a mostrar algo que no mostré en el tutorial anterior, la forma de depurar con ZEsarUX, cosa que espero que os sea de utilidad, aunque lo dejaremos para el final.
El resultado final
Batalla espacial es un sencillo juego mata marcianos, compatible con los modelos de ZX Spectrum 16K, 48K, +2 y +3, manejable con teclado, joystick Sinclair y Kempstom, y que consta de treinta niveles.
Decir que consta de treinta niveles quizá sea algo pretencioso, ya que la mecánica del juego no cambia, aunque lo que sí cambia son los enemigos, habiendo un total de treinta distintos, uno por cada nivel.
El movimiento de nuestra nave es horizontal, por lo que solo es necesario un gráfico, mientras que el movimiento de los enemigos es diagonal, siendo necesarios cuatro gráficos (arriba-derecha, arriba-izquierda, abajo-derecha, abajo-izquierda). El disparo de nuestra nave consta también de un solo gráfico, mientras que la explosión de la nave, cuando nos matan, consta de cuatro gráficos, con lo que haremos una pequeña animación cuando nos maten.
Vamos a definir otros ocho gráficos para el marco de la pantalla, y un gráfico más en blanco para borrar gráficos impresos en pantalla.
Conclusión
Poco más se puede añadir, espero que este tutorial os sirva para aprender y sobre todo que os divierta.
Gran parte de lo que vamos a ver en Batalla espacial lo expliqué en PorompomPong, motivo por el cual en ocasiones no pararé a explicar muchas instrucciones.
En la próxima entrega empezamos definiendo los gráficos y practicando la conversión hexadecimal/binario.
Enlaces de interés
Ensamblador para ZX Spectrum Batalla espacial por Juan Antonio Rubio García.
Esta obra está bajo licencia de Creative Commons Reconocimiento-NoComercial-CompartitIgual 4.0 Internacional License.
Aquí puedes ver más cosas que he desarrollado para .Net, y aquí las desarrolladas en ensamblador para Z80.
Y recuerda, si lo usas no te limites a copiarlo, intenta entenderlo y adaptarlo a tus necesidades.