Factorio

Factorio

View Stats:
Hedning Apr 25, 2023 @ 1:50am
Bots are stupid, and roboports too.
So these bots decided to not charge on the way to their destination, or rather they went to charge at the far away roboports close to their construction site: https://steamcommunity.com/sharedfiles/filedetails/?id=2966997844 (they are flying from my base off screen south west to the wall construction on the narrow land bridge to the east and are low on power and have been for a while, but are not charging on the ports they are flying over or near.)

My best guess for the reason is that a roboport linking the two sections were placed before a power pole*, connecting the grids so the robots got their orders, but then lost power so that when the robots were looking at a place to recharge they could only search for that far away grid.

*Roboports when placed can connect without power, but only for a short while. I don't understand why they were programmed this way. They shouldn't connect if they don't have access to power.

Of course correct me if you know another reason for this behavior.
Last edited by Hedning; Apr 25, 2023 @ 3:44am
< >
Showing 1-15 of 38 comments
Chindraba Apr 25, 2023 @ 2:16am 
The connect without power is because they come "with batteries included." When first place a roboport's storage capacity is filled - they are ready to recharge bots as soon as they land. As a consequence they also "connect" to the network if there is one available then also.
If you take the time to watch them with another roboport in the cursor, you'll see the network coloring expand when you place the roboport, then a short while later the network colors will go away again. The roboport will have the unplugged icon flashing. When you add electric to the roboport the unplugged icon will go away and the red low-power icon will come on. That won't leave until the roboport is fully recharged.
The internal buffer is 5MW, if you get technically minded.
As to the exact situation you encountered, I couldn't say what's happened from a still shot. I can tell you what happens though. When the robot gets it orders it will make a straight line from where it is to where it's supposed to go (the construction site, or the chest to get something to carry). When it gets low enough on power it will switch to a straight line from there (the instant there, not the starting there) to the nearest recharge port. (If things get busy it will sometimes pick the next, almost nearest, based on some math about the number already waiting for a recharge.) After the recharge, or after loading from a chest, it makes another straight line to the destination. Rinse and repeat.
If the bots launched from the far northwest ports and the line was much longer east, but the same distance south, you could watch the bots fly a saw tooth pattern all the way down the northern line as they moved east. The only time the newly placed, and soon "gone" roboport will matter is when it happens to be the nearest recharge at the same time the bots need a charge. And, even then it also has to have joined, even temporarily, the same network the bots started in.
ShutEye_DK Apr 25, 2023 @ 3:32am 
Originally posted by Chindraba:
...
The internal buffer is 5MW, if you get technically minded.
...
Not W(att). Joule.
They come with 10MJ when you plop them, I believe (200 secs @ 50kW discharge).
Internal buffer is 100MJ.
Hedning Apr 25, 2023 @ 3:43am 
Originally posted by Chindraba:
The connect without power is because they come "with batteries included."
Yes, but why did they make it that way? Surely they had some benefit in mind and it wasn't just to troll us by making bots have temporary connections that then get disconnected?

Originally posted by Chindraba:
As to the exact situation you encountered, I couldn't say what's happened from a still shot.
they are flying from my base off screen south west to the wall construction on the narrow land bridge to the east

They are low on power and have been for a while, but are not charging on the ports they are flying over or near. Instead they are going to recharge at the 3 roboports near the wall.
Last edited by Hedning; Apr 25, 2023 @ 3:48am
knighttemplar1960 Apr 25, 2023 @ 4:43am 
From my observations:

When you have the bot icons enabled on the minimap the bots that are active and in network are white. Bots that are orphaned from their network (by picking up their roboport while they are out of the port and in motion) display a yellow icon.

When the bots are orphaned they head to the nearest network that is currently in existence even if there isn't room for them in the roboports. If that network disappears before they arrive they will divert to the next nearest network and so on.

I suspect the reason that the roboports start charged is so that you can tell where the dashed yellow connection lines will be when its placed (saving you from having to guess or pick up and replace either roboports or power poles after they are placed). Those lines don't show up on your map if all the nearby roboports are out of range or out of power.
Hedning Apr 25, 2023 @ 4:58am 
Originally posted by knighttemplar1960:
When you have the bot icons enabled on the minimap the bots that are active and in network are white. Bots that are orphaned from their network (by picking up their roboport while they are out of the port and in motion) display a yellow icon.

