Balancing research speed - marginally decreasing lab efficiency

Place to discuss the game balance, recipes, health, enemies mining etc.
Post Reply
Rwn
Inserter
Inserter
Posts: 32
Joined: Sun Mar 03, 2013 10:43 am
Contact:

Balancing research speed - marginally decreasing lab efficiency

Post by Rwn »

Hi everyone,

I'd like to suggest a solution to a problem that has been bothering me for quite a long time. Beware, bits theorycrafting and maths ahead, but really, it's much simpler than it might looks by the length of this post ;)

Basically, the pace of a Factorio game is mostly depending on two parameters :
1 - The player's ability to set up the factory (craft items, place them on the map, design automated setups, repel biters...) ;
2 - The research speed in the background that progressively unlock new things up to the rocket silo.

For an ideal game experience, both should progress at a similar speed:
- If the pace of the first is significantly higher than the second, you'll regularly have to wait idly for research to advance to continue progressing in the game, which is quite boring. If you have a bit of experience with Factorio, this is what you'd experience if you were limited to 1 lab.
- If the pace of the second is significantly higher than the first, you'll unlock new things too fast compared to how you can integrate them in your factory. This is what I experience now I'm a fair bit used to Factorio when I build 10-20 labs and beakers production lines accordingly (which isn't much more time consuming than designing a production line for a single lab): I usually research all red-beakers techs before I am able to produce green beakers, ditto for red/green techs before I am able to produce blue beakers. Which isn't good either because you get access to about everything you need far earlier than you're able to use it (with some exceptions in the very early game or with advanced oil processing ;) ), removing the need to think about which research you need most.
In short, it makes research less interesting since there's no need to prioritize a research path, everything is unlocked early enough that research is almost never a constraint.

Now, the problem is, how to make those two parameters work well together ? Let's start with simple, but not ideal solutions :
- Increasing research speed. The reasoning here is, as players with a bit of experience fall in the second pitfall above, making research slower should resynchronize the two paces. That's not ideal for two reasons : first, it's detrimental to new players who build few labs in their first game(s) and will make Factorio less fun for them. Second, it's only shifting the problem : since building a bigger production line is only marginally more time consuming than a small production line, all you'd need to do is this time to build 30 or 50 or 100 labs instead of 10 and the beakers to supply them (a bit longer, but not 3/5/10 times longer) to fall again in the same issue of too fast research.
- Capping research speed. Say you're limited to one, or 10 labs and over that limit, adding more doesn't help. A bit better, but not very satisfying either, a cap that would be adapted to new players (who build slowly and not too many labs) would be too low for experienced players. And it goes a bit against the gameplay philosophy of Factorio where you are able to scale about everything.

So, what I'm suggesting is to implement a decreasing marginal efficiency of labs. It means that when a lab is researching a tech, each new lab that is also contributing will be less effective that the previous one.

Say you have a technology that requires 1000 research points, with a beaker giving 100 points in 1 minute in a single lab. You'd need 10 beakers and 10 minutes to research the technology with a single lab. With how things are working now, with two labs working together, you'd need 5 beakers in each lab (10 total), but only 5 minutes to research the tech.
The idea is to change this so that the second lab is no longer as efficient as the first - instead of giving 100 points, it'll only provide, say, 80 points per beaker in one minute when it's working at the same time as another one (or, for another way to see things, each lab only provides 90 points per beaker per minute when working in two). So, with two labs, you'll need 1000/90 = 11,1 beakers instead of 10, and the total duration will be 11,1/2 = 5,6 minutes instead of 5.
If you add a third lab, the penalty is multiplied : instead of 100 points, it'll only contribute to (0,8^2)*100 = 64 points (meaning that three labs together will provide (100 + 80 + 64)/3 = 81 points per beaker on average) ; when three labs are working together towards a research, that research will require 1000/81 = 12,3 beakers and the durationwill be 12,3/3 = 4,1 minutes (instead of 10/3 = 3,3 with the current system).

OK, you've understood the idea: more labs mean faster research, but not as fast as simply dividing research time by the number of labs (note that it's not the number of labs you've built that counts, but the number that are active simultaneously at a given time). If we call x the efficiency loss (the 80% in the example above), the global effectiveness of n labs working together is equal to (1-x^n)/(1-x).
This function has some interesting properties : it's always growing (your overall research won't slow down because you added labs) and converging towards a given value (1/(1-x)), meaning that research costs and durations can be set knowing that research speed will be in a specific frame no matter how many labs you have.
Say we have an efficiency loss of 80%, no matter how many labs a player builds, we know that research speed can't be increased by more than 5x, and nearing 5x will be prohibitely expensive (remember that beakers cost does remain scaled by number of labs, if you have 10 labs, you'll still eat 10 times as many beakers as 1 lab even if you're only going 4 times faster!) ; most players would likely push to 3x or 4x by building 5-10 labs.

