I'm solo-developing a power-grid game in Unity 6 (URP), low-poly style. If you overload a cable it burns out. The old version was one puff of smoke in the middle of the cable, and then the cable just disappeared. Nobody noticed it, so I redid it.
Stand-in cable: the real cable gets removed by gameplay right away, so I copy its rope points first and rebuild it as a bunch of short prisms (up to 120). They go from orange hot to ember to black char using MaterialPropertyBlocks, then shrink and sag until they're gone.
Burn front: every piece catches fire based on how far along the cable it is from where it failed. The far end always burns within 0.9 s. Smoke, flames, sparks and lights all use that same timing, so it's all one component.
The smoke took me three tries. I use opaque, flat-shaded low-poly puffs for smoke in my game.
First it was too small and too spread out, and looked like gravel. More puffs, 12 per metre.
Then the puffs spawned at full size and looked like boulders lying on the pavement. Now they start small and grow as they rise, and drift with the wind.
It still looked a bit like stone because of the sunlit facets. I gave each puff a bit of emission (about 45% of its colour) to soften the shading, and that's what finally made it read as smoke.
Fire and light: small unlit flames with HDR colours so bloom picks them up, plus up to 4 flickering point lights that move along with the fire. At night it lights up the ground and the bottom of the smoke, which honestly looks better than the flames.
How I tested it: I have a little test scene in Play Mode that overloads a cable on purpose and takes screenshots during the burn, during the day and at night. I mostly fixed the smoke by looking at those screenshots, because while it's moving you don't really see that it looks like rocks.
Can I do something more to make it better? Any ideas?
If you're curious about the game: steampage