Personal robots prioritizing nearest first

Post your ideas and suggestions how to improve the game.
Post Reply
BrickNukem
Burner Inserter
Burner Inserter
Posts: 12
Joined: Wed Jun 07, 2017 10:05 am
Contact:

Personal robots prioritizing nearest first

Post by BrickNukem » Wed Jun 07, 2017 11:06 am

TL;DR
(De)construct dense areas faster by having personal robots do the closest thing first, since you can then move around and keep flight distances short.

What ?
Construction bots from your personal roboports have a clumsy order in which they select construction tasks. This causes long flight times. For deconstruction, you can do better by deconstructing small patches and moving around, thereby keeping the flight distances short. A quick demonstration (gfycat cut off the video though):


(takes about 40 seconds)


(takes about 20 seconds)
Why ?
The shown work-around only works for deconstruction. As shown, nearest-first can save a lot of time in late game situations. It's not a big issue at all, but this game is about effective laziness, right?
Last edited by BrickNukem on Mon Jun 12, 2017 9:21 am, edited 1 time in total.

User avatar
Factory Lobster
Long Handed Inserter
Long Handed Inserter
Posts: 77
Joined: Mon Jun 05, 2017 4:23 pm
Contact:

Re: Personal robots prioritize nearest first

Post by Factory Lobster » Wed Jun 07, 2017 1:32 pm

This could possibly be implemented as yet another thing to research in the tech tree...

Terukio
Long Handed Inserter
Long Handed Inserter
Posts: 65
Joined: Mon Mar 21, 2016 11:30 pm
Contact:

Re: Personal robots prioritize nearest first

Post by Terukio » Wed Jun 07, 2017 1:34 pm

Love this! Especially with many roboports your range can get very large, nearest first seems like a nobrainer as opposed to what appears to be random. In such a deterministic game, would make sense to be able to predict your own bot movement.


Manron
Inserter
Inserter
Posts: 39
Joined: Mon Apr 11, 2016 5:21 pm
Contact:

Re: Personal robots prioritize nearest first

Post by Manron » Wed Jun 07, 2017 3:43 pm

i guess it is the way it is for performance reasons.

calculating which entity is currently 'nearest' has to be calculated every time a single entity is removed or you move.

i dont think the QOL improvement would justify the performance hit.

But maybe i'm wrong here, who knows but the devs.

User avatar
Factory Lobster
Long Handed Inserter
Long Handed Inserter
Posts: 77
Joined: Mon Jun 05, 2017 4:23 pm
Contact:

Re: Personal robots prioritize nearest first

Post by Factory Lobster » Wed Jun 07, 2017 3:59 pm

Seems like it would be a simple sorting problem. If the sorting eats up processing power then the max selectable area could be decreased.

malventano
Fast Inserter
Fast Inserter
Posts: 240
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: Personal robots prioritize nearest first

Post by malventano » Wed Jun 07, 2017 4:05 pm

Uhm, no. It is faster in your second example because you are walking around the area, meaning all robots are moving less total distance to achieve the same deconstruction. If you remain in the center without moving and choose the same sequence of individual areas that you did in the second video, it takes the same (longer) amount of time.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

User avatar
Factory Lobster
Long Handed Inserter
Long Handed Inserter
Posts: 77
Joined: Mon Jun 05, 2017 4:23 pm
Contact:

Re: Personal robots prioritize nearest first

Post by Factory Lobster » Wed Jun 07, 2017 4:09 pm

malventano wrote:It is faster in your second example because you are walking around the area, meaning all robots are moving less total distance to achieve the same deconstruction.
I think that is exactly his point. If the larger area automatically started deconstructing the immediate area around the avatar, then he could at least move around while the bots did their thing and the whole process would take less time.

mp0011
Fast Inserter
Fast Inserter
Posts: 216
Joined: Mon Mar 20, 2017 1:17 am
Contact:

Re: Personal robots prioritize nearest first

Post by mp0011 » Wed Jun 07, 2017 4:17 pm

Simplest solution: User controlled construction zone size. With ctrl-scroll.
User reduce zone size, and bots works exactly as in lower example.

