Friday Facts #393 - Putting things on top of other things

Posted by V453000 on 2024-01-12

Hello,
I have an irresistible urge to tell you a little story. I'm sure you come here for stories, don't you?


A story

Once upon a time, in a land where smoke, pollution and genocide is the norm, there were these developers. They have added various methods of logistics to their game, and the various methods were not always in harmony.

In the community, camps were created and on occasion arguments were raised. Eventually, even these developers added their perspective which could only be equalled to fuel to the fire. Torches and pitchforks were picked up... There were ideas how to calm this dispute, but not much came out of it. Except 96 forum pages of arguments, along with splitter output filters and priorities.

But some ideas are harder to kill than others, and one Friday a developer dug too deep. "For the lulz and discord reactions!" He thought to himself in the heat of FFF discussions, and charged his steed forward. Madness followed.


Heresy time it was, Boskid going ape beyond the point of no return.
This was the GIF posted to discord with the first experimental changes.

Justice was served as in response I gave this noble-went-mad knight reasons why his heresy can't stand. Reasons already discussed repeatedly in the past. Though I've also shared my affection for this kind of sin as I too have dreamt about it many times.
The horror went through our internal #random channel, and kovarex the mighty responded with curiosity and interest as well.

And you know how it usually goes. Reiterating reasons why it can't be done gets you to think how to do it, again... and I have indeed found a way we hadn't considered before.

The holy grail shall now be called the Bulk inserter.

Bulk inserter


Bulk inserter

The Bulk inserter is the only way to load belts with stacked items. The new key detail that makes it work is that the Bulk inserter only ever starts swinging when its hand is full. This guarantees it will only ever put full stacks of items on belts.

Suddenly all of the pieces fall into place:

  • Inserters can only put items into empty spots on belts, no putting onto existing stacks.
  • Side-loading and splitters do not modify the stack heights at all.
  • If only Bulk inserters interact with a belt, there will be only maximally full stacks.
  • If an inserter taking items from the belt has a smaller hand than the belt stack size, it will only take as many items as its hand can carry - leaving a non-full stack in place.
  • If you want to re-stack the belt to the maximum, you can pick up and re-drop the items with the bulk inserters.

We have a new type of research bonus, belt stack size. At first along with the bulk inserter you just get +1 bonus, and eventually get to +3, meaning you can have at most stacks of 4 items each. Mods can increase this number but we've found that 4 is already a massive buff to belts, without completely breaking the graphics.

The bulk inserter has a greater hand capacity than the stack inserters (16 compared to 12) so it's usually superior, but its use is a bit more complicated in places where multiple items are transferred - it could get stuck waiting for the "wrong" item type. So you need to be a little careful when using it.

You may have noticed that inserter hands now show more than one item which is beautiful to look at as you can anticipate when it will swing. This applies for all inserters, not just the bulk ones. The amount of items drawn is halved so it doesn't look too ridiculous.

That same evening we had a call with Boskid and Rseding where I presented this idea to them and they said it's technically doable. Boskid went ahead and implemented the bulk inserters, Rseding made Big mining drills automatically output stacks of items, and I went to think about the graphics.

But what will the Bulk inserter look like?

After some thinking I tried to make a more robust arm, with more fingers to allow holding more items together, but that was not enough. Inserter graphics get stretched in so many ways that it's very hard to make a different shape actually matter much, so I knew it'll be up to the color to really make a difference.

As you probably know, we kind of use a lot of colors for inserters already. So which one would be next? Neither pink nor black sounds great, and other colors just seem too similar to what we already have.

Inserter colors

Goodbye filter inserters

I mentioned this issue when presenting this feature on our Monday meeting, and we came to a solution. In Factorio 2.0 there will be no more filter inserters - instead, all inserters will be capable of setting 5 filters.

When you place an inserter down, we don't want it to be stuck "waiting for filters", so we added a "use filters" checkbox to the inserter GUI, which is off by default of course.

Inserter GUI

Overall having less entities to worry about is always nice, and removing filter inserters is quite convenient in various places:

  • How many times has it happened to you that you are building something and you run out of stack inserters while you still have plenty stack filter inserters in your inventory?
  • In the context of Space Age, it is common that you send both types of inserters to the space platform while now you'll be fine with just one. On top of that, some of the asteroid processing and related recipes were hitting the 1 filter maximum of the stack filter inserter.
  • It can also be really convenient to be able to set filters on long handed inserters.

This frees up purple and white from inserter colors, so I could use the new inserter shapes and paint them white.

Bulk inserter item icon

All that was left for graphics was technology icons. For programming it was making the stacked items draw correctly - which is easier said than done. I had two main conditions how it should look. The easier one was that items deeper in the stack should appear darker. The one where Posila lost half of his hair was sorting the drawing of stacked items by layer, but with some of his dark magic and hair sacrifice, he had prevailed yet again.


Faster belt tier

When we started working on Space Age one of the obvious things to add was a new faster belt tier.

The main reason we have never added a belt tier faster than the Express belt was because it just starts looking way too quick, and the belt movement becomes quite confusing or even looking like the items are moving backwards.

The graphics are a bit more than a simple recolor. When empty, these new belts also have double the arrow spacing compared to express or fast transport belts, and there are little touches like hints of dark arrows which help to see the belt move correctly.

The undergrounds of these belts can reach 2 tiles further than Express underground belts, which is convenient in a lot of places.

When full of items, at their 60 items/s speed, it becomes really hard to tell if the items are moving or not. We've observed that items with randomized icons like raw ores don't have this problem. After some brief thinking, Hrusa had the idea to randomize the colors of items on belts. You won't notice the effect at a glance but it helps to see the movement a lot.


Conclusion

Increasing belt throughput was something we had really wanted to do for a while now, and Quality magnified this desire 6.25 times (machines can work 2.5 times faster * speed modules can get 2.5 times faster). Not to mention some of Space Age's producers craft much quicker than assembling machines do.

For a while we had restrained our hopes by just adding a faster belt tier, but we knew we'd ideally want something more, and the belt stacking had always been the ideal candidate, we just didn't see a way how to implement it.

One of our concerns was that if transport belt throughput multiplies, you might never need to use more than 1 or 2 belts worth of throughput for almost any item, reducing the logistics challenge drastically. With Space Age adding planets, we can now easily lock things quite far in the technology tree, which is the case for both the Bulk inserter and the faster belts, with each being unlocked on a different planet.
Also, we were always hesitant to add more entities, but now Space Age adds quite a few and one more inserter tier isn't that much more to add, especially as we've removed 2 filter inserters in turn.

People who build factories optimized for UPS (updates per second) eventually got the idea of using circuit network to force inserters to fill their hand before swinging. This new type of inserter can now do this out of the box, resulting in a nice little performance optimization.

This might be personal affection but I also think items on top of each other look absolutely psycho in a very good way. Obviously some items look more wild than others and we might consider to do something about it if we have time, but for what matters is that the feature works and it's a lot of fun to play with.

In the end, our old dream of stacks of items on belts finally became a reality, and belts with bots lived happily ever after.

Happily ever after.


Please do bless us by stacking up your thoughts and beliefs in the usual places.