Today we are going to talk a little bit about a big feature in the expansion, Quality!
Quality is everywhere. It is all around us. Even now, in this very room. You can see it when you look out your window or when you turn on your television. You can feel it when you go to work... when you go to church... when you pay your taxes. It is the world that has been pulled over your eyes to blind you from the truth.
That you are a noob, Neo. Like everyone else you were born into normal quality. Into a prison that you cannot taste or see or touch. A prison for your factory.
You take the blue module, the story ends, you wake up in your factory and believe whatever you want to believe.
You take the white module, you stay in Wonderland, and I show you how deep the rabbit hole goes.
In the mid-game you have to balance the vertical and horizontal growth, which is fun because you need to strategize more. In the endgame, you mainly scale horizontally and it is enjoyable too because you know you won't be changing the designs much, so you can attempt to have the "final version" and scale it up, while there are new challenges appearing at the larger scale.
I always wanted to extend the part of the game where you have to balance the vertical and horizontal growth, and quality seems like a nice general solution to do that.
Every Item, Entity, and Equipment has 5 possible qualities now, and each quality tier gives an improved bonus value, used for most of the stuff:
Quality has various effects.
All higher quality entities have more health, but apart from that, they get unique bonuses based on their type:
When these bonuses are combined, things can get pretty wild pretty quickly:
We wanted to make a system for semi-automated higher tiers of everything without the need to multiply all the recipes.
Generally, just adding a huge amount of recipes isn't really adding to the game at this point, as we feel that the game already has enough, especially when we consider Space Age specific ones not yet revealed.
At the same time, we wanted to add some complexity, and also, make the related complications explicitly opt-in.
This is how we came up with the idea of the new type of module, the quality modules.
The quality module has a special effect, which increases the probability of getting higher quality results when crafting in a machine.
So, for example the the most basic quality module 1 (which has the same tier and availability as other tier 1 modules) adds +1% quality increase chance.
This means that when you insert the one module into an assembling machine and let it craft 1,000 iron gears from normal iron plates, you get 10 uncommon gear wheels on average. But when you insert more modules and increase their tier and quality (yes, quality of quality modules is a thing), this probability sharply increases.
This was all about increasing quality, but an important part of the mechanic is, that the quality of the ingredients is the base for the quality of the product, so getting higher quality intermediates is valuable too.
On top of that, the quality increase can be not only one level at a time, but you can get lucky and get more steps at a time, each additional step has 10 times lower chance of happening, so for our previous examples, out of the 1000 gears, 9 would be uncommon and 1 rare.
Example of the probabilities with 4 normal quality 3 modules.
Quality modules can't be inserted into beacons (for the same reasons you can't do it with productivity modules), but other than that, it is not limited.
Since productivity modules are usable only on intermediates, there are plenty of places where the extra quality items might be produced without any productivity penalty.
It is also notable that we created a quality penalty on speed modules, because haste makes waste, and we wanted to reduce the number of places where beacons full of speed modules is the best way to go.
Ok, so we presented a way to get some higher quality stuff, but it would still be quite weird with the not-so-good items piling up somewhere. This is why we added a new machine, the Recycler.
Graphics are subject to change.
Not only it solves one of the biggest problems in Factorio of how to get rid of all the pistols Trupen made. It also allows you to get rid of the item qualities which are no longer good enough with a chance to get something back. More specifically, for each crafted item, the recycler gives you 25% of the original ingredients back. You might wonder why only 25%, but when you take all the possible productivity bonuses into consideration, it needs to be this low to avoid a net positive recycling loop.
This is also why we created an overall machine limit on productivity to be +300% (modifiable by mods if needed), so even when some mods add machines with more module slots and/or better productivity modules, it will always be prevented from getting broken accidentally.
With the recycler in mind, we can produce legendary items in quite a simple way. We just create assembling machines filled with quality modules for each quality of ingredients, and recycle everything thats not perfect until you get the quality you want.
This build takes electronic circuits and recycles them. The normal ingredients are returned back to the main factory, while quality ones are processed into quality electronic circuits, with any better than Rare being stored in chests.
With this straightforward approach, if you want to produce items of legendary quality, and you already have enough legendary quality 3 modules (which is not an easy thing to get in the first place), the legendary items are 56 times more expensive than normal items.
But obviously, since items have a chain of steps to produce them, every step has the potential to increase the quality of the intermediate products. With different approaches, and possibly different machines or other ways to improve the productivity of the process (tease of some future FFF content), the cost can be brought lower, but it will always be pretty expensive to get the best stuff.
Not all of the quality tiers will be available from the beginning, only uncommon and rare is unlocked with the quality module research, and the better ones are unlocked later. More specifically Epic is on one of the 3 earlier planets, and Legendary on the last planet.
I'm happy with the strategy implications, because they add more important decisions throughout the game.
Quality is the most mature feature of the expansion, because I was developing its first versions internally before the 1.0 release, and it was kept in a separate branch the whole time.
We were considering just putting it into the 1.0 release, but since we were already so behind our plan (similar story as with the space platform), and this is the kind of feature that tends to create unexpected problems (delays), it was decided to just wait with it for the expansion.
There are many internal changes we had to do in order to make quality integrated into the core of the game. Just the GUI changes are touching quite a lot of places on their own. In some places, you just select quality, in others we had to allow the selection of a "quality condition", so for example, you can select to only upgrade assemblers with lower than uncommon quality, etc.
This is a brief list of the places that come to my mind:
Here, for example, the logistic request allows setting either one specific quality, or a quality condition.
In this case, we are trashing all of the assemblers with lower than rare quality.
Requesting items must use the '=' condition, as using the other quality comparisons would be ambiguous and inefficient, hence the lower number is greyed out.
And this is just the GUI, it obviously affects many parts of the game including modding API etc.
This means, that I had to do many VERY complicated merges into the branch during 1.0 and 1.1 development, as many things were different in the branch, so almost anything that touched internal IDs, GUI, or tests, was almost guaranteed to have a merge conflict. I believe that fellow programmers will sympathize with my pain.
So once we started working on the expansion, this was the very first thing that was put there to finally escape this purgatory. This means that it is the most tested feature both technically, and also game-play wise. This explanation might also make it more understandable, why we don't plan to backport features we already have (like those from FFF-374) into the 1.1.
To make things clear, the quality content is exclusively part of the expansion. The non-expansion binary works the same internally, it just doesn't allow any mod to define anything other than the normal quality.
We have made it so that quality is 'invisible' in the game until quality modules are unlocked, so you won't see anything related to quality if you haven't researched quality module or are playing the base game. This includes all the GUIs and interactions as mentioned earlier.
It's also worth noting that while it's a lot of fun to play with quality, using it is completely optional. The expansion is balanced in a way that using quality can be beneficial, but it is reasonable to finish the game without touching quality at all. Typically, people who want to just finish the game are more likely to not touch quality much, while those who want to build a big factory will have very good reasons to use it.
There were at least 2 full LAN playthroughs with quality even before space-related stuff was developed, and more after with a lot of individual playthroughs on top of that.
Each of those helped to fix related bugs and tweak the functionality based on the feedback.
This means that I have enough evidence to be able to confidently say that the pain was worth it, and this feature is fun to play with and works seamlessly!
As always, let us know what you think at the usual places.