Private Alpha, Steam, & Core Functionality

Overview

Over the past 30 days the game went from "a bit worried" to "back on track" for release. I am happy to say we plan on participating in Steam Next Fest October! (more details below) A lot of the work was done on pure fundamental elements of the game from a coding perspective. So while the visuals haven't changed too much the code is now in a great state. Next month the demo should be full of new visuals and and also new sounds! The month of September will be focused on visuals, polish, and testing. Exciting times!

Private Alpha

I am aiming on releasing a small focused private alpha version of the game for player testing in the second half of this month. If you are interested you can sign up to test on the homepage. You should see a button where you can sign up there.

Just be aware, this will be a true technical alpha and may be full of bugs, UI, UX, and playability issues. If you are looking to play the game I would recommend waiting for Steam Next Fest. If you are interested in debugging and pointing out issues I welcome you to join.

Steam Next Fest

We plan on, and are on schedule for, participating in Steam Next Fest October next month. We were approved and just need to make sure that we have our final release build submitted before the end of September.

The plan is to release a free vertical slice demo of the game that people can play. The goal is to let people build out a factory how they like and to see how the story changes based on that factory. I am aiming for a short small demo, but depending on how and where you build your factory the tone, feel, and direction should be different. Unless you are scripting, every playthrough should be a little different at the least or very different depending on how you build.

This is all managed by the emotional core and it's pretty cool.

Just to set expectations though, this will be a shorter demo at about ~10-15 min if you play fast. The full game will be developed with the community via Early Access, with a full release sometime in 2026.

Belt Fundamentals & Logistics

The majority of the work on the development side was focused in this area. You simply can not have a factory game without a robust and performant belt and logistics system.

I think I did that. I never understood the pain that factory game devs felt when they talked about the pain of belt dev until now. Now I join that circle.

The cool thing is that I basically get performance for free with Bevy's ECS architecture. Everything is fully parallel and the game will use every CPU core you have to make sure your factory runs smoothly. Visually I suspect you could bring fps down if you crank up the settings, but factory size in itself should never be a problem.

Included here is a rough technical explanation of how things work under the hood. Feel free to skip this if you find it boring.

Fancy Belt Stuff

How Belts Actually Work

Belts auto-organize themselves into directed “segments”. Segments are made of chains of belts from anything that can output items to anything that can accept them. Each belt entity gets a component that marks what belt segment it is part of. This is all done via observers and only happens when you place/delete said belt.

To be clear there is no linked-list like structure anywhere. We are just tagging belt entities with a segment component.

Connections and Segment Formation

Fabricators rotated at 90 degree increments. A blue or red cube is next to the entrance or exit

Buildings and belts declare their belt inputs and outputs on the grid. When you place a building or belt, the building IO points, look one tile in the facing direction, and only connect if the neighbor is oriented in a compatible way. If it connects, the building adds a sink or source relationship with said belt segment. Above you can see some very large debug cubes that show the watched tiles.

As you place belts or buildings, I reorder belts from true start to end so the chain is coherent, and I rebuild a “visual path” spline straight from each belt’s world-space center. If you remove a belt, I recompute the actual connected groups, split the segment if needed, and reassign connected buildings to the correct new segments.

This was like 95% of the work.

Item Movement

Items on a belt move along a piecewise set of CubicHermite Splines built from the location of the belts in the world. This is really cheap because all of the splines are pre-calculated. All we do is move stuff based on a timer which is also pre-calculated based on belt segment length and belt speed.

Capacity, Throughput, and Backpressure

Belt capacity was done ASAP (as simple as possible) aka one belt entity = one item. A 20 belt entity long segment can hold 20 items. Inserts only succeed if the segment has room. Machine sources hooked up to a belt segment push from a small output buffer into the segment whenever there’s space. If the segment is full, the buffer fills and production pauses naturally; when the line clears, it resumes automatically. A similar process happens with machine inputs.

Performance

A series of buildings all with input and output debug cubes

This is all ECS and fully parallel. Because segments are fully isolated and Bevy is cool I can just set up an async pool as wide as your CPU core count is. Segments all process their items and try to send via the relationship based source sink system. Above you can see a series of buildings with their input and outputs highlighted.

New Buildings & Resources

We've added a few new buildings since the last dev blog and they're all pretty cool.

Mining Platform v1

Mining Machine In Action

This is the first resource extractor that the player has access to. It will extract ores from the planet just as humans taught.

Ancient AI Core

The ancient AI core. It has a door and communication dishes. It is worn and covered in moss.

The core where you the player AI's mind resides. Where you have been... for quite a while.

Gas Extractor Sneak Preview

Gas extractor in Blender. Many technical nodes are visible.

And here is a sneak preview of the gas extractor. Not everything is a mineral after all.

Music

Super happy to be working with Repto Eternef They are creating some amazing music for the game and will be helping drive the exofactory music engine which we plan on open sourcing in 2026 before the game releases.

Dialogue & The Emotional Core

A dialogue box on top of a desert scene saying "I am alone here and things are not as they should be."

Lastly, but certainly not least, the emotional core and dialogue system was added.

The emotional core is the heart of what makes Exofactory, Exofactory. Technically it watches what the players do by receiving and processing events that are triggered by any action the player takes. This includes all building, destruction, movements, production, everything. These along with looking at the totality of what you have built, how systems interact and how things don't interact inform the story direction.

The goal is to have a user driven story based solely on their factory. I never want to put up a "choose option A or B" popup to advance the story. The game should know your priorities based on how, where, and what you are doing with your factories.

This is most evident to the player via the internal monologue of the AI that the player listens to as the game goes on. The thoughts and tones and direction of the dialogue/monologue are given by the emotional core to the dialogue system which displays them and plays the audio. Currently I am examining open source TTS systems that can read the many many many lines of potential dialogue.

Conclusion

Lots of core progress was made and things are on track. I am excited to see how players use the systems I am working on. :)

Exofactory is now available on Steam! If you are interested in the game I would encourage you to consider wishlisting it there.