DanmakuX - Danmaku middleware for Unity3D

What is Danmaku?

Acoording to Wiki: "Bullet hell" (弾幕 danmaku, literally "barrage" or "bullet curtain") is a shoot 'em up in which the entire screen is often almost completely filled with enemy bullets. ... This style of game originated in the mid-1990s, and is an offshoot of scrolling shooters.

What is DanmakuX?

DanmakuX is a danmaku middleware for Unity3D. The purpose of it is to provide a system that's easy to intergrate with games, and a editor to editor danmakus Visually and Parametrically.

Traditionally, creating danmakus is done by writing scripts. For example, 東方弾幕風 is a top-down danmaku game engine that runs user-defined stage and danmaku scripts. Its powerful, but the learning curve is steep since the users need to learn a new scripting language.

DanmakuX provides a way to create danmakus by simply clicking and adjusting some parameters. It provides a Live-Preview system, so the users can just make modifications and see the end result without even running the game. Its also easily extensible - users can create their own components and the editor will recognize them automatically.


Shooters are like particle emitters, they are the most basic components of a danmaku. A danmaku can have multiple shooters, and each shooter and can have a sub-shooter.

Shooters are responsible for shooting out the bullets, for example, a N-Way Shooter will shoot N-bullets each cycle. They are highly customizable, most of its properties can be set as a constant, a random value or a animation curve.

Users can create their own shooters by inheriting from DMKBulletShooter.

Sub-shooters are also shooters. However their parent is the bullet shooted out by their parent instead of the danmaku.

Sub-shooters can be used to create effects such as a bullet split into multiple other bullets after certain frames.

Modifiers are little nodes that modifies the bullets shooted by the shooters. Each shooter can link with a modifier and modifiers can be linked with other modifiers.

When the shooter with a modifier shoots out a bullet, the modifier will receive the event and modify it depending on the type of the modifier.

For example, the Line Modifier will make copy the bullet N times with a speed multiplier, thus create a line of bullets.

Users can create their own modifiers by inheriting from DMKShooterModifier.

Live Preview
Similar to Unity3D's particle system, DanmkuX provides a live preview system that allows the user to preview the danmaku while editing without going to play-mode.

DanmakuX will try to maintain an internal frame-rate and handle bullet movement / collision detection by listening to some Unity3D editor events.


The system is currently under development and will be available soon.