BulletML for Unity

About BulletML

BulletML, for Bullet Markup Language, is an XML format designed by Kenta Cho to create bullet patterns in “Shoot’Em Up” games.

The C# parser and engine used in this plugin is open-source, maintained by Dan Manning and can be found on GitHub. We use a slightly modified version to get it running on Unity.

Writing you own BulletML file

The format is fully documented by its creator.

If you want to create your own files, we cover this topic later. For the moment, you will use the package’s patterns.

We have also bundled the original DTD in the package so you can validate your creations.

Existing patterns?

We have included some of our own custom patterns inside the package.

You can also find some well-know patterns written in BulletML on Internet. We have already bundled some of them in our package and demos.

Remember that they may not work nicely altogether: they were written for different types of games, scales and orientations. It’s still a good start to create your own.

Caution: Some patterns need to handle more than 3500 bullets on the screen. It requires some performance optimizations that are NOT covered by this plugin.


The BulletML library is designed to run at 60 frames per second. Alas, Unity set the framerate at 30 FPS by default on mobile devices.

That’s why we override the Application.targetFramerate and set it to 60 in BulletManagerScript.

You can change this property by your own value or disable the fix in our script, but beware of different speeds between mobile and desktop platforms.