
UPDATE: The firefighting system has been postponed for Alpha 5.
Today's blog is going to be a bit smaller than the previous ones due to the fact that a lot of this past week's work has been focused around boring, technical stuff that nobody really wants to read about. The technical stuff concerns the Mech and bug fixes that will be revealed in the patch notes.
As you can see in the pic above, the fire system has been fully adjusted to work with sources other than fire tornadoes. The mech flamethrower can now shoot flames up to 30 meters away. You can now start a fire when you aim at the top of a building or a tree for example and it will spawn the fire at that point and then spread in every direction on the object. It's also been greatly optimized and there are still a few more optimizations left to do.
The flamethrower is one of the best weapons you can get on the Mech, as fire is extremely good in certain situations, but not all. For example, you can take it with you when you explore and lay waste to the environment and any animals or monsters that will catch fire will spread it on their own. But we wouldn't recommend it when defending your own base as the fire will easily spread to your own buildings and if you build them particularly close to one another, then it will spread even more easily because just as water has to flow, so does fire has to spread. Within reason of course.
So when you shoot some flames at the ground, a grid of 3 by 3 flames will spawn, spreading outward from the middle cell to the outer cells. The fire tornado will now spawn 5 by 5 grids instead of the current 3 by 3 to maintain relevancy.
All this fire can easily get out of control, so we need a way to combat it. There's currently no way of fighting fire in game, apart from running to a building and trying to repair it as it's burning, therefore risking becoming bbq yourself.
Originally we wanted to just put in some kind of scifi fire extinguisher that the player holds in their hands. But that's too bland, boring and also ineffective due to the amount of fire that can spawn. So instead we decided to make something cooler. We want players to build a firefighting station that has an area of effect of let's say 250 meters. The station will have a certain number of flying drones available, say 4 of them. If the station detects any fire within that area of effect, it will dispatch an available drone to deal with it. The drone will fly towards the fire, pour some water on it, go back to the station to get more water and rinse and repeat for other burning buildings or fire cells. These stations would hold a certain amount of water that gets pumped from the ground at a certain rate. If they're built near water, then that rate would increase.
That's how helicopters deal with forest fires in real life and we think having that in a scifi setting would be pretty cool. I can think of only one other game that has this and that's City Skylines and that's where the idea came from. Of course, implementing this system would be quite a bit more time consuming than just a single fire extinguisher but it should be worth it.
Due to having this autonomous fire fighting technique, we might have to scale fire spread as the game advances. In Rimworld, fire spreads until it either burns out the entire map or until it rains assuming there's no player interaction. It's hard coded to start raining to prevent fires from erasing more than a quarter of the map at a time. So we might do something similar, but instead of forcing rainy weather, we'll kick in the semi infinite fire spread once you build a firefighting station or after a certain amount of gameplay time so that you have a chance of dealing with it by building multiple stations for example. We say semi infinite because we don't want to literally burn out the entire map either, so we'll just raise the fire grid cells from low single digits to low double digits. If we want to have this much fire on this grand a scale in a 3D environment, then we'll have to optimize our fire and water particles as much as possible while still maintaining the current visuals.
This whole firefighting system is currently theoretical as nothing has been implemented yet. We'll be working on the firefighting system next week and we'll see if we have to adjust our expectations or not! What do you guys think?