I can't figure out, how my robots select the recharge Roboport.

Let's say i have 200 construction robots and they have to travel ~150 tiles crossing other roboports. All of them just use just the 3 closest ports to the construction area. So sometimes 20 of them wait for a free charging spot, because only 3 ports are used to recharge. I'd say it would be more efficient if some of them fly back to a more distant port to recharge.

I know i can place more ports near the construction area, but how can i figure out the range they use to recharge? Is the condition, that the recharge ports area covers the build/delivery area?

  • I suspect they just pick the nearest one, based on their position when their current charge level goes below a threshold value. For example I once tried to place a second port just next to an existing one, but in a way that increased the Distance they had to deviate from their path. It was not used at all. Apr 18 '16 at 11:03
  • when i placed 1-2 more near the one they used before, they started using also these 2.
    – Otto V.
    Apr 18 '16 at 11:04

The penalty is calculated for every roboport in the network this way:

distanceToTheRoboportInTiles * 2 +
countOfOtherRobotsWaitingToChargeThere +

The roboport with smallest penalty is chosen. This means, that for every extra tile of distance, there needs to be 2 less robots waiting for charge to make it worth to fly there. To be honest I'm not really sure if the constant of 2 is proper and we might change it in the future.

  • Thanks for the exact answer. I really like your game design in general. Yet I didn't work out a good/better formula, but I'm pretty sure it would make alot sense to use the speed and maybe capacity in the calculation, since at least the speed has in my opinion a very big impact here. Maybe the speed should be an additional factor in distanceToTheRoboportInTiles * 2.
    – Otto V.
    May 17 '16 at 9:08

For any robot, it knows each roboport's current recharge queue and distance. From that:

<distance to different roboport in tiles> / <queue size of robots waiting> -> min

See: Choosing the post for charging

  • but is it really more efficient to wait for 20 robots instead of flying 10 more tiles?
    – Otto V.
    Apr 18 '16 at 11:17
  • I guess devs optimized this it's based on flight time/recharge time numbers. Also we should account that some other robots could attempt to fly that way if the delta-in-queue is made smaller and thus increase the queue by much Apr 18 '16 at 11:26
  • but if only these 2 numbers are taken, the speed of the robots is ignored, which would make a big difference.
    – Otto V.
    Apr 18 '16 at 11:27
  • I think this is the case and can add from experience that bots do tend to pile up near one port. I suspect the figures do not account for Logistic Robot Speed research Apr 18 '16 at 11:32
  • well it's still early acces version. maybe the dev will read this. i know he is also active here on stackexchange :P
    – Otto V.
    Apr 18 '16 at 11:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.