If one doesn't want the function to converge (so you can increase the research speed to any level, but still the faster the research, the more additional labs/beakers you need to increase it further), I see interesting alternatives as:
- Overall research speed progress as n^y where n is the number of labs and y a parameter (y = 1 is the current behavior, y = 50% gives a speed progress as square root of number of labs, etc.) ; each lab is thus contributing as a n^(1/y-1) efficiency.
- Overall research speed progress as 1+log(n)/log(y) (logarithm base y of the number of labs) ; each lab is thus contributing as a (1+log(n)/log(y))/n efficiency.

Here's a comparison of the functions:
Image

Whichever function is considered best (I personally like logarithm base 2 the most), the result from a gameplay point of view is that having a low number of labs (say 1 or 2) won't be a big penalty to new players, while experienced players will be able to increase research speed to match their faster, more efficient building speed (though they'll have to find a balance with the growing beaker cost required to accelerate research) and it'll be much easier to balance research costs/speed so that the research not trivialized by simply duplicating labs and beakers production lines.
Last edited by Rwn on Mon Nov 30, 2015 5:00 pm, edited 1 time in total.

Rockstar04
Fast Inserter
Fast Inserter
Posts: 171
Joined: Sun Feb 17, 2013 4:31 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by Rockstar04 »

I really like this idea. I think picking a function to model the returns will be very difficult to get people to agree on though.

Rwn
Inserter
Inserter
Posts: 32
Joined: Sun Mar 03, 2013 10:43 am
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by Rwn »

Some additional info about the different functions suggested above, from the most "lenient" to the most "severe" compared to the current behavior:

- Square root makes increasing research speed linearly depend on fast your research already is.
To have the speed of 1 "fully effective lab", you have to build 1 lab.
To have the speed of 2 "fully effective labs", you have to build 4 labs, so 3 more labs to add the equivalent of one more "fully effective lab".
To have the speed of 3 "fully effective labs", you have to build 9 labs, so 5 more labs to add the equivalent of one more "fully effective lab".
To have the speed of 4 "fully effective labs", you have to build 16 labs, so 7 more labs to add the equivalent of one more "fully effective lab".
...
To have the speed of n "fully effective labs", you have to build n^2 labs, so (2n-1) more labs to add the equivalent of one more "fully effective lab".

You get the idea : to get the same marginal research speed increase (the same as building 1 additional lab currently), you have to build 3, then 5, then 7, etc. adding 2 more labs each time. Of course, you can easily pick another linear relationship by slightly tweaking the formula from there (if you want 1/2/3/4/... additional labs instead of 1/3/5/7/... for example).

- Logarithm makes increasing research speed exponentially depend on fast your research already is.
Withthe formula 1+log(n)/log(2) :
To have the speed of 1 "fully effective lab", you have to build 1 lab.
To have the speed of 2 "fully effective labs", you have to build 2 labs, so 1 more labs to add the equivalent of one more "fully effective lab".
To have the speed of 3 "fully effective labs", you have to build 4 labs, so 2 more labs to add the equivalent of one more "fully effective lab".
To have the speed of 4 "fully effective labs", you have to build 8 labs, so 4 more labs to add the equivalent of one more "fully effective lab".
...
To have the speed of n "fully effective labs", you have to build 2^(n-1) labs, so 2^(n-2) more labs to add the equivalent of one more "fully effective lab".

It works a bit like square root, except that instead of increasing the cost of a "fully effective lab" to 1/3/5/7... ordinary labs, you increase it to 2/4/8/16...
Again, it's easy to slightly tweak the formula if you want power of 3 or of any number instead of powers of two (but I find power of 2 already quite drastic in terms of increasing effective lab cost...)

- The "converging" functions create a hard cap to the global tech speed towards which you're trending ; adding one lab gets you closer to that cap by a fraction of the remaining gap.
With a converging function based on a factor of 80%, the cap is at 5 times the speed of one lab; no matter how many labs you have, adding one more will get you 20% closer to the cap:
If you have 1 lab, adding one more will make your research speed increase from 1x to 1 + (5-1)*0.2 = 1.8x.
If you have 2 labs, adding one more will make your research speed increase from 1.8x to 1.8 + (5-1.8)*0.2 = 2.44x.
If you have 3 labs, adding one more will make your research speed increase from 2.44x to 2.44 + (5-2.44)*0.2 = 2,95x.
...

