Greetings and happy Pride month!
I recently wrapped up another sprint focused on Mining & Smelting which are some of the first actions players will do in Automation Station. I have had both features in the game for some time, but they were in need of a complete rewrite to make them compatible with some of the other recent changes as well as making them more robust.
First, I want to talk about smelting. I’ve shown this off a few times in the past, but the smelting in Automation Station works a bit differently than other games. To turn a piece of iron ore into an iron ingot, it needs to be placed inside a Crucible. But the crucible needs a source of heat to be able to smelt the iron ore into the ingot. In the early game, the player will need to use their laser to manually heat up the crucible.
After manually smelting some iron ingots, the player will be able to craft a Burner to automate the heating of the crucible. A burner is a building that consumes fuel such as coal to heat an adjacent object.
One of the cool things with burners is that you can use more of them in order to heat a crucible faster.
(Eventually, I plan to add an electric heater that functions similarly to the burner, but can use electricity instead of coal to heat up objects.)
In order to smelt, you’ll need ore and coal to place in the crucible and burner, respectively. In the early game, ore can be collected manually with the robot’s mining laser. In terms of functionality, not much has changed since I first shared this a couple of months ago. However, now the rocks require Heat. Once hot enough, the rock explodes into little pieces of ore. I also added an explosion force which some of you requested recently 😁.
One of the neat consequences of making rocks require heat is that they can be heated by anything, not just the robot’s laser. That means that you can use a burner to destroy rocks as well. Since a rock can only be destroyed once, this isn’t super useful, but I think its a cool consequence of the modularity in the game.
To fully automate a smelting setup, you’ll want to automate the collection of ore and coal. For that, you’ll need a Mining Drill. The mining drill simply extracts raw ores from an adjacent ore node.
I still need to add animations and effects to the mining drill to make them more satisfying, but functionally they just spawn items over time. Eventually you’ll connect the mining drill to some belts to automatically feed your crucible or burner. However, I’m still figuring out some of the details here. Specifically, I’m not sure if the player will need an arm to transfer the ore out of the mining drill and on to a belt, or if the mining drill can push or drop the ore onto a belt itself. Also, if there is no belt or arm to receive the ore, I’m considering having the mining drill just drop to the ore on the ground and start extracting another.
A lot of the work this sprint was coming up with a new way to represent heat in the game. Since heat is needed at the start of the game for mining and smelting, it is important to keep it simple and understandable. I also don’t want a complex and fuzzy heat simulation in the game since I don’t think that would play nicely with the other systems that are very precise and discrete. It is also important that the smelting and other heat-based mechanics behave precisely and predictably over long periods of time, while also keeping the manual interactions feeling intuitive and responsive.
The basic idea with the new heat system is that is now uses whole numbers to represent heat. That means that, for example, a burner adds one heat unit to the crucible every second, up to however much heat the crucible is wanting. Heat currently doesn’t degrade, as I don’t want to punish players for providing coal to their burners too slowly. A lot of complexity arises from supporting both the player manually adding heat at random intervals and the burners applying heat in a steady fashion. I plan on doing a deep dive into the heat system in a future devlog so stay tuned if this topic interests you.
Thanks for reading!
- Readded the Burner that consumes coal to heat up an adjacent building
- Readded the Mining Drill that extracts ore from an adjacent ore node
- Rewrote crucible systems
- Rewrote burner systems
- Rewrote mining drill systems
- Added Heatable affordance to indicate that an object can be heated (and by how much)
- Added Extractable affordance to indicate that resources can be extracted from an object.
- Rewrote heat and temperature systems
- Rewrote spawning and consuming system
- Replaced rock break and smelt interaction systems with a heat interaction systems’
- Rocks are now Heatable and break from getting hot
- Destroying rocks creates an explosion force that pushes the player and loose items away
- Added new destruction pipeline to ensure destroyed objects are properly cleaned up (slots emptied, ingredients refunded, etc.)
- Allow smelting to occur part way through a tick (useful for manual smelting)