TL;DR: I calculated it through and found my error. You're right: increasing the stacksize for that would help.
Longer explanation:
SirRichie wrote:ssilk wrote:and that there is basically no difference if you do a job 5 times faster, because it helps a bit, but is still too slow. It needs to grow "somehow logarithmic" instead of "somehow quadratic".
I really think it makes a huge difference. Taking 12 minutes instead of 60 is a huge difference for me. Also, what do you say grows quadratically?
Hum.
When I thought about it I saw, that theoretical you must be right: It's just linear.
But why do I feel, that the growth is quadratic? (You must know, that it is a very big part of my job to find performance issues. So I can say that: If I feel it is quadratic growth, then it is not just a feeling, it's based on my experience.)
I thought a lot about it this morning and here are my results: The growth is not really quadratic, but also not really linear. The reasons are
- with a a growing base the area grows quadratic to the perimeter. I mean: With a growing base a player needs to pave more and more area, if he wants to keep all paved -> quadratic growth
- the distance to the area, that needs to be paved grows linearly with an increasing factory -> linear growth
- upwards from a minimal distance to that area (if the factory gets bigger than some special size) the bots need to reload regulary -> linear growth
- with the distance the number of bots needs to raise. More bots, less time. -> linear deduction
So. When I thought about it here I thought: O. K. This is not really quadratic growth. Only the first point, but that depends on the players behavior and is not a game issue itself and that was for MY playing not the case. [I tested that very thoroughly: If you make equal areas and waited, until it is paved the next area in the same distance doesn't need longer. That was the point, where I suggested this
https://forums.factorio.com/forum/vie ... 10#p109401 ]
Did I be really wrong? My feeling says it is non-linear but there is no obvious quadratic relativity to the distance here.
I came to the conclusion, that my feelings wheren't wrong. And so I continued to search.
The key-idea for me was, the last point: With the distance we need more and more bots. More bots in the logistic network hit a very special problem, because with the number of bots the chance rises, that a bot needs to wait before recharge.
I researched this behavior also very thoroughly - longer time ago, see down for more (*).
I don't want to write everything down now. Everybody has seen such situations: robots queue at one roboport, eventually begin to go to other roboports. Everything is queued. The robots begin to discharge completely and take much longer to recharge.
To make long things short, this adds
chaotic growth!
I mean: the recharging works linearly up to a limit of X bots per second per roboport (the distance plays also a bit of rule), after that the waiting time/queue length rises eventual to minutes or even endless (the queue never releases any more). That it cannot resolve from this state has many reasons, for example that with the growing queue, the robots need more power and need longer for recharging. It depends on the number of bots and roboports and the amount of transport-work, not the distance. Sometimes one roboport more can release a situation, sometimes not, it depends on many factors.
What I saw feel, that it takes longer and longer was in truth the waiting time for the recharge.
ssilk wrote:The logical conclusion is: we need to decrease the travel-time, and not increase the amount of transported items.
I do not get that. You say that making the placing of items 5 times faster (due to the stack size) does not really solve the problem, because it is a constant divider. But you suggest increasing the travel speed, by... say... a factor of 5. So again you'd make things 5 times faster, resulting in the exact same time benefit.
Where is the difference?
O. K. I meant with reducing the distance not to increase the travel speed. I meant really reducing the distances. There are enough ideas here:
- Say we have a "Zeppelin" (or a BIG TRANSPORT ROBOT, flying roboports or an UFO, or some other big flying object with much area), that brings the the needed things to the center of a destination area, that would radically reduce the distances.
- The mentioned thread brought in the idea of rockets, that sends stacks of items to the center of the building area by rockets.
But with my knowledge I learned now above, it is so, that indeed an increase of the stacksize would have the effect that you need not only 5 times less distance, but
also 5 times less robots.
And that is the point! With 5 time less robots that idea will work, because with 5 times less bots you have a 5 times lower impact to the rechargers. And as I shown above: that will reduce the chance to behave chaotic
drastically
--------------------------------
OFF-TOPIC
(*)
To explain that I need to introduce now some terms:
- transport-work: Item I needs to be transported to a point with distance D. Transport work is then I * D. Example: 1000 concrete tiles needs to be transportet 100 tiles. Transport work is 1000 * 100 = 100000 itemtiles.
- queue-waiting time or queue-length: The time a robot needs to wait before recharge
- charges per second: average charges of a roboport per second
- average recharge-distance: Distance a robot needs to travel before he can recharge
The rest can then be drawd on a paper. The result will look about so:
Code: Select all
^
| . . . . <- non-resolving queue
t | # # # # # # # # #
i 1000| # # # # # # # # #
m | # chaotic area #
e | # # # # # # # # #
100| # # # # # # # # # <- longer queues on roboports
s | #
e | . . .
c 10| . . . <- more or less linear growth
|. . .
-+-------------------------------------------------------------->
transport-work
That is for example a network with 1000 bots. The interesting part is, where the chaotic area in this diagram begins: That is when I "feel" it behaves quadratic.
For 200 bots (5 times less) it will not happen:
Code: Select all
^
|
t |
i10000|
m |
e | . . . . . . . . .
1000| . . . . . .
s | . . . .
e | . . .
c 100| . . .
|. . .
-+-------------------------------------------------------------->
transport-work
Everything lasts of course much longer, but it behaves more or less linearly.