Arkanoid




Arkanoid es un videojuego de arcade desarrollado por Taito en 1986. Está basado en los Breakout de Atari de los años 70

A causa de la popularidad del juego, cuatro versiones se desarrollaron para el mercado de las máquinas arcade: Arkanoid, Tournament Arkanoid y Revenge of Doh (Arkanoid II), ambas en 1987, y Arkanoid Returns en 1997.

La mayoría de computadores de 8 bits (ZX Spectrum, Amstrad CPC 464, Commodore 64, MSX, Atari 8-bit, Apple II…) eran muy populares en Europa en los 80. Un puerto de consola en la NES también era popular, así que el juego fue portado para computadoras de 16 bits como Commodore Amiga, Atari ST, Apple IIGS o IBM-PC. También se desarrolló una conversión para TRS-80 Color Computer en 1989.

Una versión para SNES, llamada Arkanoid: Doh it Again, se lanzó en 1997. Arkanoid Returns y su secuela, Arkanoid Returns 2000, se lanzaron en Japón para PlayStation. Las versiones de 16 bits tenían exactamente los mismos gráficos que el juego original. La conversión de Arkanoid para Commodore 64 es conocida por ser el primer juego para dicho sistema que incluía música que usaba samples digitalizados (compuestos por Martin Galway).

Los controles usados difieren entre las máquinas, y algunas conversiones permitían múltiples métodos de control. Los dos métodos básicos de control eran digital y analógico. Los controles digitales (muchos joysticks y teclados) son considerados menos convenientes que los analógicos (como ratones y trackballs): mientras que los digitales limitan al jugador a una única velocidad, los analógicos permiten mover la Vaus casi a cualquier velocidad deseada a través del a pantalla.

La versión de Arkanoid para NES era inicialmente empaquetada con el que se considera uno de los mandos menos comunes de dicha consola: el Vaus Controller, un pequeño mando con un único botón, una pequeña rueda (con ángulo de giro limitado), un puerto y el logo de Taito. Aunque podía jugarse con el mando digital estándar de NES, el juego óptimo se conseguía con el Vaus Controller.

Arkanoid continúa siendo un juego muy popular, y es clonado frecuentemente para títulos de freeware y shareware. La mayoría de empresas también lo han clonado habitualmente para sus máquinas. Sin embargo, Arkanoid o sus secuelas no aparecen en ninguna de las recientes recopilaciones Taito Memories o Taito Legends, posiblemente debido a acciones legales de Atari.


Imagen del Juego Arkanoid de los años 80's

4fbOxCE.png

Video de la simulación ARKANOID

Se ve el resultado del juego en la pantalla VGA


Objetivos:

Implementar un videojuego a partir del leguaje Verilog y usarlo en una FPGA Nexsys 2 o Basys 2

Objetivos específicos:
  • Diseñar un video juego en el lenguaje Verilog.
  • Usar la mayor cantidad de módulos posibles para la simplicidad del juego.
  • Proyectar el juego en una pantalla de 640*480 usando el puerto Vga de la FPGA
Descripción:

Por medio del programa ISE Xilinx Web pack se desea diseñar una plataforma que permita Emular un video juego de plataforma arcade “Arkanoid” , Como es de esperar tendrá que tener un movimiento en tiempo real y los objetivos del juego seran golpear todas cajas disponibles, dichas cajas no tendrán color dado que puede salirse del lenguaje Verilog.
La barra tendrá que ser movida ya sea con los botones de la misma FPGA o con un “control acoplado a ella”

Limitaciones:
  1. EL videojuego tendrá que tener una resolución máxima de 640*480 pixeles
  2. El juego debe ser hecho específicamente para la Nexsys 2
  3. La limitación principal es utilizar únicamente el leguaje verilog para el desarrollo del proyecto.
  4. El proyecto no consta de sonido.
Para el desarrollo de este Juego se crearon diferentes proyectos anidados para mantener un orden:
  • barra_controlador.prj
  • barra_de_despazamiento.prj
  • barra.prj
  • Barra1_inferior.prj
  • bloques1.prj
  • Imagen.prj
  • position.prj
  • top_vga.prj

Con estos archivos .prj el controlador hace un llamado de estos para compilar el código y generar el juego.


Maquina de estados:

Maquina.png

Pasos para la creación del juego ARKANOID:

Primero iniciamos con el análisis del juego, saber en que consistía la temática del mismo, viendo los movimientos de la bola cada vez que rebotaba en las paredes, en la barra que se desplaza para evitar perder y en las diferentes cajas que irán siendo eliminadas.

Luego empezamos a descomponer el juego en bloques sabiendo que cada acción tenia su reacción. Observamos los siguientes bloques que posteriormente irían a ser programados:

  • Tablero

Creación de los bordes del tablero
Darle color a cada borde para que sean visibles los limites del tablero.

  • Barra de desplazamiento

Movimiento izquierda
Movimiento derecha
Limite movimiento izquierdo
Limite movimiento derecho
Posición de la barra en el eje X y en el eje Y.

  • Bola

Movimiento en diagonal ascendente
Movimiento en diagonal descendente
Choque con los limites de la pantalla (Bordes)
Choque con la barra de desplazamiento
Choque con las cajas que irán desapareciendo

  • Cajas que desaparecen

Posición de las cajas en el eje X y en el eje Y
Eliminación de la caja cuando hace contacto con la esfera
Eliminación de las variables de limites para que la esfera pueda seguir su curso una vez se haya eliminado la caja

Después de descomponer el juego en bloques se hace la integración por medio de la programación en Verilog de todos los módulos y limitantes, haciendo que la unión entre ellos genere un solo programa.
Ya con la programación se pasa a hacer una revisión de sintaxis del código y su respectiva simulación.
Ya en la pantalla se visualiza el juego, como mandos de control se utilizan los Push Button Switches de la tarjeta FPGA.

Y el resultado del juego es el siguiente:

Codigo Verilog (ARKANOID):

Para ver el codigo hacer click en lo siguientes links:

++ GRACIAS

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License