1. Modulus
  2. News

Modulus News

Devlog #4: Module Ratios

For those interested, I wanted to elaborate a bit more on the numbers behind Modulus. Specifically the module requests per building. I’ve taken the Blue Core Facility as an example because it has clean ratios. (Not all buildings will produce such clean numbers, but it’s a good way of thinking when planning the construction of a new building)



As displayed above, the building needs 3 modules to be constructed. Let’s call them Mod1, Mod2 and Mod3. Mod1 & 2 need to be delivered 32 times and Mod3 only 16 times. If we break the modules down in our minds, we can slide the blue part of Mod2 inside Mod1, creating a nice rectangle of 2x4x8. Which is 64 voxels and exactly one full base cube, tadaah! If we multiply that by the delivery amount, we can calculate that the building will need EXACTLY 32 blue cubes. That’s neat.

If we apply the same logic to the white parts of the module, we can see it also needs exactly 32 white cubes in total (the calculation is a bit more difficult as Mod2 needs to be delivered 32 times and Mod3 only 16 times). The example above shows how to get to these numbers.

By the way, you don’t have to calculate in voxels, because that’s big numbers. What helps is trying to understand how many full cubes of each color you need.

Now why is this important you say? Well, if we know we need 32 blue cubes and 32 white cubes, we can plan our Polyrock extraction based on it. Imagine placing down two fully efficient furnaces producing cubes. One for the white ones and one for the blue ones (using a painter to paint the whole cube blue). This way we know that, if our production isn’t bottlenecked in any other way, you aren’t producing any waste and the only challenge left is to optimize each module production line. You can even add furnaces later if you see you need more cubes, in a ratio of 1 extra for the white cubes and 1 extra for the blue cubes.

I hope this makes some sense. In any case, it’s a nice way of looking at things when planning construction of a new building. Maybe there’s even smarter ways slightly :) I’m all ears!

Addendum: Module AMOUNTS and cranes
Once you have your production lines set up, it’s smart to think about how many cranes should be used per module. When we look at above example, it’s smart to use twice the amount of cranes for Mod 1 & 2, as the building needs double their amounts compared to Mod3. That way, a building will never have to wait for one specific module to be delivered, because all module deliveries will complete at exactly the same time. (same goes for the production cycle). This is of course assuming that the modules are coming in at a steady flow! Thanks for reading, have fun experimenting!

If you like Modulus, please consider wishlisting it, it helps us out a lot! And don’t forget to join our Discord to be able to talk directly to us: https://discord.gg/QbTr9bFqTF

Thanks for reading, and have yourself a great day!
- David (Game Director)

https://store.steampowered.com/app/2779120/Modulus/

Devlog #3: Celebrating 40K+ Wishlists in one month

On December 4th, we announced Modulus at the OTK Winter Expo. Today, about one month later, we want to share some key numbers from our first month on Steam, explore a few theories, and make some predictions for the future.

🎁 Let’s start with the best Holiday gift we could have asked for: we ended up in the top wishlisted upcoming games on Steam. We’ve comfortably surpassed the 40K wishlist mark. Alongside this, we’ve gained approximately 2,600 followers, giving us a follower-to-wishlist ratio of 16x. This is significantly higher than the 2024 average of 13.3x, and even more so when you consider that deeper, strategic games like Modulus typically have lower ratios.

That said, a higher ratio doesn’t always mean better sales conversion; in some cases, it’s the opposite. We’ll have to wait and see how it plays out. For now, here’s our wishlist growth graph, with annotations for each peak. 📈



[h2]📢 Announcement Itself[/h2]
Our announcement at the OTK Winter Expo (1) didn’t deliver the numbers we had anticipated based on historical trends. It seems December shows across the board struggled to convert well for (indie) developers this year. The absence of a front-page Steam event, which used to significantly boost visibility, certainly played a role. Additionally, the oversaturation of showcases, the sheer volume of games being announced, and the dominance of AAA titles during December created a challenging environment for our reveal to stand out right away.

😔 This was, quite frankly, a bit of a disappointment, but it turned out to be too soon to worry, as our trailer saved the day!

[h2]🤔 Why We’re Seeing This Growth[/h2]
For some reason, the YouTube algorithm (2) picked up our announcement trailer and began showcasing it on people’s homepages and "More Like This" lists. While this gave us a significant boost, it’s certainly not the whole story. Let’s dive into the other key factors behind our growth.

[h3]🏗 Right Genre[/h3]
We chose the factory automation genre because we genuinely love playing these games, even though they’re notoriously hard to make. From the beginning, we knew we had the right idea (more on that below). Market research also revealed that this genre remains a "small blue spot" in the "red ocean" of the games market. More importantly, players are hungry for new titles and open to exploring different approaches within this space.