What I don't like too much about this function is that there's a very obvious "magic number" (the cap) that feels a bit artificial. On the other hand, you could easily add new techs that change this cap (instead or in complement to the current +research efficiency techs that feel a bit bland) : say the base factor is 50% (each lab is only 50% as effective as the previous one ; the research speed cap is 2 times the speed of 1 lab), you can implement a serie of techs ("better lab synergies") that increases this factor to 66%, then 80%, then 90%, then 95% that would not only speed up your research, but also increase the "cap" (to 3/5/10/20 respectively) and give an incentive to build more labs as the game progresses - early on, with 4 labs you're already at 1,88x research speed (very close to the 2x cap), but when you reach a factor of 95% (cap of 20x), those 4 labs only increase your research speed to 3.7x, very far from the 20x cap, so adding more labs is then worth it.


Well, I hope this post isn't too confusing ;)

User avatar
bobingabout
Smart Inserter
Smart Inserter
Posts: 7352
Joined: Fri May 09, 2014 1:01 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by bobingabout »

I don't mind the idea of the efficiency going down, but I would suggest it purely be a speed deficit. Depending on what stage of the game we're in, I'd opt to have only one lab, and fill it with modules if they were available.

That's another thing, if you're talking about labs only acting to a certain speed, how would Speed and Productivity modules effect that speed?
Creator of Bob's mods. Expanding your gameplay since version 0.9.8.
I also have a Patreon.

RoddyVR
Long Handed Inserter
Long Handed Inserter
Posts: 96
Joined: Thu May 07, 2015 6:29 am
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by RoddyVR »

I like this idea, except that in all those cases you still need a base speed to base things on... will you balance it to the current research speeds (at 1 lab?) or to the speed runner speeds of <4 hours to rocket.

I tend to build either 10 or 20 labs usualy, and it seems like most of the proposed functions will make 20 of them equivalent to about 5, which means i'll be reserching at about half my normal "slow" speed. i guess its not bad, probably will have to make a few choices at that point of what to research next (do the train stuff or weapon upgradese stuff first). I'm understanding correctly that the resourse drain in my case would remain the same as now (20 labs eating resourses at full speed) but the resulting speed of research would drop. That would probably be good, cause right now i tend to finish all reasearch (including all the robot followers) way before i finish building my base (in the current game i prety much STARTED building the main bus when i was already on the follower robot count research).

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by ssilk »

Hm. This suggestion solves a problem, that doesn't exists: If I'm slow I built less labs. If I'm fast I built more. Balancing finished. ;)


What I'm for is some factor, that influences the difficulty on the players abilities. But that should not be bound on the labs only. And it shakes on the grounds of Factorio, cause it has a reason that you cannot change recipes (or research) during the game.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

sillyfly
Smart Inserter
Smart Inserter
Posts: 1099
Joined: Sun May 04, 2014 11:29 am
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by sillyfly »

@ssilk - I don't agree this is a problem that doesn't exist. I too feel research in the early game is too fast, and all-in-all doesn't scale well, and isn't challenging enough.

But like bobingabout said, this proposed method (although very cool and interesting) has some problems.

How about instead of scaling labs' efficiency the more labs you have, we scale the cost of technology as you research? What I mean is - every technology has a base cost (which could be what it is now, but possibly would need to be balanced), but there is also a multiplier that is increased every time you research a tech. So if a tech has a base cost of say 100 red beakers, it would cost exactly that if you research it first, but if you've already researched 10 other technologies it may go up to 150 or so. I was thinking of something along the lines of cost = (base cost) * a^n , where 'a' is a parameter (say 1.05 or 1.1), and n is the number of technologies already researched. But of course, the exact formula can be changed or tweaked.

This will mean you can get away with few labs in the early game, but as the game progresses you need more labs (or more speed modules in your labs). It also has the added effect that the order in which you research things matter - you really need to think if you'll need something now, because if you don't it will only make other research more expensive.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by ssilk »

sillyfly wrote:@ssilk - I don't agree this is a problem that doesn't exist. I too feel research in the early game is too fast, and all-in-all doesn't scale well, and isn't challenging enough.
I really don't understand: There is only one dependency, which is the players ability.
If you have enough resources you can research faster. And vice versa. And you get only more resources, if you are building much mines, furnaces etc.

