Projectiles are responsible for most of the damage inflicted upon the player and other characters throughout a game. A projectile is an object that moves through the air until it collides with something, at which point, it detonates. Projectiles come in many varieties, from large exhaust-spewing rockets that hone in on their targets, to small ricocheting bullets, to laser beams. Projectiles may even be harmless specks of dust or blood droplets. Small, harmless projectiles used for cosmetic purposes are called particles.
Projectiles usually come from weapons, but they may also be produced by other projectiles; for example a rocket may emit exhaust, sending exhaust projectiles flying in the direction opposite that in which the rocket is moving. When the rocket detonates, it may send a number of shrapnel projectiles hurling in random directions. It is also possible for projectiles to be present in a level when it begins. Finally, projectiles may be generated by routines.
The appearance of a projectile, the sounds it creates, and its physical properties all depend on the projectile's projectile type. Each projectile of a given projectile type has the same visual and physical properties. Depending on the complexity of a projectile type, it may include one or more animation sequences showing the projectile angled in up to sixteen directions. Projectile types also have a single detonating animation sequence. Projectile types also contain different sounds when detonating, flying, and bouncing. Projectile types include additional physical and behavioral properties such as acceleration rate, damage inflicted, weight, and rotation speed.
Because projectiles of different kinds can be generated rapidly when weapons fire and when explosions create flying debris, it is common for large numbers of projectiles to be visible at a given time. When a lot of projectiles move through the air, they create turbulence that can affect the movement of lighter, smaller projectiles. Particles may swirl around and dissipate in interesting ways, but their interaction is computationally intensive. To ensure a high frame rate, the number of particle effects can be reduced in the preferences, and realistic particle dissipation can be disabled.
Information on editing projectile types is available in the Projectile Creation section. Projectiles may be added to levels and manipulated as described in the Adding Level Objects and Level Object Manipulation sections.