As much as I love the personal roboport to speed up basically anything remote, whether it is removing trees or laying down blueprints, I have noticed something inefficient.
My suggestion is:
"Have bots handle tasks NEAR the player before handling tasks FAR from the player".
Currently the observed behaviour is:
"Have bots handle tasks FAR from the player before handling tasks NEAR the player".
Say you have a five trees in a line you want to demolish and you have one robot in your personal roboport and you are standing next to the first tree
Code: Select all
Player - Tree 1 - Tree 2 - Tree 3 - Tree 4 - Tree 5
You mark all trees for deconstruction. Your bot from your personal roboport heads out.
Now say you have trees at distance 1, 2, 3, 4, 5 squares away.
The robot will start at distance 5, tear it down, bring back the wood.
Code: Select all
Player - Tree 1 - Tree 2 - Tree 3 - Tree 4
Then it will do distance 4, tear it down, bring back the wood. etc.
Player - Tree 1 - Tree 2 - Tree 3
etc.
Code: Select all
Player - Tree 1 - Tree 2 - Tree 3 - -
Player - Tree 1 - Tree 2 - - -
Player - Tree 1 - - - -
Player - - - - -
So when you don't move, it will travel 5+5, 4+4, 3+3, 2+2, 1+1 blocks = 30 blocks.
My suggestion is to have robots start at distance 1, tear it down, bring back the wood. Distance 2, tear it down, etc. It will travel 1+1, 2+2, 3+3, 4+4, 5+5 blocks = still 30 blocks.
Code: Select all
Player - - Tree 2 - Tree 3 - Tree 4 - Tree 5
Player - - - Tree 3 - Tree 4 - Tree 5
Player - - - - Tree 4 - Tree 5
Player - - - - - Tree 5
Player - - - - -
You might say, it is still the same distance, it does not save time. This is true, in case you are standing still.
Now say you don't want to wait for every tree your faithful bot tears down. Now you move closer to the remaining trees after each tree is removed.
In the old case it does not really matter, as you can't move closer because there is a tree in the way.
In the new case, it does matter. You now have your bot move 1 square away, tear down, bring back the wood.
Code: Select all
Player - Tree 1 - Tree 2 - Tree 3 - Tree 4 - Tree 5
Player - - Tree 2 - Tree 3 - Tree 4 - Tree 5
Then, you move one square closer.
Code: Select all
- Player - Tree 2 - Tree 3 - Tree 4 - Tree 5
Your bot moves again 1 square, etc.
Code: Select all
- Player - - Tree 3 - Tree 4 - Tree 5
- - Player - Tree 3 - Tree 4 - Tree 5
- - Player - - Tree 4 - Tree 5
- - - Player - Tree 4 - Tree 5
- - - Player - - Tree 5
- - - - Player - Tree 5
- - - - Player -
Your bot will have travelled 1+1, 1+1, 1+1, 1+1, 1+1 = 10 blocks.
That's 3 times as efficient! And this isn't even for max range, or 2D.
WHY: Basically, it's not the efficiency that I prefer, but rather the wait time when constructing/deconstruction a large patch. I have 10 bots, and they travel to get that tree at max distance even though I'm standing next to a tree that should be demolished as well. They can handle a dozen deconstructions at 1-2 range in the same time to remove that tree at max distance. It's the wait that bugs me.
Hence this suggestion. Search didn't return results for this, hence this topic.