User avatar
Factory Lobster
Long Handed Inserter
Long Handed Inserter
Posts: 77
Joined: Mon Jun 05, 2017 4:23 pm
Contact:

Re: Personal robots prioritize nearest first

Post by Factory Lobster » Wed Jun 07, 2017 4:21 pm

mp0011 wrote:Simplest solution: User controlled construction zone size. With ctrl-scroll.
User reduce zone size, and bots works exactly as in lower example.
Or bots focus on a certain area around the mouse cursor, as long as it is within the selected work area. If outside, then it switches to its default deconstruction code, whatever that is.

mophydeen
Filter Inserter
Filter Inserter
Posts: 529
Joined: Sun Nov 22, 2015 5:02 pm
Contact:

Re: Personal robots prioritize nearest first

Post by mophydeen » Wed Jun 07, 2017 4:33 pm

Factory Lobster wrote:
mp0011 wrote:Simplest solution: User controlled construction zone size. With ctrl-scroll.
User reduce zone size, and bots works exactly as in lower example.
Or bots focus on a certain area around the mouse cursor, as long as it is within the selected work area. If outside, then it switches to its default deconstruction code, whatever that is.
this will be messy because you move your cursor around a lot. better to use the character position.

malventano
Fast Inserter
Fast Inserter
Posts: 240
Joined: Thu Apr 27, 2017 4:31 pm
Contact:

Re: Personal robots prioritize nearest first

Post by malventano » Wed Jun 07, 2017 4:33 pm

Factory Lobster wrote:
malventano wrote:It is faster in your second example because you are walking around the area, meaning all robots are moving less total distance to achieve the same deconstruction.
I think that is exactly his point. If the larger area automatically started deconstructing the immediate area around the avatar, then he could at least move around while the bots did their thing and the whole process would take less time.
Agree there. If the player is willing to walk around during the process, that would speed things up.
Allyn Malventano
---
Want to improve fluid flow between pumps / across longer distances? Try my Manifolds mod.

BrickNukem
Burner Inserter
Burner Inserter
Posts: 12
Joined: Wed Jun 07, 2017 10:05 am
Contact:

Re: Personal robots prioritize nearest first

Post by BrickNukem » Wed Jun 07, 2017 5:02 pm

Manron wrote:i guess it is the way it is for performance reasons. [...]
I understand that, but in this case it's trading cpu time for *my* time, so it's worth it to me!

User avatar
<NO_NAME>
Fast Inserter
Fast Inserter
Posts: 237
Joined: Tue Aug 02, 2016 9:52 am
Contact:

Re: Personal robots prioritize nearest first

Post by <NO_NAME> » Wed Jun 07, 2017 5:13 pm

Manron wrote:i guess it is the way it is for performance reasons.
This could be a problem with stationary logistic site, but personal roboports don't cover that much ground. It should be possible.
mp0011 wrote:Simplest solution: User controlled construction zone size. With ctrl-scroll.
User reduce zone size, and bots works exactly as in lower example.
Maybe even better idea. In addition, when you reduce the area to zero, other players won't be able to troll your robots.
I am a translator. And what you did for Factorio?
Check out my mod "Realistic Ores" and my other mods!

Hannu
Filter Inserter
Filter Inserter
Posts: 619
Joined: Thu Apr 28, 2016 6:27 am
Contact:

Re: Personal robots prioritize nearest first

Post by Hannu » Thu Jun 08, 2017 5:31 am

mophydeen wrote:rather than see this as a suggestion. I'd say it's currently a bug that should be fixed.
This has been suggested many times.

It would not affect performance if only personal bots would seek the nearest target (and also have priority). There are typically far less than 100 personal bots and their searching area is few chunks. It seems that performance hit is common excuse for devs not to do things they do not want to do for some reason. In many cases it would be possible to decrease number of entities (like bots or biters) very significantly and therefore also save CPU time and get more effective and interesting results if they were a little bit more "intelligent".

Maybe there should be 2 separate bot types. Current bots would be simple stupid mass bots for megabases which uses 10000 of them for high volume sorting and transport tasks and there would be more intelligent types for personal building and complex small volume transportations. They could be more expensive and not get cargo bonuses so that there would not be incentive to use massive numbers of them.

