Fire FX breakdown

Hello VFX enthusiasts. Here's a fire effect I did in Unity for a prototype that never shipped. And a breakdown!

the VFX used in a gameplay test scene

It was for a RTS game where you control a firefighter crew. I created 5 lvls of fire, from just emerging to really hard to stop 🔥

The FX is made of 5 components:

  1. ground mesh decal
  2. fire mesh (different for each fire lvl) with a custom shader
  3. ember particles
  4. smoke particles
  5. light

I tried to keep the particle count low, ~180 total for fire LVL 5.

editor view of each component, with wireframe and particle count

You know me, I like frank shapes & colors, and overall stylized effects. So let's go for a custom shader!

playing with the shader variables

The shader uses only 3 greyscale textures. They are combined and posterized with a time offset. That's it. It's a simple effect, but the first texture is where the magic comes from. It pays to create cool textures!

shader graph

I used a few other textures for the particles: a handpaint ball of smoke (also used for alpha cutout) and a simple triangle for the amber particle.

Together with emissive & bloom, I think it creates a nice stylized effect ✨

flame towers surrounding a daring fireman

Conclusion

I had a good time designing and implementing the fire effect. The gameplay constraints were tricky but motivating: how to express multiple fire power levels, how to not interfere with the top-down camera, and obviously how to create a unique effect.

As an art director & vizdev artist, I think it was a good call to tackle the fire FX first. For a game centered around the mechanic of fighting fire, It's nearly the main character! And a good chunk of the screen surface.

Bonus

While not the subject of this post, I can't resist to show you the fakescreen and character design I did for this project. You know the importance of designing a fake screen during pre-production, right? :D

fakescreen to set the mood and style
concept for a crew member: standard view for modeling + game view to keep gameplay in mind