The thing is, this is precisely the aspect of logistics performance which falls upon the player to manage. In a giant network you have anything you could possibly desire available for delivery, but there can be high latency if that thing is not nearby (and even higher if there are also no bots near it). The idea behind splitting the network is that you can control exactly what items are available, and so long as you keep the network reasonably sized the delay in delivery should be low. How you get things into the partitioned network is up to you. I'm not saying that there is no usefulness to your suggestion (or even that I have totally solved this problem myself) but that it eliminates a trade off in how you manage your network construction. And in a game where there are always more resources to be had, there are only trade offs, not absolute "correct" and "incorrect" designs.bobingabout wrote:See... one of the issue with splitting the network is that... how do you get the supplies needed for repair to the robots in the first place? one big network means that everything is somewhere in the network, even if it isn't at hand. If a robot needs to grab a repair pack... well, currently, the nearest construction robot could be anywhere in the network, with my suggestion the nearest robot would be... in the roboport nearest the chest with the pack in it.
I'm aware that sometimes my thoughts come out in a bit of a jumble, and my posts usually end up much longer than intended, but if you bear with me I think you will see the value in my solution. Again, there are limitations, but it's possible to manage the logistics network much more precisely than I have seen anyone else do despite quite a lot of searching for information about how to do so.
Suppose I wanted to create a large, self constructing, solar array; but that I don't want it to overload my network while being constructed. Hypothetically, one unit of such an array might look something like this: http://i.imgur.com/WTYCU6O.png (at 0.1 zoom).
Because I'm still pretty bad at this game, there are several things I didn't account for, like electric poles linking between units, and roboports being too far away to self-construct. So I just placed the roboports/large electric poles manually, and they aren't supplied automatically. But let's pretend just for the sake of discussion that I know what I'm doing.
All of the supplies needed to build this array (including robots!) can be supplied by the main network using just a requester, a provider, and an inserter for each resource (I don't fully understand what is trying to be accomplished by the belt interface but I think it's overengineered). Multiple resources per chest can likely be accomplished with circuit logic, but I haven't gotten to messing around with that yet -- so far I'm at the stage of 'simple but effective.' The interface looks like this: http://i.imgur.com/Dt3D04z.png -- the chest on the right is just storage -> active provider, to drain whatever bots had to pick up during construction, as well as excess construction bots when the job is finished. I did not limit the provider chests except for the bots (which both accept only one stack), so there will be a good sized stockpile available should I choose to expand in the future. In addition, the rate at which goods are made available to the network depends on the request size and inserter used, allowing me to decide how much to prioritize this construction.In my blueprint, all the roboports empty into active providers. After placing, I manually remove the one on the roboport nearest the provider chests, and add a requester for each type of bot. The inserters read bot statistics and insert if available count falls below a threshold.
Roboport setup
After placing two units of this blueprint, I dropped a few logistics bots in the network (I think I did 12 -- it wasn't a precise thing) and I started writing this post. When I went back to the game to grab more screenshots, construction had finished: http://i.imgur.com/ifmK6G6.png (note the bot count). Fluctuating bot count
The logbots are really only there to bring other bots in and out, which is why I had inserter set to 5. But if you notice count in finished picture it ended up at ~50. This is because they always delivered to either the "loading" roboport or the storage chest by it, and so just docked again. If this were crucial, I could always just add an inserter to an active provider which activates if X > 25 (or whatever number). But the point is, bots are stupid -- they will always dock at the nearest port to their last delivery. By observing where bots end up pooling, and adding drains as necessary, you can manage bot distribution within the current constraints of the game.Now this usage is kinda cool but not totally relevant to your filter suggestion -- except that it is the same. Case in point, I obviously I had quite a few bots from my main network flying to the interface of these two. To prevent a huge number of bots accumulating here for no reason, I added a 'drain' to the closest roboport. After bots delivered solar panels, etc. they went to dock at the nearest port, which was kept empty (and thus available for docking) by my new drain: http://i.imgur.com/jPQRFmY.png. Obviously it's not actually totally necessary to partition a network just for solar panels, but it did keep congestion/energy cost down by using logistic stack bonus to bring supplies near, and using construction bots only within the new network.
Much of the difficulty in distributing bots efficiently comes not from the game mechanics but from the nature of the problem. The particular distribution of bots which will be best for your network depends entirely on how you choose to construct it and what you choose to transport with it and where you choose to send it and in what quantities. A blueprinted filter setting will not give you an optimal bot distribution unless you have a uniform distribution of requests/deliveries -- which you quite obviously do not because you say your bots are pooling. So even with filters you will find yourself running from port to port tweaking individual settings, which is more micromanagement than I think anyone wants.
I haven't totally gotten rid of pooling in my network either, but I've been trying different methods of reducing it without having to empty every single port into a provider. Some pooling in busy areas is desirable. But strategic placement of "managed" roboports is imo at least as good as filters in managing bot distribution. But they leave much of the process up to the player. You say bots will leave ports that have extras, but how many bots is 'extra?' Do you truly need the same number of bots in all locations or do you have some places that have high turnover (train station) and some that only supply goods (manufacturing area) and some that only receive them (defense network, etc.)? Then there are different ways of moving bots from one network for another. One network could request bots to put on a train and redistribute to other networks, which then bring various goods back to a centralized storage location. Or your train station could receive extra bots when there's a surge of trains, then send them down a belt with ore to be sorted when things slow down (I do this in my factory -- not that it accomplishes anything special, I was just experimenting).
I apologize for writing another novel -- believe it or not I could've included much more info (and I intend to write another reply soon showing one of these 'possibilities').
tl;dr: optimizing bot distribution requires reasoning about where bots will end up based on how you choose to use them -- regardless of the mechanism by which they are distributed. Making redistribution part of internal bot logic will actually reduce player control. The central idea behind bots, to me, is that you cannot control where they go but you can control where they are allowed to stay. That being said, it would be nice if there were options beyond having a port 'empty' or 'full' in a large network. The best workaround I have for having keeping some bots so far is two roboports -- one will fill, at which point bots will start docking in the next one, which gets emptied.