Rseding91
Factorio Staff
Factorio Staff
Posts: 8846
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Personal robots prioritize nearest first

Post by Rseding91 » Thu Jun 08, 2017 5:38 am

Hannu wrote:It would not affect performance if only personal bots would seek the nearest target (and also have priority).
Yes it would. A thing to work on finds a robot not the other way around.
If you want to get ahold of me I'm almost always on Discord.

PacifyerGrey
Smart Inserter
Smart Inserter
Posts: 1011
Joined: Wed Jun 29, 2016 10:02 am
Contact:

Re: Personal robots prioritize nearest first

Post by PacifyerGrey » Thu Jun 08, 2017 6:57 am

Rseding91 wrote:
Hannu wrote:It would not affect performance if only personal bots would seek the nearest target (and also have priority).
Yes it would. A thing to work on finds a robot not the other way around.
But when you queue up "things to work on" maybe there is a way to put those things in it in a certain order? So you could possibly form up this queue based on certain logic. For example when player wants to deconstruct stuff objects could be queued based on a distance from a player. However this order would remain if a player moves...

Or those things are processed every tick and just cycle through factory objects?

Hannu
Filter Inserter
Filter Inserter
Posts: 619
Joined: Thu Apr 28, 2016 6:27 am
Contact:

Re: Personal robots prioritize nearest first

Post by Hannu » Thu Jun 08, 2017 8:06 am

Rseding91 wrote:
Hannu wrote:It would not affect performance if only personal bots would seek the nearest target (and also have priority).
Yes it would. A thing to work on finds a robot not the other way around.
It is just a stupid way to program this kind of thing. Or at least optimizing of some special thing at the price of poor performance in all other tasks. This leads also to situations in which I have tens of robots in my roboport but have to put one power pole manually in blueprinted construcion because it has been assigned to a robot which is out of the power 5 km away because it decided to fix something when I traveled by train.

I understand that you may not want to change it for business reasons. In such case I would appreciate that you would told it and stop requests to change it.

If there were separate "smart bots" for personal roboports, they could behave so that free robot would seek work. If there were be 100 bots and 200 entities in construction area, calculating of distances would take few microseconds but it could save me hours of work in large base. 60 UPS in every situation is not the most important thing in entertaining gaming experience. Avoiding of boring player labor is much more important, at least in my opinion. There should be at least options to minimize player's waiting time instead of maximizing UPS when 10000 bots do high volume transport, which is probably very marginal use compared to building with blueprints.

BrickNukem
Burner Inserter
Burner Inserter
Posts: 12
Joined: Wed Jun 07, 2017 10:05 am
Contact:

Re: Personal robots prioritize nearest first

Post by BrickNukem » Thu Jun 08, 2017 8:11 am

Rseding91 wrote:
Hannu wrote:It would not affect performance if only personal bots would seek the nearest target (and also have priority).
Yes it would. A thing to work on finds a robot not the other way around.
I see. That does make it trickier. Still though, is changing the behavior of personal robots something you are interested in?

mp0011
Fast Inserter
Fast Inserter
Posts: 216
Joined: Mon Mar 20, 2017 1:17 am
Contact:

Re: Personal robots prioritize nearest first

Post by mp0011 » Fri Jun 09, 2017 12:17 pm

<NO_NAME> wrote:
mp0011 wrote:Simplest solution: User controlled construction zone size. With ctrl-scroll.
User reduce zone size, and bots works exactly as in lower example.
Maybe even better idea. In addition, when you reduce the area to zero, other players won't be able to troll your robots.
Also, you could select where construction robots to deconstruct/construct cames from - Your inventory, or the factory.

It's sometimes annoying, when You want to deconstruct something and reconstruct it somewhere else using same materials, but Your bots deconstruct just few elements, rest is waiting for factory construction bots (they are flying from far end of the base, so You wait some time). Then, factory bots grab things You are about to use, and puts it in some distant chest. So You wait AGAIN for that materials to build...

If Your zone is big, Your robots do all the jobs in it. If You want use factory bots, just shrink the zone.

Post Reply

Return to “Ideas and Suggestions”

Who is online

Users browsing this forum: No registered users and 10 guests