Page 1 of 2

[13.6] Construction robots take long to respond (too many open jobs) MR

Posted: Sun Jul 10, 2016 4:23 am
by credomane
[original post]

Items required:
  • One Personal Roboport w/ accompanying armor type.
  • Ten construction bots.
  • Blueprint with 30-40 entities. Number of entities in blueprint isn't a factor. Just need to exceed the 10 bots the roboport can control by 2-3 times to really show off bug/regression.
  • Some open space in the middle of nothingville.
Control test steps:
  1. Get away from any roboports. Far as you like. Or don't have any placed on the map what so ever.
  2. Equip your personal roboport and accompanying armor with 10 construction bots in your inventory.
  3. Place a blueprint (or manually place ghosts) entirely inside of range of your personal roboport. Make sure you place at least 30-40 entities.
  4. Watch your bots speedily place everything.

Reproduce personal roboport delay/lag/lazy bots steps:
  1. Get away from any roboports. Far as you like. Or don't have any placed on the map what so ever.
  2. Equip your personal roboport and accompanying armor with 10 construction bots in your inventory.
  3. Place a blueprint (or manually place ghosts) entirely outside of range of your personal roboport. Make sure you place at least 20-30 entities.
  4. Move yourself [and your personal roboport] into range of placed entities.
  5. Watch your bots take ages to place everything with periods of them all in your inventory sleeping doing nothing.

Repeat both of these tests in Factorio 0.12. Bots will speedily place everything without falling asleep in your inventory repeatedly throughout the build process.

[edit]
Not-a-bug. I'm a bloody idiot is all. I found some ghosts way off at x=10000 by y=10000 from when I did some cheat stuff on my map and apparently didn't reload afterwards...why didn't I do this on a new map? I'm a damn idiot that's way. :D


[edit2]
People are still reporting this so here is my handy little ghost finder mod.
CredoGhostFinder_0.0.1.zip
(2.73 KiB) Downloaded 275 times
Install this mod and load your save with the issue. Every "minute" it will scan all surfaces for ghost entities and give a print out of what it found.
To aide in finding the ghost entities check the factorio/script-output/ folder for a folder named "GhostFinder" inside will be a found.txt with extra details and a bunch of png files.
Each png is a screenshot of the area in which at least one ghost was found.

Check those areas out and see if this issue continues once those ghosts are resolved.

Hope this little mod helps! I'll probably turn it into a full fledged mod (meaning runs on demand not on a timer) a some point and throw it on the mod portal.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 6:49 am
by Xeteth
I am having trouble reproducing this issue on my test world. In both cases the bots responded quickly as they should.

