[Behavior] Danmaku Suite: El motor definitivo de Bullet Hell para Construct 2 (Spawner, Homing, Wave & Explode)
¡Hola a todos! Soy Necronomicrón, y hoy quiero compartir un proyecto que he estado desarrollando y perfeccionando con mucho sudor, café y líneas de código.
Si alguna vez has intentado crear un verdadero juego Danmaku (Bullet Hell) en Construct 2, sabes la pesadilla que puede llegar a ser. La pantalla se llena de cientos o miles de balas, y los comportamientos (behaviors) estándar empiezan a asfixiarse. Intentas usar múltiples spawners, pero surgen los problemas de "picking" (selección): las acciones aplicadas a un spawner afectan a las balas de otro, la lógica se cruza, y de repente, lo que debería ser un patrón geométrico hermoso e hipnótico se convierte en un caos que destroza el rendimiento.
Me apasiona el género Danmaku. Desde el clásico Touhou Project hasta DoDonPachi, la belleza de estos juegos radica en sus intrincados patrones de balas y mecánicas precisas. Quería llevar esa misma sensación a Construct 2, pero haciéndolo rápido, optimizado y extremadamente fácil de usar.
Después de pelear contra la lógica de selección nativa, la gestión de memoria y las caídas de FPS al apilar demasiados comportamientos estándar, decidí construir una solución personalizada desde cero.
Les presento la Danmaku Suite, un conjunto de comportamientos personalizados diseñados específicamente para manejar la generación masiva de balas y movimientos complejos sin pestañear.
¿Qué es la Danmaku Suite?
Es una colección de comportamientos diseñados para trabajar en equipo. La filosofía central es Independencia y Rendimiento. Cada spawner sabe exactamente qué balas acaba de crear, y pasa esa información a los comportamientos de movimiento a través de un robusto sistema de "Candado de Selección" (aislamiento nativo del SOL).
Al reemplazar múltiples comportamientos nativos (como Bullet, Sine y Turret) por estos especializados, el motor se ahorra una cantidad brutal de ciclos de CPU.
Los Componentes:
1. Danmaku Spawner
El corazón del sistema. Esto no es solo un disparador; es un generador de patrones.
La Magia: Maneja nativamente la lista de objetos seleccionados (SOL) de C2. Cuando dispara, solo selecciona las balas recién creadas, entregándoselas de forma segura a la siguiente acción en tu evento.
Características: Ángulos de dispersión, cantidad de balas, desfase inicial y un "Efecto Espejo" integrado para duplicar patrones simétricamente sin usar eventos extra.
Control Dinámico: Puedes disparar usando las propiedades estáticas del panel o configurar patrones complejos al vuelo mediante acciones, respetando a la perfección los Image Points de tu nave.
2. Danmaku Bullet
El reemplazo definitivo para el comportamiento Bullet nativo. Un motor de movimiento todo-en-uno.
La Magia: Duerme hasta que una acción lo despierta. Usa un "Candado de Configuración", lo que significa que una vez que su Spawner le da órdenes, ningún otro spawner en el layout podrá alterar sus parámetros.
Características en UN SOLO comportamiento:
Velocidad Inicial, Velocidad Máxima, Aceleración y Desaceleración (basadas en Tiempo o Distancia).
Pausas Cíclicas: Balas que se detienen en el aire, esperan unos segundos y continúan (perfecto para crear muros o laberintos).
Búsqueda Avanzada (Homing): Fija un objetivo, un radio de búsqueda y velocidad de giro. Solo persigue si el objetivo entra en su rango (¡ideal para minas espaciales!).
Giro Base: Para crear rotaciones continuas o espirales.
Rebote en Pantalla: Rebote nativo contra los límites del layout.
Retroceso/Giros Bruscos: Ej. Balas que giran 180 grados instantáneamente cada 2 segundos.
3. Danmaku Explode
Para balas que actúan como semillas o granadas de fragmentación.
La Magia: Activación independiente. Espera silenciosamente a cumplir una distancia o un tiempo de vida específico, y luego "explota" generando un nuevo patrón de balas hijas.
Características: Hereda el mismo sistema robusto de candado. Solo defines el modo de detonación, el objeto hijo, la cantidad y la dispersión.
4. Danmaku Wave (Próximamente / Extra)
Un modificador que añade un desplazamiento de onda senoidal a la trayectoria de la bala sin alterar ni destruir su vector de avance original.
¿Por qué usar esto en lugar de los behaviors de Scirra?
Cero "Contaminación Cruzada": Puedes tener 10 spawners disparando 10 patrones totalmente distintos usando el mismo sprite de bala, y nunca se robarán las velocidades o ángulos entre ellos.
Ahorro Masivo de Recursos: En lugar de tener "Bullet + Sine + Eventos personalizados de Homing" ejecutándose en 500 sprites a la vez, tienes un solo bucle de Javascript altamente optimizado haciendo el trabajo sucio.
Facilidad de Uso: Todo está diseñado para encadenarse limpiamente en tus eventos:
Acción: DanmakuSpawner -> Disparar Patrón Dinámico
Acción: DanmakuBullet (justo debajo) -> Configurar Movimiento
Y listo. El patrón queda sellado y aislado.
Descarga
Estoy compartiendo estos archivos .ZIP con la comunidad porque creo que Construct 2 sigue siendo un motor legendario para juegos 2D, y necesitamos herramientas potentes para crear verdaderas experiencias arcade sin volvernos locos con la lógica de eventos.
https://www.mediafire.com/file/5rq6y4dtxzzs2yg/NECRONOMICRON_behaviors.zip/file
Espero que esto les ayude a construir el bullet hell de sus sueños. ¡Prueben los plugins y no duden en compartir capturas o GIFs de las locuras que logren crear!
¡Feliz programación!
- Necronomicrón
Editado:
Se agrego un demo con algunas cositas que se pueden hacer, solo presiones el 1, 2 o 3 y cambia el tipo de disparo, por tiempo no hice algo mas elaborado :D
DEMO: https://danmakudemo.netlify.app/
ARCHIVO: https://www.mediafire.com/file/a2fqv0bcah779e5/DANMAKU_DEMO.capx/file