No, the color coding is the type. Yellow are construction and white are logistics.
I think also personal are green and spidertron are blue.

Originally posted by knighttemplar1960:
I suspect the reason that the roboports start charged is so that you can tell where the dashed yellow connection lines will be when its placed (saving you from having to guess or pick up and replace either roboports or power poles after they are placed). Those lines don't show up on your map if all the nearby roboports are out of range or out of power.
Ok, I guess that makes sense as a quick and dirty solution. Doesn't help me when placing ghosts though, so you'd think they'd make a proper UI for it.
kremlin Apr 25, 2023 @ 3:58pm 
It's probably a necessary detail to make placing blueprints that contain them work right, allowing them to chain together and expand the effective build area to the new portion of the blueprint.
Нагризолич Apr 25, 2023 @ 5:43pm 
Bots are UPS-efficient, that's why they do that.
Hedning Apr 26, 2023 @ 12:58am 
Originally posted by Нагризолич:
Bots are UPS-efficient, that's why they do that.
Yes, it is good that bots are stupid, but roboports could be improved so that things like this doesn't happen.

Also maybe bots could be allowed to charge at any roboport, not just those in their network.
Last edited by Hedning; Apr 26, 2023 @ 1:01am
GunRunner89X Apr 26, 2023 @ 7:32am 
Originally posted by Hedning:
Originally posted by Нагризолич:
Bots are UPS-efficient, that's why they do that.
Also maybe bots could be allowed to charge at any roboport, not just those in their network.

.....

If a Roboport isn't in their network, they can't get to it..... Keeping separate networks can be useful FYI.
Last edited by GunRunner89X; Apr 26, 2023 @ 7:33am
sirphoboseus May 19, 2023 @ 10:51pm 
i was disappointed that the robots were able to fly outside of the roboport green zone. many glitches occured because of this where robots were stuck in limbo halfway across my base instead of travelling the path of orange/green <3
RiO May 20, 2023 @ 2:38am 
Originally posted by Hedning:
Originally posted by Chindraba:
The connect without power is because they come "with batteries included."
Yes, but why did they make it that way? Surely they had some benefit in mind and it wasn't just to troll us by making bots have temporary connections that then get disconnected?

It was precisely to prevent temporary connections that then get disconnected.
Bot networks aren't exactly cheap to compute. Specifically: the mesh of how roboports form networks; which cluster of ports represents an isolated network; which bots belong to which network; which chests belong to which network; etc.
I.e. the topology of the network.

If the game would place roboports with an empty initial charge in a situation where you're using robots to mass-expand in a huge factory, then you'd run into the situation where a roboport is placed; slightly charges and becomes part of the network topology; immediately gets swarmed by a mass of bots that drain its power and knock it back offline; take it out of the topology; wait for it to recharge a little bit again; it has to become part of the topology again; gets a stampede of bots again; it gets knocked out and taken out of the topology again; etc.

Now, do that times 50 or whatever amount of roboports you end up mass-placing during a huge expansion operation. Any change in the topology is expensive to compute; so it will absolutely cripple your FPS/UPS.

So an initial power charge is added there to prevent the oscillation and try to stabilize the situation.

Originally posted by Нагризолич:
Bots are UPS-efficient, that's why they do that.
They aren't. Buck for buck given the same level of throughput to meet, bots are the most taxing on UPS. Trains (and direct-to-train manufacturing) are cheapest; then comes belts (ever since they started taking advantage of parallel computing); and then come bots.

They are dumbed down and use very, very basic operating procedures in an effort to keep them at a manageable cost. Making them any more intelligent would make them even less efficient to compute than they already are.
Last edited by RiO; May 20, 2023 @ 2:45am
Hedning May 20, 2023 @ 3:21am 
Originally posted by RiO:
If the game would place roboports with an empty initial charge in a situation where you're using robots to mass-expand in a huge factory, then you'd run into the situation where a roboport is placed; slightly charges and becomes part of the network topology; immediately gets swarmed by a mass of bots that drain its power and knock it back offline; take it out of the topology; wait for it to recharge a little bit again; it has to become part of the topology again; gets a stampede of bots again; it gets knocked out and taken out of the topology again; etc.

