BTW: In this post I use only the term "compression", because "stack" is in Factorio already used, it means one stack of items in an inventory. A compressed item can also be stacked in this way of course. "Compression" in Factorio means also belt-compression, when a belt is fully compressed with items, but I think this two kinds of compression can be distingushed easily.
First of all I love compressed items. I wrote an article long time ago
viewtopic.php?f=80&t=19343 Boxing / Packaging / Container / Cargobox : Pre-Filling
but I think this is quite out of date and not longer actual.
So I played with those mods around more than four years. Alone with https://mods.factorio.com/mod/deadlock- ... es-loaders (The most famous and most supported) since it’s release. And I think I really know what’s good or bad with this kind of playing.
What is Compression?Compression, (often also called stacking, boxing) is a way to use the compression techniques we already know from the chests and so on to create new items out of some (of the same type) and vice versa.
For example you can create a compressed iron plate from 20 iron plates. But there are also mods that can create a mixed box of items. E.g. from 100 iron plates and 300 copper wires. That box contains all, that is needed to create 100 electronic circuits. Or one box of electronic circuits. That
is out of scope here.
Other mods need a container. E.g. a wooden box plus 20 iron plates -> 1 wooden box with iron. Expanding those boxes has two variants: a) the box/container is not destroyed and ready for reuse b) the box/container is destroyed. Variant a) gives a quite interesting new game play, because you need not only to transport items in one direction, but also the boxes/containers back.
To sum this up to all possible kinds of gameplay for “compression”:
1. without container
1.1. one item-type
1.2. different item-types
2. With container
2.1. container is destroyed on expansion
2.2. Container is part of expansion-recipe (not destroyed but eventually in parts)
And there are many combinations and other variants of this. For example when the container is destroyed, but the ingredients of it come out and you need to reassemble it.
For the further post I refer only to 1.1. compression without container and especially not with mixed items types - I think you can achieve the advantages of that with compressed recipes. But generally there is not much difference in gameplay between 1.1 and 2.1.
Compressed recipesThis all doesn’t make much sense, if you don’t have receipts that can handle compressed items. Because otherwise you can compress the transport from your mines to the smelters, but before you can smelt it, you need to expand it. What you really want is to put the compressed iron into the smelter and out comes compressed Iron plates.
Pros and Cons of CompressionPros
- compression introduces kind of new gameplay, especially for the type 2.2. It needs/allows a completely different gameplay. But that kind of material flow is also used in other combinations in some big mods.
- it increases the transport capacity of everything to astonishing amounts ( depends on how it is balanced)
- markable reduction of CPU load, especially with compressed recipes and big compression factors.
- no need to make multiple rows of belts to transport the items (I currently play a game where I feed over 200 smelters by one belt)
- a bit simpler train stations
- no need for big chests-mod/warehouse.
- enables long games without much fear, that youp only repair bottlenecks.
- EDIT: it enables to "overpower" entities (entities which craft faster than 1 tick), or entities which need so much resources, that you cannot feed it in fast enough with normal stack inserters.
- EDIT: You can use "mixed belts", where you can produce items like in a factory street (belts goes round, things get produced and you can add or remove items from belt as needed). This is not possible with normal items, because you very soon get throughput problems.
And some subjective aspects: feels like next generation Factorio - I mean it allows to transport so much more items, that the aspects of Factorio shifts from small little things much more to the overall functionality of you Factory. I think this is a useful turn.
- it introduces a lot more items, the expanded (normal) and the compressed versions. This is much harder if you play with mods. Plus: when playing with compressed recipes also a lot more recipes. Which makes it difficult if you mix them.
- you have two versions of the same item. But the game cannot handle them as the same. This feels clunky.
- it introduces new icons for the compressed items, which are sometimes hard to distinguish.
- if you produce 20 iron ore and create one item of compressed iron ore out of it, then you see in the statistics a production 20 iron ore, a consumption of 20 iron ore and a production of 1 compressed iron ore. This feels totally wrong. Stats don’t work anymore with compression.
- it isn’t worth the effort, if you just want to make a fast game. I mean: if you plan to continue after rocket launch, this is quite useful.
- a recipe can consume either compressed or normal items. A mix isn’t possible. Or let’s say better: it would be possible to generate a recipe of every combination between compressed and normal items. But Factorio is not able to hide that all for the player in a clean and nice way.
- the belts and inserters are not moving so much anymore. Depends on compression factor.
- similar issue: you cannot see immediately how the state of the factory is. This is because the belts and inserters move much more seldom. This is also nothing which someone gets used to. You need to measure much more (which someone might see as an advantage ).
- the player can pickup compressed items like other items. It feels a bit strange. - some mods will automagically expand picked up items in the player inventory , but this makes a lot of problems with limited inventory size.
- if you don’t have the above feature and need just 1 item of red circuits but you only have compressed ones you need to built something to unbox it and don’t know what to do with the remaining. See mixing of the recipes above.
- inserting the items with inserter to compress them feels quite clunky. Using a loader (as in deadlocks mod, see link above), is a very useful solution.
- playing with compression if you have only low amounts of items (left) is a no no. Even with medium amounts of items this is not a good idea. It's only useful, if it doesn't matter if there is a buffer of 300 items before a new compressed item is produced. Even equal distribution is a problem, if you have low amounts of compressed items.
So much cons? Well, they don’t feel so bad, when you play with it. And obviously many people like to play with it, if you look at the download numbers of deadlocks mod.
Solving the IssuesSo here we come to the suggestion part.
A new research “compression techniques“
This research enables
a) Compressors. Can be used to compress/expand items. It takes a lot of energy to do that, but that is balancing.
b) a new button in the assemblies / smelters: output either normal (default) or compressed item(s) (+ the number of items needed for one compressed item) (*)
c) the ability to assemble/craft from compressed items. Besides the useful compressors there should be a second way to get expanded items. In that case a compressed item is expanded automagically, the needed items are taken and the remains go back into the inventory (of player, assembly or whatever). It prefers to pick up normal items first before expanding a new compressed item.
Eventually we can reduce the default player inventory size, because of this. I also can think of another research that automatically compresses unused items if picked up.
(*) I thought also that it could be a good idea to have a third switch position: "output compression from input compression", which means, if the input item is compressed the output will be also compressed. In doubt (one item compressed the other normal) the normal wins.
New reasearch “loader”
As in deadlocks mod, the loader makes the difference! I think it's very important to have it, otherwise all the inserters that are needed don't make fun.
The compact loader makes in my eyes really fun to use and you wonder how much other things you can do with it. I think this is a really simple increase of gameplay with not so much effort.
No difference between item and compressed item
I think this a difficult change to Factorio. There should be no difference in counting items. A compressed item with 20 iron ore should count as 20 iron ore and not as 1 compressed iron ore. This would solve all issues with the brocken statistics/inventory containsr.
To make it clear: the compression (or expansion) of items doesn’t count as consumption. As the expansion doesn’t count as production.
What is with the logistics?
The requester has a new switch: prefer normal items/prefer compressed items.
In the selector the number of compressed items should be calculated.
If 1 item is requested and it prefers compressed items it requests one .
What’s with signals?
A compressed items emits two signal: the number of expanded items and itself (the compressed item). There should be a way to check in a decider combinator if the signal contains compressed signals and emit/filter only those.
Inserters can either have a new switch "prefer compressed item" as the logistics, or there is a filter item which matches for compressed items. Similar with splitters.
Factorio can generate compressed-items-icon itself
It should be so, that the icons for the compressed version of items can be generated by Factorio internally during startup (for the case that the icon doesn’t bring it’s own compressed icon of course).
For example https://mods.factorio.com/mod/deadlock_stacked_recipes does something like that, the icons are pre-generated in half-automatic and the result is a palette as base and three stapled items on that palette.
I wish Factorio can automate this kind of generating the icons to a new one. The modder should be allowed to fine-tune any aspect of this (fine-position any of the icons, change color/tint, use any icon he wants). I think this would also be quite useful for other use cases.
They should work similar to compressed items. But that is in my eyes a completly new suggestion and in my eyes the gameplay value is not so high.
I need to mention here that balancing is difficult. It makes not much sense to let the user choose the compression. However I can say that I played with compress-sizes between 10 items and full stacks (normaly 50, 100, 200), and the right value is surely something in between 10 and 50. Currently I play with compression factors of 25 items and that feels a bit too big and I would reduce it to something between 15 and 20. But see below.
Compressed items on belts take more space
This is the suggestion which I’m most unsure if it would be useful, because it would be really a big change and a lot of work. So this one at last.
To see the progress on belts (and inserters) better, and distinguish better between compressed and normal items, a compressed item is much bigger and takes both lanes from the belt. There could be compressed and normal items on one belt. But a compressed item blocks takes two lanes, even if one lane is free.
So a compressed item has the size of four items (just doubling the length and width). In that case I also think that the balancing needs to be a little bit higher.
This should solve parts of the problem, that you don’t see so well, how your Factory is going, when there are only compressed items on the belts. Bigger icons, need much more space on the belts and the belt needs to scroll more.
As said: quite experimental.
So hope this gets discussed; I think compressed items this is a way, Factorio should go.