Yes, the research is always one step before you, but that is in my eyes part of the game: You need to decide what is more efficient now: New research or building new stuff.
And one more reason: gameplay-wise you need some buffer in research, so that you are enabled to decide which to research next.
This will mean you can get away with few labs in the early game, but as the game progresses you need more labs (or more speed modules in your labs). It also has the added effect that the order in which you research things matter - you really need to think if you'll need something now, because if you don't it will only make other research more expensive.
Well, that makes partly sense. But as a beginner I don't want to think about that.

Hm. And this changes basic principles of Factorio, that a recipe never changes during a game.
To implement this they need to introduce some kind of "research factor", like the evolution-factor...

I think currently this suggestion needs some refinement, because I still don't see the problem, that is tried to be solved. :)
I think, this should be tried out as mod first, or some different mods so that the better playabillity can be proven.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

Koub
Global Moderator
Global Moderator
Posts: 7203
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by Koub »

I agree with Ssilk : the problem of balance between research and factory building is not a game design problem, but a gameplay style choice :
- Either you prefer to have time to make use of your research as you discover nex things, and build less labs, which in turn lets you more ressources and time to develop your factory
- Either you prefer to have all the science discovered as early as you can, and build lots of labs, which in return lets you less time and ressources to setup your factory.
- Either you prefer to balance each, and you have to learn where is the soft point for you. This soft point is different for each player - and even, given one player, on each game, because skill evolves, maps are different one from the other, ...
Koub - Please consider English is not my native language.

bobucles
Smart Inserter
Smart Inserter
Posts: 1669
Joined: Wed Jun 10, 2015 10:37 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by bobucles »

Now that research is more of a flow based system there's nothing wrong with slowing down the research speed. The flow system actually sped things up quite a bit as you get research during the entire cycle instead of at the very end. It's even possible to finish a topic in less than one cycle. Labs themselves also consume a surprisingly small amount of power making it easy to run huge numbers.

User avatar
The Phoenixian
Fast Inserter
Fast Inserter
Posts: 209
Joined: Mon May 26, 2014 4:31 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by The Phoenixian »

The problem with saying that research speed is a gameplay style choice is..

What choice do I make for sustained, high resource costs when I can only build up my base so fast?

Of course, the obvious solution to that, in my mind, isn't "decrease research efficiency" so much as "add more high cost optional technologies". Stuff like, for example, radar scanning speed 1-4, radar scanning range 1-3 , radar sight range, landmine damage1-6, landmine production efficiency, logistics robot power efficiency/storage 1-3, cannon damage 1-6, flamethrower damage 1-6, flamethrower range 1-4, grenade damage 1-3 etc.

You know, just a plethora of extra technologies that are in no way necessary to anything, but each provide some marginal advantage and all help to eat up science.
The greatest gulf that we must leap is the gulf between each other's assumptions and conceptions. To argue fairly, we must reach consensus on the meanings and values of basic principles. -Thereisnosaurus

sillyfly
Smart Inserter
Smart Inserter
Posts: 1099
Joined: Sun May 04, 2014 11:29 am
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by sillyfly »

The Phoenixian wrote:...
Yes, that would be a much simpler solution, but I think it should also include a rebalance of all early-game technologies - those especially seem to be way too cheap.

Koub
Global Moderator
Global Moderator
Posts: 7203
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by Koub »

I'm pretty sure I wrote something like that in the past year : I love the idea of that kind of small upgrades you can research at the cost of forever growing science. It would provide more variety from a game to another : one could prefer pure aggressiveness in one game, green-less polluting game for the next one, ...
Amongst the things I'd like to be able to research (some of them already exist to some extend, some other not) :
- weapon damage (+x% damage each upgrade)
- bullet turret damage (+x% damage each upgrade)
- laser turret damage (+x% damage each upgrade)
- weapon speed (+x% firing speed each upgrade)
- bullet turret speed (+x% firing speed each upgrade)
- laser turret speed (+x% firing speed each upgrade)
- solar panel efficiency (+x% power each upgrade)
- accumulator efficiency (+x% energy storage each upgrade)
- Gathering speed (+x% mining & crude oil pumping speed each upgrade)
- Energetic efficiency (-x% consumption each upgrade)
- Pollution decrease (-x% pollution emitted for each upgrade)
- Fossile fuel efficiency (+x% energy stored in fossile fuel for each upgrade)
- Assembling machine crafting speed (+x% crafting speed in assembling machines & chem plant each upgrade)
- Manual crafting speed (+x% manual crafting speed each upgrade)
- Refining speed (+x% Refinery speed each upgrade)
- Chem plant speed (+x% chemical plant each upgrade)
- Radar scanning speed (+x% scan spped each upgrade)
- Running speed (+x% running speed each upgrade)
- Light radius (+x% light radius for all light sources each upgrade)
- ...

