- Visión General del Juego
- Mecánicas de Juego
- Programación
- Diseño de Niveles
- Sistema de Puntuación
- Interfaz de Usuario
- Arte y Estilo Visual
- Audio
- Características Técnicas
- Planificación del Desarrollo: Fases del Desarrollo
- Project Arkanoid
"Project Arkanoid" es un juego arcade clásico inspirado en el icónico "Arkanoid". El jugador controla una raqueta que debe golpear una bola para destruir bloques en la pantalla. A medida que avanzan los niveles, se introducen nuevos desafíos, power-ups y obstáculos que aumentan la dificultad y diversión.
- Género Principal: Arcade
- Subgénero: Rompebloques (Breakout)
- Plataformas: PC (Windows, macOS)
- Dispositivos: Teclado y ratón (PC)
- La raqueta se mueve horizontalmente en la parte inferior de la pantalla.
- Controlada por el jugador mediante las flechas izquierda/derecha.
- Velocidad ajustable según power-ups.
- La bola rebota en las paredes, el paddle y los bloques.
- Rebota en ángulos según el punto de impacto en el paddle.
- Reinicio si la bola cae fuera de la pantalla.
- La velocidad de la bola aumenta gradualmente con el tiempo.
- La bola utiliza un sistema de pooling (
ObjectPoolManager) para optimizar su creación y reutilización. - La velocidad inicial de la bola está configurada en
100.0fy aumenta un10%cada5 segundos.
- Normales: Se destruyen con un golpe
- Bloques Azules: +3 puntos
- Bloques Verdes: +4 puntos
- Bloques Rojos: -1 punto
- Bloques Rosas: +5 puntos y liberan power-ups al ser destruidos.
- Explosivos: Causan una explosión que afecta a bloques cercanos.
- Indestructibles: Obstáculos fijos en el nivel.
- Los bloques utilizan un sistema de pooling similar al de la bola.
- Los bloques tienen diferentes comportamientos según su tipo (
BlockColor).
- Big Racket: Aumenta temporalmente el tamaño de la raqueta.
- Multi Ball: Genera bolas adicionales.
- Slow Ball: Reduce la velocidad de la bola durante 10 segundos.
- Extra Life: Otorga una vida adicional.
- Fast Racket: Aumenta temporalmente la velocidad de la raqueta.
- Slow Racket: Reduce temporalmente la velocidad de la raqueta.
- Los power-ups están representados por el enum
BonusType. - Se generan aleatoriamente cuando se destruyen bloques especiales.
- Victoria: Destruir todos los bloques azules en un nivel.
- Derrota: Perder todas las vidas antes de completar el nivel.
- GameManager: Gestiona el estado global del juego (puntuación, vidas, niveles).
- Ball: Controla el comportamiento de la bola (movimiento, colisiones).
- Block: Define los tipos de bloques y sus interacciones.
- Racket: Maneja el movimiento y los efectos de la raqueta.
- Bonus: Implementa los power-ups y sus efectos.
- UIManager: Controla la interfaz gráfica (HUD, menús).
- MusicManager: Gestiona la música y los efectos de sonido.
- ObjectPoolManager: Implementa un sistema de pooling para objetos como bolas y power-ups.
- Singletons: GameManager, UIManager y MusicManager son singletons para persistir entre escenas.
- Pooling: Uso de un sistema de pooling para objetos como bolas y power-ups.
- Corrutinas: Para manejar eventos temporales como power-ups y explosiones.
- Cada nivel tiene una disposición única de bloques.
- La disposición de bloques y obstaculos aumenta gradualmente su dificultad por nivel.
- Aumento de la velocidad de la bola.
- Patrones simétricos, asimétricos y laberínticos.
- Obstáculos indestructibles que bloquean el camino de la bola.
- Destruir bloques: otorga puntos según su tipo.
- Azules: +3 puntos
- Verdes: +4 puntos
- Rojos: -1 punto
- Rosas: +5 puntos
- Recoger power-ups: +30 puntos por cada power-up recogido.
- Se guarda la puntuación máxima en PlayerPrefs para mostrarla en el menú principal.
- Puntuación Máxima: Mostrada en la esquina superior derecha.
- Puntuación Actual: Mostrada en la esquina superior derecha.
- Vidas Restantes: Representadas por iconos de corazones en la esquina superior izquierda.
- Nivel Actual: Mostrado en la esquina inferior derecha.
- Menú Principal: Opciones para jugar, salir y ver la puntuación máxima.
- Pantalla de Game Over: Muestra la puntuación final y un botón para reiniciar.
- Estilo: Pixel art retro con colores vibrantes.
- Inspiración: Juegos clásicos de arcade de los años 80 y 90
- Colores vibrantes para los bloques y power-ups.
- Fondo oscuro para destacar los elementos del juego.
- Raqueta: Rectángulo simple con detalles metálicos.
- Bola: Esfera brillante con efectos de luz.
- Bloques: Variaciones de color según el tipo de bloque.
- Power-ups: Iconos pequeños y coloridos.
- Explosiones de partículas.
- Start Game: Sonido al presionar el boton de inicio.
- Golpe de bola: Sonido al golpear el paddle o los bloques.
- Bloques indestructibles: Sonido al golpear una roca.
- Power-Up: Sonido al recoger un power-up.
- Explosión: Sonido al destruir un bloque explosivo.
- Vidas: Sonido al ganar o perder una vida.
- Game Over: Sonido al perder todas las vidas.
- Temas principal de Arkanoid en menú principal.
- Unity con lenguaje C#.
- Compatible con dispositivos de gama media/baja.
- Optimización para pantallas windowed.
- Diseño de mecánicas básicas.
- Creación de prototipos.
- Definición de arte y estilo visual.
- Implementación de mecánicas básicas (paddle, bola, bloques).
- Creación de niveles iniciales.
- Implementación de la interfaz de usuario básica.
- Implementación de power-ups.
- Creación de niveles adicionales.
- Integración de sonidos y música.
- Mejoras visuales y de audio.
- Optimización del rendimiento.
- Pruebas de jugabilidad.
- Corrección de errores y optimización.
- Publicación en plataformas objetivo.