As mentioned in my Thrust Ship Flight Dynamics post, the fun in Retrobooster hinges on flying around and blowing stuff up. So it was clear from the start that the particle effects needed to be as beautiful and interesting as I could make them. In particular, I wanted bright, loud, organic, swirling explosions with unique visual character. Of course, the game would also need good particle effects for smoke trails, sparklies, and splattery stuff. The following video demonstrates the current state of these particle effects.
A 2D game affords a large budget for particles because, presumably, there is less visible geometry than in a 3D game. But instead of trying to spew out a ludicrous number of particles, I wanted really nice looking ones. So I aimed for a variety of particle types with lighting, rotation, stretch, quality textures, and glow. At the start I even tried making them look more voluminous with depth maps, but the particles covered so little screen area the effect was lost.
Retrobooster currently has several types of particles: Fireball, Fire, Goo, Plasma, Smoke, Spark, and Twinkle. (I might like to add some others later, such as Dust and Glowing Goo.) These types are all created from a variety of textures and varying amounts of four shader characteristics. Each particle type also has different behavior and movement.
The shader characteristics help to differentiate particles in ways that textures cannot. For example, Fire uses a lighting value of 0.0 while Smoke has a lighting value of 1.0. This is because fire creates all its own light and smoke can be illuminated by nearby light sources. (Every particle is normal-mapped for a detailed lighting effect.) Different Goo particles all have lighting values of 1.0 but might have different alpha values so that some can appear transparent like water while others are opaque like ink.
To provide more realistic movement there are forces that can affect the particles. Explosions sometimes cause swirling as the hot particles rise up or shock waves that ripple out through the particles. Your ship can also cause particles to swirl as it passes through a smoke trail or slams into a force field. The shock waves are used in lieu of camera shake, which I believe is overused in many modern games. I am especially wary of camera shake in Retrobooster where you need to maintain tight control of your ship; it would be too much of a distraction if you couldn’t see your ship clearly. To let gamers “feel” the explosions as much as possible, I combine these fancy particle movements with bright flashes and violent sound effects.
The particle effects came very early in the development of Retrobooster since I expected them to be an important part of the fun. Work on particles is on hold at the moment while other parts of the game get some attention. But the particle code and artwork will be visited some more to try to improve visual quality. Performance is currently fair, but I would still like for it to be a lot better. And sometimes your ship and enemy weapons fire gets lost amid all the visual clutter, so I may have to tone down some of the fire trails or make other adjustments. There’s plenty of work remaining.