In this guide, we will cover the bare fundamentals of Bullets and Spawners and will cover types of bullets from a visual standpoint. We will explore different graphical styles of Bullets as well as considerations with regards to Spawners. We will close with a discussion on Spawn Rate and Speed. Angles will be covered in Guide A2. Multiple Bullets in a Group will be covered in Guide A3.
The Bullet. They come in many forms and are an integral component of any danmaku pattern. As the most fundamental unit in a pattern, it is essential that their capabilities be well understood.
Every Bullet has coordinates in space, a movement speed, and and a movement angle. Some bullets may also have acceleration, min/max speed, and angular velocity. Depending on the graphic, we can break bullets down into four graphical categories:
Loose and Straight Lasers fall under the category of Directional Bullets, while bullets that rotate independently of their movement direction are considered Non-Directional Bullets. Curvy Lasers are considered strings of Bullets, so the individual components fit into the Directional Bullets category. Run the below example to see examples of these bullet types.
Now that we've covered types of bullets, we'll take a (very) brief look at Spawners.
As mentioned in the previous guide, a Spawner (or Emitter) is where a bullet spawns. This is generally true, though we will go into greater depth with this when we discuss radial offset spawning and line spawning.
Spawners can be static, or they can move. In general, spawners either stay in the same fixed location, travel along a predetermined mathematically-defined path (e.g. rotating around a point), and/or are attached to another object, such as an enemy or boss if there is one. We will discuss these in a later guide.
We will close this brief introductory guide with a brief discussion on spawn rate and bullet speed. We will revisit this topic in the future when we have more complex patterns, but for now, we will observe these concepts with respect to single bullets.
The spawn rate is how frequently bullets are spawned from a Spawner. For example, if the spawn rate is 10 bullets/second, then in a 60 FPS system we have a bullet every six frames, or a bullet every 100 ms. We refer to the time between bullets as the spawn interval.
The speed is how far a bullet moves in a timeframe. For example, if the speed is 60 pixels/second, then in a 60 FPS system the bullet travels at 1 pixel every frame.
While the link between these two aspects of bullet spawning may not seem obvious at first glance, from an aesthetic perspective and from a gameplay perspective, there is a key link - density.
If the spawn rate is high and speeds are slow, bullets will be bunched closely together. If the spawn rate is low and speeds are high, bullets will be far apart. The implications of this mean that a careful balance must be maintained to have the appropriate number of bullets on the screen at any given time.
Try out the following interactive example below. Please note that it runs at 50 FPS, so a rate of 5 will result in 10 bullets/second. The last two rows are user controlled - after changing a value, click outside of the box for the changes to take effect. Please note that interval values must be integers, as internally, Danmakanvas computes a modulus.
Row 5 Speed; Interval:
Row 6 Speed; Interval:
Four-type bullet graphic classification originally created by Virtlux