[h3]🎯 Right Hook[/h3]
Our unique concept, a zen-like automation game where players can dive into operators to build 3D modules, turning them into modular "Lego-like" blocks for constructing buildings, seems to have struck a chord with players.

[h3]🎨 Art Style[/h3]
In a genre where the focus is understandably on gameplay, the visual aesthetics of similar titles often take a backseat. We saw an opportunity to stand out by creating an art style that’s both functional and visually appealing. Our use of voxel shapes aligns seamlessly with the modular design mechanics, while low-poly assets bring life to organic elements like plants and rocks. 🌱 The result is a bright, natural atmosphere set in an inviting environment. A fresh take that seems to resonate with players who are used to more industrial or utilitarian visuals in the genre.

[h3]🚀 Trailer[/h3]
A few days after our announcement, the YouTube algorithm gave our trailer a massive boost. On our channel alone, the trailer has around 110K views, while platforms like IGN (47K views) and GameTrailers (318K views) brought the total to almost 500K views. The majority of comments have been overwhelmingly positive, which is incredibly encouraging.

https://youtu.be/hxOY0Kn4Snk

[h3]🎥 Devlog Success[/h3]
This one caught us off guard. We created a video devlog (3) primarily to reassure players on our Steam page that the game wasn’t abandoned. To our surprise, the devlog performed really well, with 24K views and an impressive conversion rate from viewers to subscribers. Much higher than the trailer itself. Devlogs are now something we’re actively exploring further.

https://youtu.be/rDOBOQNDy_w

[h3]🎄 Steam Winter Sale[/h3]
Our wishlist and follower numbers spiked significantly between December 23rd and 30th. Looks like a combination of people having more time due to the holidays and the lure of the Winter Sale (4) also made people look into games that aren’t available yet.

[h2]🔮 Looking Ahead[/h2]
Between the devlog peak and the start of the holiday effect, we had a steady base rate of 750 wishlists per day. That’s a strong number, but we expect it to decrease in the coming weeks as trailer interest has started to slowly wane. This means we have our work cut out for us on the marketing side to maintain momentum and keep the numbers growing. 📈

🛠 The team is currently hard at work on the demo. If it’s well-received and players enjoy the gameplay, we’re confident it will have a significant multiplier effect on our total wishlist numbers. More importantly, we’re focused on increasing our daily wishlist base, as sustained growth is key to long-term success.

💡 The second thing we need to start is A/B testing the heck out of our Steam page to improve its conversion rate. Our numbers are good, but there’s plenty of room for improvement. Since testing on Steam is essentially free, it’s a no-brainer to aim for even a 0.2% increase in conversion. In the long run, that kind of improvement will be well worth the effort.

🎮 The last, and probably most important, step is to get the game into the hands of influencers. We’ve already seen significant interest from some well-known players in the factory automation genre, which is very encouraging. However, without a demo, there’s little they can do to showcase the game to their audiences.

[h2]🙌 I Know, I Know...[/h2]
While wishlist numbers aren’t as meaningful as they once were, they remain an important indicator of momentum, interest, and potential. We’re committed to growing them organically, avoiding artificial "gaming of the system." We do, of course, ask for wishlists wherever it’s appropriate, but letting this happen naturally will provide the clearest picture of what’s ahead.

🎉 Here’s to an exciting 2025 for Modulus! Thank you for being part of this journey with us. If you love factory automation games or just enjoy exploring innovative titles, we’d love for you to wishlist Modulus. And don’t forget to join our Discord, not only to follow our development updates but also to share your thoughts and ideas as we shape this game together with our amazing community. 💬🛠


https://store.steampowered.com/app/2779120/Modulus/

Devlog #2: Let’s talk about Performance Optimization!

There’s nothing more satisfying and relaxing than sitting down with your favourite factory automation game, watching hundreds of little objects gliding around your buildings and conveyor belts in perfect (spaghetti) harmony. But as your factory grows, and the hundreds of objects become thousands, it becomes very important for the game to continue to run smoothly, and not stutter, judder, and drop frames. Factory automation games provide an enormous opportunity for players to create incredibly elegant, complex, and intricate designs which can sometimes be challenging from a performance perspective. Because of this, we need to dedicate time and effort to performance optimization on Modulus, to make sure your factories keep ticking along like clockwork.

[h2]Performance and optimization?[/h2]
But what do we actually mean by “performance” and “optimization”? They are terms that are thrown around a lot, so let’s break them down a little bit:

”Performance” refers to how the game runs, and it changes depending on how much is happening in-game, the game’s display resolution, and what kind of hardware is in the computer that the game is being run on. Internally, we have a number of performance targets; that is, we decide in advance how we want the game to behave when these conditions change.

