A Real-Time Programmable Particle System Engine
Andrea Pessino
A huge array of special effects, from snow to explosions to
pure eye candy, is modeled procedurally in today's games using particle
systems. The idea is to define a set of rules for how particles are
emitted, how they evolve, etc. and then let the system run on its own,
as opposed to having an artist model each particle individually. The
problem is that procedurally evolving systems can consume large amounts
of CPU power, so particle systems tend to be coded as efficiently as
possible. This greatly reduces the flexibility of the system, meaning
that only a small number of fairly primitive parameters are available to
the animator. When more sophisticated behaviors are desired generally a
programmer will code the system ad hoc. In many games developing custom
particle systems becomes a serious bottleneck. We have designed and
developed an interesting particle system technology which is designed to
be flexible enough to allow an amazing amount of customization without
the need of any coding at all, while still being efficient enough to be
used in production material. Additionally, we have created a tool which
allows comprehensive, real-time, hands on authoring of procedural
systems, enabling even moderately technical artists to create particle
system "presets" which can then be attached to game entities or events
and triggered as needed.