Now, do that times 50 or whatever amount of roboports you end up mass-placing during a huge expansion operation. Any change in the topology is expensive to compute; so it will absolutely cripple your FPS/UPS.

So an initial power charge is added there to prevent the oscillation and try to stabilize the situation.
I don't believe that is real. A roboport which is connected to power will never drain. I have never seen it. Even with 4 robots constantly charging the roboport will gain buffer. Even if this wasn't the case and the problem you are describing is real, the solution is to make the roboport charge faster than it is discharging to the robots. It avoids the oscillation and the temporary connection.

Originally posted by RiO:
Originally posted by Нагризолич:
Bots are UPS-efficient, that's why they do that.
They aren't. Buck for buck given the same level of throughput to meet, bots are the most taxing on UPS.
I think he meant in an absolute sense, ie you can have lots of bots without dropping frame rate.
Last edited by Hedning; May 20, 2023 @ 3:21am
RiO May 20, 2023 @ 5:46am 
Originally posted by Hedning:
Originally posted by RiO:
If the game would place roboports with an empty initial charge in a situation where you're using robots to mass-expand in a huge factory, then you'd run into the situation where a roboport is placed; slightly charges and becomes part of the network topology; immediately gets swarmed by a mass of bots that drain its power and knock it back offline; take it out of the topology; wait for it to recharge a little bit again; it has to become part of the topology again; gets a stampede of bots again; it gets knocked out and taken out of the topology again; etc.

Now, do that times 50 or whatever amount of roboports you end up mass-placing during a huge expansion operation. Any change in the topology is expensive to compute; so it will absolutely cripple your FPS/UPS.

So an initial power charge is added there to prevent the oscillation and try to stabilize the situation.
I don't believe that is real. A roboport which is connected to power will never drain. I have never seen it. Even with 4 robots constantly charging the roboport will gain buffer. Even if this wasn't the case and the problem you are describing is real, the solution is to make the roboport charge faster than it is discharging to the robots. It avoids the oscillation and the temporary connection.
Hey; I'm just giving what afaik is the official line on it. It had to do with roboports being hammered and blinking in and out of existence while mass-building. Possibly; brownouts (due to power spikes while bringing online massive amounts of roboports charging all at once?) were involved in that as well. How do roboports behave when they're connected to a power grid, but the grid actually doesn't have power?

Originally posted by Hedning:
Originally posted by RiO:
They aren't. Buck for buck given the same level of throughput to meet, bots are the most taxing on UPS.
I think he meant in an absolute sense, ie you can have lots of bots without dropping frame rate.

You really can't. Around 10,000 bots in any considerably sized network and you'll start noticing. Assuming a decent flight speed, average distance and taking into account carry capacity upgrades, that probably works out to < 1,000 items p/sec Less than 23 express (i.e. blue) belts worth of capacity.

The only situation warranting bots is where you're condensing a lot of one-off recipes running in single machines into a tight enclosed space where so many ingredients become involved that routing belts becomes impractical or intractable.
I.e. in malls - or hubs, if you prefer contemporary Nilausian terminology.
Last edited by RiO; May 20, 2023 @ 5:49am
Hedning May 20, 2023 @ 6:17am 
Originally posted by RiO:
Hey; I'm just giving what afaik is the official line on it. It had to do with roboports being hammered and blinking in and out of existence while mass-building. Possibly; brownouts (due to power spikes while bringing online massive amounts of roboports charging all at once?) were involved in that as well. How do roboports behave when they're connected to a power grid, but the grid actually doesn't have power?
If you are low on power; starting with a small buffer won't help at all. The earlier explanation about the UI made a lot more sense, even though I think that was a bad reason too.

