This is the module responsible for the simulation of particle effects in CryEngine. It provides facilities to create, manipulate and render particles of different kinds.
This is the engine's manager of objects. Games usually start interacting with particles through this object.
An individual asset usually created by an artist that represents a placeable object. Examples could include fireworks, lightning, magic spells and many more.
Effects are composed of multiple components. Each component represents a particular aspect of the effect. For example, a firework effect might be composed out of rockets, glitter, flash bangs, colorful willows, etc.
Features implement a particular behavior in a component. Each component contains a stack of features. Is this stack that makes each component function differently from each other.
Some features behaviors can be further manipulated over each particle life time or other aspect. Combining diferent features, modifiers and effectors together can create stunningly complex behaviors.
One of the keypoints of CryEngine's particle system is SecondGen feature. This allows to connect multiple components together as parent-children relationships. What this means is that existing particles can act as parents and spawn children particles.
Attributes allows to manipulate a particle effect using external factors usually from FlowGraph or TrackView but also from game code. Attributes serve as a layer of communication between the effect and the game and allows artist full visual control over how an effect should behave in different conditions.
When Particle Effects get spawned into a level either as an entity or by game code or other means, They are spawned as Particle Emitters. this object contains the full working logic of a Particle Effect.
Furthermore, a Runtime contains the full running logic of a Component and is the one that actually does the simulation and rendering of particles.