Welcome back to another exciting devlog for Automation Station! Over the past two weeks, I’ve been hard at work creating and refining a brand new progression system that will be the primary way you unlock new buildings and recipes in the game. In this update, I’ll take you through the design process for the new hologram shader, as well as introduce you to the intriguing world of Caches and Decrypters.
As you explore your starting island, you can now stumble upon mysterious Caches.
These enigmatic structures are scattered throughout your world, each guarding precious encrypted cartridges. To gain access to these cartridges, you’ll need to deliver specific items to the locks adjacent to the Cache. Each lock requires different items to open. At the start of the game, one of the first Caches you encounter only requires raw stone, which is easily mineable from a nearby stone ore node. Once you deliver enough stone to the Cache lock, it will unlock, revealing an encrypted cartridge inside.
Each lock displays a hologram indicating the required item. Hovering over the hologram provides a tooltip showing what needs to be delivered. As you provide the required items, the circular progress bar on the lock fills up, tracking your progress. As you advance further in the game, Caches will feature multiple locks, some of which require items that need to be smelted, refined, or crafted in your factory.
This design accommodates up to three locks on a single Cache, which is currently the maximum I’m planning. However, as the game progresses, each lock might require hundreds of items to unlock, encouraging automated production and delivery.
The design of the cartridge draws inspiration from a particular classic retro video game console. While I’m undecided on whether to keep this design or opt for something more unique, I believe a video game cartridge is a fun way to convey the presence of information hidden inside.
Once you’ve successfully unlocked a Cache, you’ll discover an encrypted cartridge inside. To unveil its secrets, you’ll need to take it to the Decrypter. I’m still fine-tuning the design of this building, but here’s a sneak peek:
Delivering a cartridge to the Decrypter initiates the decryption process. This will take some time, and you can track its progress by observing the loading bar on the sides.
I’ve attempted to create a sci-fi visual effect for when the cartridges are being decrypted. While I’m still relatively new to VFX, I’m reasonably happy with this initial attempt.
The missing piece in the decryption progress is actually unlocking the new building or recipe. Although I wasn’t able to address this in this update, the plan is to include a notification popup in the UI explaining what was unlocked, as well as some visual indication in the build menu of what was recently unlocked.
One lingering design question for the Decrypter is how players will initially gain access to it. Given that cartridges control all building and recipe unlocks, I’ll likely need to provide it to the player at the start of the game. One possibility is integrating it into a larger HUB structure where the player would initially spawn and possibly provide other utilities, such as manual crafting and early power generation. However, I plan to address this at a later stage, so for now, a single Decrypter will spawn at the center of the world when the game begins.
Creating the Hologram Shader
Since each Cache lock requires different items, I needed a way to communicate this to the player. While tooltips are helpful, I believe they shouldn’t be the sole method of providing this information. My solution was to make each lock display a hologram of the item type they require. To be effective, it’s important that these holograms are clear and easily distinguishable.
My first attempt at a hologram shader featured a more traditional hologram effect that was partially transparent and included glitchy animated “lines” scrolling across:
However, this design appeared quite noisy and cluttered. I then experimented with a clear blue effect:
While I found this design visually appealing, it looked more like clear blue plastic than a hologram. I decided to reintroduce some glitches and scrolling lines:
This change negatively impacted visibility, so I realized it wasn’t the right solution. To enhance readability, I returned to the initial design that used item colors instead of blue, but this time I removed the scrolling lines.
This approach worked better, but I noticed another issue: the partially transparent items added visual noise by revealing the internals and backs of the items. Instead of true transparency, I tried a dither transparency effect, a common technique used in video games to avoid the performance impact of “real” transparency. This approach also exclusively showed the front of the item in the hologram.
This version made it much easier to discern the items, as they closely resemble the real items in the game. But at the same time, the dither effect, combined with the glitchy jitter, make the holograms feel less like physical objects in the world, which helps sell the effect.
Here is a still image of the holograms:
While I may still adjust the colors and lighting on these holograms, I’m very pleased with the final result. I’d love to hear your thoughts and suggestions for improving the hologram shader!
The Technical Side
Behind the scenes, I’ve made significant updates to support these new systems. In addition to the shader itself, I’ve implemented a new system for generating holograms of every item in the game. I’ve also expanded world generation to spawn Caches and Decrypters, which required adding support for multi-tile structures like the cache.
Furthermore, I’ve updated to a new version of Unity and updated all the packages I depend on, providing access to bug fixes and new engine features. I’ve also fixed up the automated build pipeline to ensure a smooth development process.
With the Cache and Decrypter systems in place, I finally have the required pieces to add some proper progression to the game. One of the next tasks on my agenda is to implement building unlocking, expanding the building menu to include the building only after you have decrypted the required cartridge. However, there’s still much to be done in terms of progression. I plan to implement a similar item requirement system for the pylons that unlock new islands. Stay tuned for more information in the upcoming devlogs!
Here are all the significant changes since the last devlog:
- Created several new hologram shaders
- Created a new workflow for automatically generating holograms for every item
- Designed and modeled the new Cache structures
- Updated world gen to spawn Caches
- Added circular progress bars to Cache locks
- Added holograms to Cache locks
- Added dropoff slot to Cache locks, restricted to the required item
- Updated Cache spawning to configure the cache based on a given requirements and reward
- Added a custom interaction for “quick filling” a hologram from your inventory by clicking on the hologram
- Added support for disabled hover tooltips to allow players to see required items for Cache locks
- Made Cache locks consume the items delivered to their slot
- Made Cache locks update their circular progress bars after consuming an item
- Designed and modeled a Cartridge containing encrypted building schematics and recipes
- Designed and modeled a Decrypter that will decrypt cartridges over time
- Created a new progress bar shader for the Decrypter
- Updated world gen to spawn Decrypter
- Updated Cache system to spawn the correct cartridge based on its configuration
- Added flip animation for when all Cache locks are unlocked
- Added new decryption VFX for when a cartridge is being decrypted
- Added Decrypter system that “decrypts” the cartridge, consuming it and updating the progress bar over time
- Added support for multi-tile entities to world gen and grid system
- Removed unused shader to improve build times
- Fixed the automated game build pipeline
- Updated to latest version of Unity and all packages
Thank you for your continued support and enthusiasm for Automation Station. Have a great weekend!