Originally posted by RiO:
Around 10,000 bots in any considerably sized network and you'll start noticing. Assuming a decent flight speed, average distance and taking into account carry capacity upgrades, that probably works out to < 1,000 items p/sec Less than 23 express (i.e. blue) belts worth of capacity.
You're still comparing it to other transportation methods. I said in an absolute sense. I think 10k units moving around is a lot. What other games can handle that? Even a game like cities skylines can only handle around that amount of vehicles before they start despawning, and traffic is all that game is about.
Chindraba May 20, 2023 @ 8:36am 
I don't recall reading in an official, canonical, or semi-official posting, or anywhere actually, a reference to the reasoning for having roboports start with any charge. Of course, I've never looked for such, and likely would've forgotten, as unimportant, any references if I did "read" them at some point. With so many things to learn and remember about this adventure, my mind does some kind of automatic weighting system and some facts take a few exposures before they actually "exist" in my memory. That isn't the same as saying such a statement is nonexistent, merely outside my ken.

That aside, in the game's development and current operations, there seem to be very few items in vanilla which "land" with the ability to begin work independently of a power source. The only other one which comes to mind is the burner inserter. That this particular situation occurs when it is not the "normal" process implies that it has been coded explicitly, and deliberately. The extra work involved in creating special code for a single purpose exception is no light burden, and not a design choice made on a whim. I'm left with the conclusion that, while I have no clue what it is, the decision, and code, solve some problem relative to the game. It might be a performance issue, or even to avoid a seeming bug in behavior. I just don't know. That there is a reason is not something I doubt. The quality of that reason is debatable, as is any other decision. Unfortunately without knowing the problem solved, the other possible solutions to that problem, and the game and developer costs or effects of each option, there's no way to debate the decision's quality. When the decisions are made by a team with a proven track record of extreme optimization and fixing four-9's level bugs, I'm inclined to trust that team's design choices for the code, and for dealing with problems in the usage of the game.

Having the opinion that you don't like how it works, and/or that you would have done something differently is actually a valid thing. There's been a few cases I've had similar thoughts, including the idea that robots should be able to recharge at "any port in a storm". Okay, keep the networks disjointed, so the bots cannot land there, or access any of the jobs or chests in the zone, but they can still get power. A thirsty man in the desert deserves a glass of water, even if he can't come in, join the table for lunch, or spend the night resting. (That's actually the law in Phoenix, Arizona - might be state law, but not exactly sure which jurisdiction created it.)

The real question remains: why is it this way? The only "real" answer has to come from the ones who made the choice, and near as I can tell, they don't come to this watering hole no more. A lively discussion can be had, for sure, and entertainment as well, by having it here. Answers, however, are mostly speculation, perhaps with some hearsay official reasoning available.

More productive would be to learn the in-game effects, and side effects, and how to use, exploit, or avoid those effects, and how to compensate for them when they happen.

Originally posted by Hedning:
You're still comparing it to other transportation methods. I said in an absolute sense. I think 10k units moving around is a lot. What other games can handle that? Even a game like cities skylines can only handle around that amount of vehicles before they start despawning, and traffic is all that game is about.

Well, I'm inclined to also compare them to other transportation methods. What other purpose in the game do they replace, and therefore compare to? Yes, 10K units is a large number of units to track. At one point I was discussing the progress of my construction, in a different channel, while having in excess of 40K bots doing construction from within one network. In a similar vein, I can only guess how many entities are on my last game's map, but I'm sure it's well within the upper 6-digit range. Sure, I'm loosing FPS/UPS, but none of the issues you suggest, or report, with the other game at the low 5-digit range. Another reason I've willing to give the devs a "pass" on design choices I would otherwise question strongly.

Similarly, in an "absolute sense" I can think of no better way to compare things than with pure numbers. I pulled up my last game, with around 24k inserters, and added a bot network with some construction work. I got around 1K in the air at any given time. The debugging numbers are here to see. The 1K bots have ~10x the update time as the 24K inserters.
https://steamcommunity.com/sharedfiles/filedetails/?id=2978296820
I'm going to have to place them in the UPS-unfriendly category.
< >
Showing 1-15 of 38 comments
Per page: 1530 50

Date Posted: Apr 25, 2023 @ 1:50am
Posts: 38