This feature helps optimize memory usage and performance. Instead of constantly creating new projectiles, this system recycles them. When a projectile reaches the end of its life—for whatever reason—it is not destroyed but placed in a pool. When a weapon needs to fire a new projectile, the Weapon Subsystem searches the pool for an instance of the same projectile class as the one requested. If the instance exists, it resets the projectile so that it matches the new parameters; otherwise, it creates a new one. This projectile will return to the pool when it is no longer needed. This process is faster than creating a new projectile from scratch, especially when multiple weapons are firing or when a weapon has a very high rate of fire.
