Improved Task Queuing for Bots

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

Post Reply
bcwhite
Inserter
Inserter
Posts: 42
Joined: Thu Jan 31, 2019 10:37 pm
Contact:

Improved Task Queuing for Bots

Post by bcwhite »

Let me start by saying that Factorio is one of the very best games I've ever encountered and surely the best money I've ever spent given the number of hours I've played.

During the development of my self-building mega-factory blueprints (https://factorioprints.com/view/-MNZWdWosuqr3vtaC2hD), I've found an issue with the construction queue for the bots.

The linked blueprints build entire "blocks" in a deterministic order to ensure correctness. Specifically, they build in several phases: power+roboports, logistics+production, trainstops+modules+aesthetics. They accomplish this by having construction trains deliver only the materials required for the current phase and don't advance phases until build-out of those items is complete.

However, when there is significant outstanding work to do from multiple blocks under construction, especially if one or more blocks has a lot of concrete ("aesthetics"), then there ore often extended periods of time where the bots are completely idle.

My analysis of the situation is that the ghosts for which no material has yet been brought in by train (e.g. concrete) are flooding the queue and pushing out those ghosts for which material is present and could be built. This remains until the next scan of the area but doesn't last long as the abundance of not-present later-phase ghosts drowns those that are ready to be placed.

Assuming my analysis is correct, would it be possible to split the build queue into two queues?

1. Items for which material is available in logistics chests.
2. Items for which no material is available.

Then, prioritize removing from the latter over the former when pruning the list to keep it within the set maximum size.

-- Brian

Trific
Fast Inserter
Fast Inserter
Posts: 145
Joined: Thu Dec 31, 2020 7:57 pm
Contact:

Re: Improved Task Queuing for Bots

Post by Trific »

Given that you have control over the phases, why not change things around so that the blueprints are not laid down until the materials are present? I.e. lay down whatever gets the materials where you want them (logistics chests, circuits that specify the quantities of build materials and test whether they are presents, etc.), and then once the materials are there, lay the blueprint that uses them.

bcwhite
Inserter
Inserter
Posts: 42
Joined: Thu Jan 31, 2019 10:37 pm
Contact:

Re: Improved Task Queuing for Bots

Post by bcwhite »

I did consider that but breaking a blueprint into three or four different blueprints, each with a different set of materials just isn't practical. Not only would it be a very time consuming and error-prone manual process but it would have to be done anew any time changes were necessary on the design as a whole. It could be done relatively easily for aesthetic tiles but not other things. For modules in machines, I don't think it's even possible.

Also, there's no automatic way to place a blueprint so the process would no longer be an automatic, unattended, self-building block. The player would have to constantly return to the blocks already started to see if the next blueprint in the process needed to be placed.

This doesn't just affect my design, either. Any large blueprint (or combination of blueprints) is vulnerable to these idle bot periods and I don't think a general guidance of "split your blueprint into separate layers" is something that players would like.

User avatar
ickputzdirwech
Filter Inserter
Filter Inserter
Posts: 768
Joined: Sun May 07, 2017 10:16 am
Contact:

Re: Improved Task Queuing for Bots

Post by ickputzdirwech »

Have a look at this post: 94208. Some similar ideas were discussed there already.
Mods: Shortcuts for 1.1, ick's Sea Block, ick's vanilla tweaks
Tools: Atom language pack
Text quickly seems cold and unfriendly. Be careful how you write and interpret what others have written.
- A reminder for me and all who read what I write

bcwhite
Inserter
Inserter
Posts: 42
Joined: Thu Jan 31, 2019 10:37 pm
Contact:

Re: Improved Task Queuing for Bots

Post by bcwhite »

Thanks for the pointer.

Post Reply

Return to “Ideas and Suggestions”