Descripción General & Rol
Ninja VS Zombies es un prototipo jugable de acción y supervivencia tipo Roguelite en tercera persona / vista isométrica diseñado específicamente para smartphones Android. El jugador controla a un ágil guerrero ninja equipado con katanas y proyectiles, enfrentando hordas crecientes de criaturas no-muertas en arenas cerradas, subiendo de nivel y desbloqueando mejoras estratégicas aleatorias tras cada oleada.
Mi Rol: Solo Developer (Arquitectura de software en C#, programación de mecánicas de combate y movimiento, diseño de UI/UX para pantallas táctiles, optimización de memoria en Unity URP y balance de oleadas).
Implementaciones Técnicas Clave
-
Zero-Allocation Object Pooling (Optimización Móvil):
Desarrollo de un sistema genérico de
ObjectPoolbasado enQueue<GameObject>con soporte para pre-warming y ciclo de vidaIPoolable. Permite instanciar y reciclar enemigos, proyectiles de shuriken, números de daño flotantes (DamageNumberUI) y efectos de partículas (VFX) con costeO(1), eliminando por completo los picos de recolección de basura (Garbage Collection Spikes) durante las oleadas densas para sostener 60 FPS estables. -
Sistema Roguelite Basado en ScriptableObjects:
Arquitectura modular y extensible para el sistema de mejoras de nivel mediante
UpgradeDataSOyUpgradeManager. Tras acumular orbes de experiencia, el juego genera dinámicamente un panel con opciones aleatorias (aumento de daño de katana, vida máxima, velocidad de ataque y duración de invencibilidad), permitiendo balancear y añadir nuevas habilidades sin necesidad de refactorizar código. -
Controles Táctiles Nativos y Mecánica de Dash con i-Frames:
Implementación de un joystick virtual responsivo (
VirtualJoystick) y botón de ataque dedicado optimizados para dedos en pantallas táctiles de cualquier resolución. Incorpora una mecánica de esquive/rodar (Roll/Dash) con cálculo de marcos de invencibilidad (i-Frames configurables) y coste de resistencia/estamina para un combate fluido y exigente. -
Gestor de Oleadas y Máquina de Estados:
WaveManageryGameManagerestructurados mediante máquinas de estados finitos (FSM) desacopladas. Controlan el ritmo de aparición de enemigos por oleada, el escalado dinámico de vida y velocidad de las hordas, y los estados de victoria/derrota.