Colony on Fire
Welcome to a special Friday game dev community update, Pioneers. This week, as a wise man named Nelly once said, it's getting hot in here. Yes, we finally can show you a sneak peak of our fire propagation system which can turn your colony/factory compound into a blazing inferno within minutes!
But before we rain fire and brimstone on you with bad fire idioms and puns, we are all fired up (see - we just can't help ourselves) that we have cracked the top 700 of most wishlisted games on Steam! Good job - you can keep spreading the word by clicking on our, well, brand new linktree and follow the social media channel of your choice!

[h3]The Roof is on Fire[/h3]
As you are probably aware by now realistic voxel destruction is a main feature of Dawn Apart. The great thing about voxels is their usefulness knows no bounds, and in this case we use the same physical material data to control how objects burn (on the CPU side) and how the flames are rendered (on the GPU side). Whenever an object takes some type of fire damage we set flammable voxels within the hit area ablaze. Once on fire the voxels will burn out over time and attempt to propagate to surrounding voxels taking into account their material. That also includes objects in the near vicinity, so try your best not to stand too close to a roaring inferno. But see for yourself:
[previewyoutube][/previewyoutube]
Once on fire we do two different things to show off that hot stuff. The first is to update a dynamic voxel material attribute which gives off a red glow based on its heat value. The second is to send a buffer of data (world position and heat) for the burning voxels to the GPU to spawn off flame particles.
The color, speed and height of the flame particles will change depending on the heat which is a product of the flammability (what material comes into contact with fire) and the actual degree of heat (how many voxels are also on fire nearby; the flame grows 10% higher with every ignited voxel in close proximity). Instead of going up in a straight line our goal was to create erratic, turbulent flames with lots of embers and sparks - the higher they get the faster their upward momentum.

[h3]Where there is fire there is smoke[/h3]
Over the course of their life the flames become smoke which loses velocity, but can be influenced much more by the turbulent forces along with our upcoming dynamic wind system.
The coolest, or rather hottest feature, however, is our charcoal system. To emulate how buildings and structures actually burn down, walls, roofs and machines in Dawn Apart do not simply vanish from the map after they caught fire and burned down. Instead, once a voxel has finished burning it needs to figure out what it should do next. Some materials, like flora, just flat out die and are removed from the world. Others, like heavy metal, cool off and look a bit scuffed up. The last category will either die or they have a chance of becoming severely weakened and blackened charcoal, leaving behind a very unique burnt structure.

Of course there will be ways to minimize the chances of fire breaking out in the first place (for example by smart placements of machines and effective maintenance) and ways to extinguish them once they start (by assigning colonists to be firefighters). We'll talk more about this in our next post which is going to be all about our water mechanics. In the meantime we’ll keep the fire burning development-wise. See you next time!
But before we rain fire and brimstone on you with bad fire idioms and puns, we are all fired up (see - we just can't help ourselves) that we have cracked the top 700 of most wishlisted games on Steam! Good job - you can keep spreading the word by clicking on our, well, brand new linktree and follow the social media channel of your choice!

[h3]The Roof is on Fire[/h3]
As you are probably aware by now realistic voxel destruction is a main feature of Dawn Apart. The great thing about voxels is their usefulness knows no bounds, and in this case we use the same physical material data to control how objects burn (on the CPU side) and how the flames are rendered (on the GPU side). Whenever an object takes some type of fire damage we set flammable voxels within the hit area ablaze. Once on fire the voxels will burn out over time and attempt to propagate to surrounding voxels taking into account their material. That also includes objects in the near vicinity, so try your best not to stand too close to a roaring inferno. But see for yourself:
[previewyoutube][/previewyoutube]
Once on fire we do two different things to show off that hot stuff. The first is to update a dynamic voxel material attribute which gives off a red glow based on its heat value. The second is to send a buffer of data (world position and heat) for the burning voxels to the GPU to spawn off flame particles.
The color, speed and height of the flame particles will change depending on the heat which is a product of the flammability (what material comes into contact with fire) and the actual degree of heat (how many voxels are also on fire nearby; the flame grows 10% higher with every ignited voxel in close proximity). Instead of going up in a straight line our goal was to create erratic, turbulent flames with lots of embers and sparks - the higher they get the faster their upward momentum.

[h3]Where there is fire there is smoke[/h3]
Over the course of their life the flames become smoke which loses velocity, but can be influenced much more by the turbulent forces along with our upcoming dynamic wind system.
The coolest, or rather hottest feature, however, is our charcoal system. To emulate how buildings and structures actually burn down, walls, roofs and machines in Dawn Apart do not simply vanish from the map after they caught fire and burned down. Instead, once a voxel has finished burning it needs to figure out what it should do next. Some materials, like flora, just flat out die and are removed from the world. Others, like heavy metal, cool off and look a bit scuffed up. The last category will either die or they have a chance of becoming severely weakened and blackened charcoal, leaving behind a very unique burnt structure.

Of course there will be ways to minimize the chances of fire breaking out in the first place (for example by smart placements of machines and effective maintenance) and ways to extinguish them once they start (by assigning colonists to be firefighters). We'll talk more about this in our next post which is going to be all about our water mechanics. In the meantime we’ll keep the fire burning development-wise. See you next time!