Hey there!

This week we started to get the first basics of automation into the game. Additionally, we continued working on the UI and improved some shaders for the game. See below!

Route System

The Route System is the first step of automation in Bio Colonies. It allows Microbes to move automatically if specific conditions are met. Imagine having a cell that contains 100 worker microbes. Now, there are three different cells, named A, B and C, that need these microbes!

Instead of manually moving them to those cells, which gets very annoying over time, you can just draw a route between them, one for each target. The only thing left to do is selecting the microbe type to move along this route and there you go. Microbes move automatically between them, and when new microbes enter the source cell, they will be distributed automatically.

You can also set a weight for each route. This makes it possible to, for example, send ~66% to cell A and ~33% to cell B.

An example diagram showing how the Route system works.
An example diagram showing how the Route system works.

Shaders

There has been quite some work on getting the shaders (tiny programs running on the graphics card, which calculate the pixel colors on the screen) ready for the Demo this week. While there are still improvements to be done, they are slowly becoming functional. Let’s take a quick look:

Model Shader

The Unity shader graph of the model shader.
The Unity shader graph of the model shader.

One of the most important shaders is the model shader. It is responsible for rendering all the different cells and bots in the world. As these are imported dynamically, we need a shader that can support (most) of the GLTF properties as well as our custom properties.

So, we now have the model shader. It first gathers the GLTF data and processes them. Then, depending on the inputs by the material, we enable or disable special render behaviors, like, for example, a holographic effect for the blueprints.

Terrain Shader

The Unity shader graph for the terrain shader.
The Unity shader graph for the terrain shader.

To render the terrain, we use a different special shader. It receives two textures and depending on the orientation it uses one of them. This way we can render a different texture on top and on the side without the need for more materials.

Additionally, we just added the functionality to cut-off the terrain at a certain height. This can be used later by players to peek into caves (yes, we plan to add caves!).

The cut-off shader in action.

UI – Build Panel

This menu allows blueprints to be built automatically. See the following video for how it works:

The build-panel in action. The Moiré effect is caused by the down-scaling of this video!

Just to get to this functionality, it was quite some work and took a few weeks. We had to improve every part countless times as the UI Framework we use is just too slow. Just before writing this post, I was working on improving the performance again!

Stay tuned next week for more (UI) updates!