Draggable Belts, Electricity, & View Modes

Overview

This month focused on a few new areas these being major game mechanics, visuals, and major quality of life belt placement changes.

We are getting closer to implementing all of the October Nextfest feedback that can be fixed via pure programming and I think the game shows that.

I am super happy to add electricity. It's a core feature and while adding it wasn't too hard the visualizations was harder. But I think the shader based approach looks really cool. Super happy with the productivity/efficiency view mode shader below.

I will get a bit deeper in the relevant sections.

Draggable Belts

Dragging belts to connect buildings is now easy.

A good amount of time was spent on adding draggable belts. While Factorio belt-by-belt placement works, in playing the game I realized it gets old fast. The feedback I got was universally in agreement.

The interesting thing is that Exofactory uses a "tile" based belt approach so the spline based approach of other factory games wasn't really possible. After playing a bunch of other factory games doing a bunch of research I found that I could use an approach similar to Shapez2 adapted for 3d and the peculiarities of Exofactory.

Long story short you place the first belt segment and can drag out a straight or "L" shaped segment of belts of any length that you have the resources for. The only real technical limitation is that you can only have 1 bend per dragged out segment. Adding any more just adds ambiguity and unpredictable results.

Longer belt connections take way less work now.

This makes the game way less tedious to play and I am super glad to have it coded out.

Electricity

Building automatically connect to the nearest power source in range.

I also added power recently to the game. All buildings now consume electricity and don't function without it. Building in the range of a power source or extender will automatically connect and start consuming power.

Right now the Core generates enough power to build a little factory. Once I add fuels and piping properly it will be possible to really get the power cranked up.

From a coding perspective this was quite an easy feature to add. Just add some ECS components and you are good to go, buildings update their components as they cycle and power systems query for them accordingly.

The hard part was visualization. I'll cover that below.

View Modes

One piece of feedback I got was "What's the point of the global mode?" and to be fair in the demo the global view mode is less useful than it should be. The primary reason being that the view mode features were not there.

I am happy to show them off now. Good god did I have to learn a lot about shaders, stencils and skinning to get things to work.

The view modes can be accessed in the global mode with the tab button or relevant controller button.

Power

You can see the powered zones, and which buildings and wires are powered or not.

This view mode lets you see what buildings are powered or not. It also let's you see the powered zones and what wires are connected. Simple, fast and useful.

While the view modes are a feature for the global mode, when you place power extenders you can see the powered zones and the like, just for sanity preservation reasons.

Productivity

The color of the buildings shows their productivity. Green for 100%, Red for 0%.

I am quite proud of this and I think it brings something new to the factory game space. The productivity mode shows you at a glance the productivity of a whole landscape of machines. Red or yellow sections of a factory stand out clearly.

In the above video you can see the productivity level drop as the output buffer fills up. Like the power view mode this mode can be accessed via the tab key in global mode.

Conclusion

It felt really nice to finally add a new feature after so many bug fixes. Super happy with that. Now I just need to change the emotional core/dialogue system to reflect these new systems. Lots of fun and lots to do.