“Optimization” refers to the techniques and processes used to try and keep performance in-line with these targets, and these take many forms - often, any specific optimization is made to address a particular performance issue. Let’s take a look at a couple of examples we’ve already encountered while building Modulus!

[h2]Deep dive: what have we done so far?[/h2]
[h3]Grass[/h3]
First up is something that is a very common performance problem in many games: grass! But why is this? Graphics cards (GPUs) are very good at displaying large numbers of polygons, so why is grass an issue?

Grass, waving gently in the wind.

Fields of grass are made up of many hundreds of near-identical blades. By default, a game engine would try to draw the grass blades just like any other object in a scene; it would go through the list of objects that represent the grass, one at a time, and draw each one. It takes a certain amount of time for commands from the CPU to reach the GPU, so if the game has to send a command for each blade of grass individually, it can take much longer to render a frame. Then, once the frame is done and displayed to the screen, it has to do it all over again, even though the grass hasn’t moved.

So instead, when we want to render large amounts grass in Modulus, we collect all the positions and rotations of the grass together when the scene loads. Then, we send all this information to the GPU in a structured form known as a “compute buffer”. This data stays in the GPU, instead of having to be sent over every frame. The CPU then only needs to tell the GPU what one blade of grass looks like, and it can use the positions in the compute buffer to draw all the grass at once - just as if it were a single, bigger, more complicated model. And suddenly, just like that, it takes almost no time at all to render the grass, even if there’s lots and lots of it!

[h3]Conveyor belts[/h3]
Next, how about one of the main attractions of factory automation games? That’s right - conveyor belts! The objects that sit on them need to move in the direction of the belt at the right speed. But when you have lots and lots of items on lots and lots of belts, the game can spend a very long time processing the objects one after the other. But this isn’t something we can easily run on the GPU like the grass, so what do we do?

Lots of items on lots of belts…

How about instead of processing the belts one at a time, we group them up into chunks and process the belts one at a time in each chunk - but multiple chunks at once? Modern CPUs can do this using a technique known as multithreading, where the CPU is actually made up of several units called cores. This is just like adding extra machines to process your raw materials in a factory game!

Two machines process the same amount of raw material faster!

On top of this, the Unity game engine has a utility called the Burst Compiler; by writing code in a specific way, it can be compiled to take advantage of special instructions that modern CPUs have, called SIMD instructions. SIMD stands for “single instruction, multiple data”. As the name suggests, it allows groups of information to be worked on in a single instruction by the CPU - further increasing the amount of belts and items that we can process at once! This is more like upgrading the machines in your factory game; you aren’t adding any more physically, but they can do more things more quickly!

So, by changing the code that makes items ride on conveyor belts to use multithreading and the Burst Compiler, we can have lots of objects moving smoothly along!

[h2]What’s next?[/h2]
We hope you’ve enjoyed reading about these two interesting performance problems, and the way they were optimized. But what’s next for us, in terms of optimization?
Well, performance optimization is a constantly-evolving process. We want to bring you a game that both runs well and looks beautiful; this means that we continually communicate with each other when new art and new features are implemented, and frequently check on the performance of the game as it continues to grow. Often there is a push-and-pull rhythm to performance in game development; a new feature gets added to the game, and the performance drops a little. Then, optimizations are made that improve the performance for that feature - so, step by step, little by little, the game moves forward and keeps improving. Just like building the perfect factory..!

Thanks for reading, and have yourself a great day!
- Jordan (Freelance Optimization Consultant)

Devlog #1: introducing Modulus

[previewyoutube][/previewyoutube]
From the inspiration behind its meditative gameplay to the mechanics of crafting intricate 3D modules as building blocks for your factories, this episode sets the stage for the creative and strategic challenges ahead. Join us as we explore the art of merging space geometry, problem-solving, and player creativity into an experience unlike any other.

Join our Discord: https://discord.gg/QbTr9bFqTF

Be Among the First to Play Modulus!

We’re not just building Modulus for you—we’re building it with you. Your feedback, ideas, and suggestions are at the heart of making our vision come alive. Whether you’re a seasoned problem-solver or simply curious, your input will make a real impact.

Here’s how to get involved:

[h3]Join our Discord Community[/h3]
Talk directly with us, share your thoughts, and connect with fellow playtesters. Our Discord is where ideas come to life and where you’ll have the chance to influence Modulus before anyone else.

➡️ Join the Modulus Discord

[h3]Apply for the Beta Playtest[/h3]
Head over to the Modulus store page to join the beta playtest. We’re opening up broader testing to gather even more feedback, after initial builds have already been tested by our Discord community. Now’s your chance to dive in and help us refine the game even further.

Let’s build something amazing together. Join us and leave your mark on Modulus!