Give each of these 20 levels of research, balance each 'x' so that it's big enough to be an incentive to do the research, but small enough not to fuck up the balance, enventually make some first levels red only or red/green or red/green/blue only researches, and after that, double the science needed to achieve the next research, and you'll have a facultative ressource sink for very long games.
Koub - Please consider English is not my native language.

mophydeen
Filter Inserter
Filter Inserter
Posts: 529
Joined: Sun Nov 22, 2015 5:02 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by mophydeen »

Koub wrote:I'm pretty sure I wrote something like that in the past year : I love the idea of that kind of small upgrades you can research at the cost of forever growing science. It would provide more variety from a game to another : one could prefer pure aggressiveness in one game, green-less polluting game for the next one, ...
Amongst the things I'd like to be able to research (some of them already exist to some extend, some other not) :
- weapon damage (+x% damage each upgrade)
- bullet turret damage (+x% damage each upgrade)
- laser turret damage (+x% damage each upgrade)
- weapon speed (+x% firing speed each upgrade)
- bullet turret speed (+x% firing speed each upgrade)
- laser turret speed (+x% firing speed each upgrade)
- solar panel efficiency (+x% power each upgrade)
- accumulator efficiency (+x% energy storage each upgrade)
- Gathering speed (+x% mining & crude oil pumping speed each upgrade)
- Energetic efficiency (-x% consumption each upgrade)
- Pollution decrease (-x% pollution emitted for each upgrade)
- Fossile fuel efficiency (+x% energy stored in fossile fuel for each upgrade)
- Assembling machine crafting speed (+x% crafting speed in assembling machines & chem plant each upgrade)
- Manual crafting speed (+x% manual crafting speed each upgrade)
- Refining speed (+x% Refinery speed each upgrade)
- Chem plant speed (+x% chemical plant each upgrade)
- Radar scanning speed (+x% scan spped each upgrade)
- Running speed (+x% running speed each upgrade)
- Light radius (+x% light radius for all light sources each upgrade)
- ...

Give each of these 20 levels of research, balance each 'x' so that it's big enough to be an incentive to do the research, but small enough not to fuck up the balance, enventually make some first levels red only or red/green or red/green/blue only researches, and after that, double the science needed to achieve the next research, and you'll have a facultative ressource sink for very long games.
- robot increase 'battery' capacity
- electric pole reach
- electric pole distance
- roboport reach
- roboport charge speed
- roboport charge positions
- concrete walking speed
- train/cargo speed
- belt/underground/splitter speed
- inserter speed
- increase space (chest, cargo wagon, ...)

Hexicube
Fast Inserter
Fast Inserter
Posts: 204
Joined: Wed Feb 24, 2016 9:50 pm
Contact:

Re: Balancing research speed - marginally decreasing lab efficiency

Post by Hexicube »

I'm on the fence for changing research speed, purely because I find myself on both sides of the issue depending on how I'm playing. I have two games:
- First game; I've automated science production and I'm burning through it all, 12 labs are burning through packs like no tomorrow
- Second game; I'm hand-crafting all of my science packs whilst watching others play on youtube so that I have all the tech ready to experiment on the peaceful settings I put in, typically no more than 3 labs run at once and without speed upgrades

Because of this, I think that any diminishing returns should have leniency, so that smaller automation systems that run 5 labs or less don't suffer from said penalty.

I also feel that this diminishing return should be exclusively speed reduction, so that you build way more labs consuming space and power. If it's done this way, you maintain the Factorio style of "expand everything for more speed" without an uncharacteristic loss of efficiency which isn't present in anything else. Nothing sucks more than planning everything out so that you produce the exact amount of science for your last research, only to find diminishing returns screwed with that and you need more.

Total labs could follow the triangular set where every time you want to go from n to n+1 speed you need another n labs, after ignoring a set number of labs (which could also get research to increase that number). The formula for that is "speed = (root(8*labs+1)-1)/2", and thus the tweaked formula is "speed = freelabs+(root(8*(labs-freelabs)+1)-1)/2" where the number of labs exceeds the number of free labs, as otherwise the formula breaks down due to a negative root (in those scenarios speed=labs). This should allow decent diminishing returns without requiring ridiculous numbers of labs to complete more intense research in a reasonable time-frame, and also doesn't impact the game earlier on where you should be churning out research regardless.

Post Reply

Return to “Balancing”