Before getting into the next devlog, I wanted to briefly update all of you on the state of these devlogs. You may have noticed that there are suddently a bunch more devlogs on this website. While new to the website, these devlogs (#5 - #13) are actually updates from the last 6 months that I have been sharing in the Automation Station Discord. Although these aren’t quite as in depth as some of the first devlogs on the website, they still are packed with interesting updates and offer a behind-the-scenes look at my design process. Also, by having them on the website, there is now a single place to go for development progress, which hopefully makes it easier for all of you to follow along.
Moving forward, you can expect new devlogs here on the website roughly every two weeks. I will continue to post in Discord, but these will just contain links to the website. I am also starting to post these as events on Steam and Twitter so that non-Discord members can still follow the game’s development.
Better Belt Placement
The belt placement system has gone through many iterations over the development of Automation Station. In my last rewrite (back in devlog #10), I made it so that belt placement followed the cursor, making it easier to control the exact shape that is desired. While this worked great in a lot of cases, it was missing some important features. Specifically, there was no way to easily extend or connect to existing belts. But now you can start or end a drag over an existing belt to append or prepend to it.
As you can see in the gif above, the starting and ending belt now tint green to make it clear that you are going to replace the existing belt. And if the existing belt has an item on it, it will be automatically transferred to the new belt. I also made a bunch of smaller changes to the belt placement logic that you can read about in the changelog notes at the end of the devlog.
There are two main types of objects in Automation Station, buildings and items. Buildings occupy a hex tile and are placed in build mode. Items are things like resources and refined materials that can be placed on conveyor belts, in machines, or rolling around loose on the ground. Items are the things the player can interact with in play mode. A common source of loose items are resources that the player has manually harvested, such as mining ore or extracting blubber from trees. Up until recently, these loose items would drop on the ground and have to be manually picked up by the player. While this worked okay most of the time, it was annoying when you wanted to pickup a bunch of items. However, the biggest issue with this was that the control for picking things up was the same as the control for placing the just-picked-up item. This led to lots of accidentally dropped items.
A lot of games have an auto-pickup mechanic that streamlines the process of picking up items, so I decided to try that for Automation Station. If the player gets close to any loose item, the item will automatically zip into their backpack. But don’t worry, any items on conveyor belts or machines or even launched in the air by a launcher won’t be automatically picked up. Here is what the auto-pickup looks like in action.
There are still a few changes I want to make but I’m quite happy with how this is looking already. Specifically, I want animate the backpack opening up when items are going into it. I’d also like to show a little UI popup on the side of the screen to list off what items were just picked up.
Build Mode Pause
When everything is moving around, it can be hard to add, remove, or change things in your factory. This is made worse in Automation Station where there are pistons, rotators, and orbiters that can even move the buildings around. To address this issue, I decided to make the factory pause when in build mode.
As you can see, everything comes to a stop when entering build mode. You also may have noticed that there is a small delay before things actually pause. This delay just ensures that all of the ongoing animations can finish so that everything is nicely aligned. For example, if a piston is pushing a conveyor belt and we enter build mode half way through its animation, it is better to complete the animation rather than leaving the conveyor belt overlapping multiple hex tiles.
Here are all of the important changes that have been made to the game since the last devlog:
- New conveyor belt placement
- Pressing R cycles belt shape when hovering another belt
- Restore belt rotation when no longer hovering another belt
- When backtracking, keep belt shape of final belt
- Support appending and prepending to existing belts
- Tint belt green when it will replace an existing belt
- Improve belt placement animations
- Entering build mode will pause the entire factory
- Handle cases where animations need to be interrupted based on build mode actions
- If a building is replaced, swap the item to the new building if possible
- Auto-pickup items when the player is nearby
- Animate picked up items to above the player’s backpack
- Remove drop and pickup interactions
- Mining laser now hits the surface of target object
- Re-add the ability to zoom the camera, both in play mode and build mode
- Refactor and simplify how items are represented in the game
- Finish up CI/CD pipeline
That’s all for this devlog! Let me know in the comments below or on Discord if you have thoughts on these changes.