The design approach to an intelligent fire system was that an object would hold essential thermodynamic attributes. When dragged and dropped into a level, that object is ready to interact with fire. Depending on the object's preset parameters, fire will spread and react with the object accordingly. The preset parameters enable the initialization of the object, which is basically a mesh that will interact with heat and fire. The details the construction of this actor’s preset parameters.

The actor class’s constructor allows predefining of certain parameters required for calculating propagation and degradation. They are split into editable and non-editable parameters. Editable parameters allow the designer to set custom values for more detailing. They remain static values at run-time, and the engine will not override the values. Non-editable values are predefined and can only be modified by the system at run-time.

Fire System Design

Essential Editable Presets are required for the initial setting up of an object that will interact with fire. It is important to set the values in this preset section correctly as it will ensure proper appearance of the object in the level. The essential attributes of this actor class were determined to be the following:

  1. Scene Mesh – The 3D model which is assigned to the actor script. The number of vertices of the model are determined at asset creation in a 3D modeling software like Maya/3DS Max. The Victory Plug-in automatically calculates the number of vertices on the assigned mesh. The number of vertices is non-editable and is derived automatically upon mesh assignment.

  2. Mesh Material Type – The type of surface that is going to interact with fire in the level. They are fire-retardant fabric, combustible fabric, wood, metal, plastic, paper, hard-paper, rubber, concrete and ceramic or marble.

  3. Mesh Material – The visual appearance of the mesh. The material carries the textures and surface appearances of the mesh. The textures include both the pre-burnt and burnt states and in some meshes, the mid-burnt states. An instance of a Master Material Class is created by the constructor and assigned to the mesh. A more elaborate explanation of the Master Material Class will be provided in subsequent sections. The Master material class drives the degradation of a mesh’s surface.

Advanced Editable Presets

The advanced editable presets provide designers greater control over the how fire would spread across an object and how the effects of fire damage will appear across the object’s surface. The following highlights the advanced editable presets:


  1. Deformation (min/max) – As the object burns, how much should its shape deform? This value is supplied to the displacement map of the mesh. The higher the value, the more the mesh deforms.

  2. Heat (min/max) –It affects the heat distortion seen on hot surfaces.

  3. Emmisiveness (min/max) - This value determines how much an object glows as it is burning. Higher values result in a brighter glow.

  4. Ignitable distance – If an object is combustible, what is the minimum distance between a burning vertex of mesh A and an unburnt vertex of mesh B before Mesh B catches fire?

  5. Ray-trace box size – Each actor/mesh in the scene has an invisible ray-trace box which is checked to see if there is another mesh’s ray trace box overlapping. If there is an overlap, both meshes are checked to see if there are any burning vertices and unburnt vertices within ignitable distance.

Advanced Presets (Not Editable)

Non-editable advanced presets are parameters whose values are set at compile time. These values are derivation from several trial-error runs. If there are any changes required, they have to be manually changed within the blueprint editor.

  • Mesh Fuel Amount – This is the overall fuel for a given mesh of particular surface type. Each surface type is given a different fuel amount. Higher fuel amount means the mesh will burn longer. Based on this fuel amount, a minimum (80%) and maximum (120%) value is derived and allocated to each vertex. At each event tick, the fuel amount for each vertex is reduced at a preset random value range. As each vertex catches fire, they burn and die out at different durations.

  • Sphere Increment & Ignition Delay – In order to simulate auto-ignition of a mesh/vertex, an invisible sphere is spawned at the source of a fire. The source of fire is determined by the player when he/she clicks a surface. The point of click attaches itself to the nearest vertex and spawns the first fire particle at the vertex location.

  • At every event tick, the sphere grows at a predefined value range depending on the type of surface. As the sphere grows, it begins to envelop vertices. Every vertex that falls within the radius of the sphere begins to raise its room temperature. As this room temperature reaches the auto-ignition temperature, a particle emitter is spawned. The rate at which the sphere increments is determined by the ignition delay. Although not physically accurate, this method circumvents the need for complex thermodynamic calculations seen in real-world fire simulation systems.

  • Combustibility – A Boolean value that checks which objects are combustible and which are not. Metals, ceramics and concrete are examples of non-combustible surfaces while plastics, wood, and fabric are examples of combustible surfaces.

  • Flame Template – Each surface type is assigned a particular fire particle system to ensure visual variations. For example, burning plastic objects will depict the characteristics of fire on plastics while the template would be different for wood, paper or fabric.

Procedural Controls for Fire Propagation & Degradation

Essential Editable Presets