Do you have any other entities in the world (anywhere in the world) which are currently ghost blueprinted or marked for deconstruction? If so then these actually affect the response time of the bots as the game has to check whether you are in range of these to determine if an action needs to take place. (A dev might need to confirm this).

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 8:13 am
by Zaflis
I can reproduce this very easily. Have 150 construction bots in inventory with 1 personal roboport in mk2 power armor, 2 fusion reactors and 2 mk2 batteries (be sure it's not out of power). Blueprint with around 120 placed blocks, for example a radar station with solar panels, laser turrets, accumulators and wall around it. Long delays ensues... Robots build some of it, go back to charge and then go to inventory. After some while they build again.

For a workaround i noticed that if you remove and place back the roboport in armor slot, the bots go back to work.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 8:16 am
by Rseding91
Please post your save file. You most likely just have a ton of ghosts waiting to be built somewhere which causes it to take a while to cycle around to the ones near you.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 8:19 am
by Zaflis
Here's the current world: https://www.dropbox.com/s/27tyi7okfx7xx ... r.zip?dl=0

I didn't find any constructions though, and i don't see alarms come up.

edit: Interesting. Originally i played the map in multiplayer with headless server (win 10 steam version) actually, but now I tried the save in singleplayer and it works much better.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 9:38 am
by Rseding91
Zaflis wrote:Here's the current world: https://www.dropbox.com/s/27tyi7okfx7xx ... r.zip?dl=0

I didn't find any constructions though, and i don't see alarms come up.

edit: Interesting. Originally i played the map in multiplayer with headless server (win 10 steam version) actually, but now I tried the save in singleplayer and it works much better.
When I test your save it works perfectly. Some robots from your inventory go to build some of the ghosts and because you only have 1 personal roboport the rest get assigned to the main network which come in and build the rest as they should.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 9:52 am
by Rseding91
credomane wrote:Items required:
  • One Personal Roboport w/ accompanying armor type.
  • Ten construction bots.
  • Blueprint with 30-40 entities. Number of entities in blueprint isn't a factor. Just need to exceed the 10 bots the roboport can control by 2-3 times to really show off bug/regression.
  • Some open space in the middle of nothingville.
Control test steps:
  1. Get away from any roboports. Far as you like. Or don't have any placed on the map what so ever.
  2. Equip your personal roboport and accompanying armor with 10 construction bots in your inventory.
  3. Place a blueprint (or manually place ghosts) entirely inside of range of your personal roboport. Make sure you place at least 30-40 entities.
  4. Watch your bots speedily place everything.

Reproduce personal roboport delay/lag/lazy bots steps:
  1. Get away from any roboports. Far as you like. Or don't have any placed on the map what so ever.
  2. Equip your personal roboport and accompanying armor with 10 construction bots in your inventory.
  3. Place a blueprint (or manually place ghosts) entirely outside of range of your personal roboport. Make sure you place at least 20-30 entities.
  4. Move yourself [and your personal roboport] into range of placed entities.
  5. Watch your bots take ages to place everything with periods of them all in your inventory sleeping doing nothing.

Repeat both of these tests in Factorio 0.12. Bots will speedily place everything without falling asleep in your inventory repeatedly throughout the build process.
Can you post your save file?

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 9:58 am
by Zaflis
Uhh.. i tried this again in multiplayer with attempt to show it in youtube, but now it's not bugging anymore? :? Could it be the act of restarting server was the reason it was fixed? I'm out of ideas now, and i can't reproduce. I literally had the slowdown happen on every radar station on the map, which is well over 10 times. Friend was building hundreds of solar panels and accumulators with blueprints some point. But at the time i was building the radars i was alone on server, which is hosted on same computer i play on (no latency).

Also my tests were always outside of the bases construction area, out in the wilderness for just personal roboport. Base's bots always built stuff just fine.

And yeah this is on experimental steam version, currently 0.13.6.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Sun Jul 10, 2016 10:02 am
by Rseding91
Zaflis wrote:Uhh.. i tried this again in multiplayer with attempt to show it in youtube, but now it's not bugging anymore? :? Could it be the act of restarting server was the reason it was fixed? I'm out of ideas now, and i can't reproduce. I literally had the slowdown happen on every radar station on the map, which is well over 10 times. Friend was building hundreds of solar panels and accumulators with blueprints some point. But at the time i was building the radars i was alone on server, which is hosted on same computer i play on (no latency).

Also my tests were always outside of the bases construction area, out in the wilderness for just personal roboport. Base's bots always built stuff just fine.

And yeah this is on experimental steam version, currently 0.13.6.
You do have 420 ghosts outside of normal roboport range which would give you a latency time of 7 seconds if you built a ghost outside your personal roboport range then walked into it while outside the main network.

I'm still waiting on the original save file from this bug report but I'm 100% sure there's no bug, just lots of ghosts that have to be processed and the game only processes them so fast.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Mon Jul 11, 2016 12:08 am
by credomane
I posted this right before I went to bed last night and had stuff to do today.

I've played with it some more. I made a little mod to search for ghosts....it found an area I had with 537 ghosts for placing brick tiles. This area I thought never got saved...As I built it with cheats messing with some build ideas. I either didn't load my save or most likely I saved over my save not paying attention and thought I loaded it instead. Done that once already that I know of. I'm a bloody idiot is what this amounts too.

Throw this into not-a-bug or the credomane's wasting my time bin. The symptoms were just manifesting in an odd way with the personal roboport but the issue was certainly the damn brick tile ghosts.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Mon Jul 11, 2016 1:51 am
by ezoe
I have this problem too.
Sometimes, part of ghost from blueprint took minutes to be built by robot.
My Power armor has 10 personal roboports and I have more than 100 robots.
While waiting for that to complete, I can blueprint other thing and it will be built instantly.
I'm outside of normal roboport range.

I can provide a save file if there is a hosting service that will accept 29MB of file.

EDIT:
Just like original submitter said, when I place ghost building outside of the personal roboport range and move the player to make ghost inside the range, this issue happens.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Thu Jul 14, 2016 12:26 am
by wjessup
this is happening for me non-stop and is making me want to just not play. The delay is insane and faster to build by hand.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Thu Jul 14, 2016 6:49 am
by credomane
I've attached my little ghost finder mod to this post. I'll attach it to the first post in the thread as well.

Install this mod and load your save with the issue. Every "minute" it will scan all surfaces for ghost entities and give a print out of what it found.
To aide in finding the ghost entities check the factorio/script-output/ folder for a folder named "GhostFinder" inside will be a found.txt with extra details and a bunch of png files.
Each png is a screenshot of the area in which at least one ghost was found.

Check those areas out and see if this issue continues once those ghosts are resolved.

Hope this little mod helps!

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Thu Jul 14, 2016 8:50 am
by Rseding91
wjessup wrote:this is happening for me non-stop and is making me want to just not play. The delay is insane and faster to build by hand.
You need to go clean up all the ghosts you've got laying around that aren't being worked on.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Thu Jul 14, 2016 7:17 pm
by wjessup
thanks for the reply. Why does having lots of ghosts somewhere across the map slow down the pathing on my players local robots which only have a very short range?

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Thu Jul 14, 2016 7:23 pm
by Rseding91
wjessup wrote:thanks for the reply. Why does having lots of ghosts somewhere across the map slow down the pathing on my players local robots which only have a very short range?
Because the player just acts like any other roboport.

The game processes all of the ghosts to be built 1 per tick starting at the beginning of the list. If it can't do anything with the ghost it puts it at the back of the list and so it cycles between them over time.

When you have tons of outstanding ghosts that means it takes longer to cycle between all of the ghosts.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Thu Jul 14, 2016 8:11 pm
by wjessup
Thanks for the info, I'll be sure to check the ghosts next time :)

I was hoping that something like each robotics port (player included) should gather a list of ghosts in its radius and only check to do activity on those.

Imagine I blueprint something insane like 10k solar panels far away from my base, it doesn't make sense to continuously check that list since they're obviously not going to be in the radius of anything until I run near them. Why not just gather the list of ghosts to check only when they come into my radius?

As an aside, maybe this global sort of behavior also causes things that seem like the robots are just dumb: sometimes the farthest robots away are the ones that end up having to fly all the way across the base to grab something, meanwhile there are 50 idle bots in a robotics facility just next to me :P

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Thu Jul 14, 2016 8:43 pm
by Rseding91
wjessup wrote:Thanks for the info, I'll be sure to check the ghosts next time :)

I was hoping that something like each robotics port (player included) should gather a list of ghosts in its radius and only check to do activity on those.

Imagine I blueprint something insane like 10k solar panels far away from my base, it doesn't make sense to continuously check that list since they're obviously not going to be in the radius of anything until I run near them. Why not just gather the list of ghosts to check only when they come into my radius?

As an aside, maybe this global sort of behavior also causes things that seem like the robots are just dumb: sometimes the farthest robots away are the ones that end up having to fly all the way across the base to grab something, meanwhile there are 50 idle bots in a robotics facility just next to me :P
Ghosts outside construction range are stored in a different list of ghosts and processed along side the ones in range so when you end up with a ton of ghosts outside roboport range they don't slow down the ones in range.

Except when you're out building and you build ghosts outside your personal roboport range it scans them and they end up in that list with the possibly thousands of other out-of-range ghosts and then it takes forever for that scan to get around to the ghost again.

How would you know what ghost is in range of what entity when they're built? You'd have to scan every possible logistic network on the surface on every ghost being built and that's a ton of scanning.

Also roboports loose power, can be mined, destroyed, change forces, you (the player) can move around - the ghost can easily not be in range one tick and in range the next.


Robots are smart: when a job is dispatched the nearest robot is picked that can do the job and the job is assigned to him. In the time the robot starts to work other robots might become available closer but the job was already given to that robot. Re-checking if a better robot was available constantly would just *DESTROY* the game performance so once a robot gets a job it's his until he finishes or is destroyed.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Fri Dec 30, 2016 4:58 am
by Thynix
Would it be practical to put player expectations in check by adding the out-of-range ghost count similar to the missing robot/supplies notification? If it's clear there's a large list to work through the behavior could be less surprising.

Re: [0.13.6] Personal Roboport delay before bots repond.

Posted: Fri Dec 30, 2016 11:34 am
by Smarty
Thynix wrote:Would it be practical to put player expectations in check by adding the out-of-range ghost count similar to the missing robot/supplies notification? If it's clear there's a large list to work through the behavior could be less surprising.
That would require much more cpu power to check through all of that stuff, so dont expect that to happen.