When to Use Particle Effects
Applying particle effects to your game can be considered analogous to a chef seasoning his dish. It is intended as a final tweak to the presentation of your game, adding a final layer of polish and style. Below are some good examples of situations where the
use of particle effects is appropriate:
- Explosions - Whether simple puffs of smoke or huge billowing mushroom clowds, explosions are perhaps the most common use of particle effects.
- Weather Effects - Particle effects are commonly used to display weather effects such as rain, snow or swirling clouds.
- Sparks & Flames - Particle effects can efficiently and accurately render flames and sparks in a convincing manner.
- Muzzle Flash - A very simple particle effect can be used to add muzzle flash to a projectile weapon.
- Water Effects - Steam, mist, or gushing waterfalls can be displayed.
- Magic Spells - Swirling balls of light and energy, or streams of deadly 'mind bullets', particle effects are a great choice when it comes to the world of magic in games.
When NOT to Use Particle Effects
A particle effect should never become an integral part of the simulation and logic of your game, it should not interfere with or otherwise disturb your existing game entities. Your game should reach its logical conclusion irregardless of whether or not particle
effects have been implemented. To that end it would be unwise to use particle effects in the following situations:
- Projectiles - Although particle effects may be an attractive option when it comes to updating and rendering large number of projectiles or bullets, it is seldom wise to do so.
Pros and Cons for choosing Mercury for your particle effects
When it comes to choosing a particle engine for your game, several factors need to be considered. Generally particle engines fall into two catagories, CPU based and GPU based, both of which have their own advantanges and disadvantages. Mercury is a CPU based
particle engine, meaning that the particle simulation is carried out on the CPU. The advantages of this are added flexibility and extensibility in the make-up of particle effects that would not be possible in a GPU based engine. However a well written GPU
based engine will usually perform faster. It is important to understand the performance characteristics of your game before choosing a particle engine. If your game is CPU bound (maxing out or coming close to maxing out available CPU power at a consistent
frame rate), then choosing a GPU based engine would be the better option. If however your game is not exhausting available CPU cycles, the added flexibility and extensibility of a CPU based engine should make it an attractive option.
Two of the most important criteria when choosing a particle engine are API simplicity, and scalability. API simplicity is of utmost importance because particle effects are often implemented in the final stages of a project. When a deadline is looming, you simply
don't have time to learn and use a new, complex API. Mercury has been designed in such a way that the API is extremely easy to get to grips with, and will not become entangled with the rest of your code base. It is designed to be integrated at the 11th
hour of your project as painlessly as possible, and to achieve maximum results in a limited timespan.
Mercury has also been designed with scalability in mind. This is especially important if you are targetting the PC platform, where your end users may have any number of hardware configurations with varying degrees of power. In those situations Mercury is able
to scale the fidelity and complexity of its particle effects, allowing your game to maintain a consistent frame rate.