Construction Robot issues that have been bugging me for ever and possible solutions
Posted: Fri May 15, 2020 4:08 pm
Issue 1: Deconstruction times being ignored
In factorio the player has the option to deconstruct buildings, rocks or other entities. Deconstruction takes a short amount of time depending on the entity deconstructed. Most factory components are deconstructed fast (transport belts, assembler, inserter, etc.) other entities take longer (walls, pumpjacks, rocks, etc.).
There is, however, a vile exploit circumventing deconstructions times. A cheap speedrunning trick, an oversight flying under the devs radar: Construction robots ignore deconstruction times. So while a player has to spend 2 whole seconds picking up a pumpjack, a construction robot (preferably coming from the players personal roboport) can do it for him in no time. And while the player has to spend minutes chopping down a flock of trees, a few construction robots can eat up a whole forest faster than you can say "locusts".
Suggestion: Construction robots should take time to deconstruct entities. It just makes sense. Having the robot hover for 0.5 seconds before picking up a tree would be no huge nerf or big deal at all. Of course the time a construction robot just hovers over an entity deconstructing it still drains his battery. This would make it slightly more important to build roboports close to large forest that you want toutterly obliterate harvest resourcefully.
Issue 2: Turrets shooting the very moment they are built
Turrets in factorio are a great defense line protecting your base very reliably while not using up an unreasonable amount of resources. However, the fact that there is no building time in factorio makes turrets a tad too good offensively. Whenever you want to take on a biter base in the early/mid game you should always build a fall-back perimeter in a safe distance to the base. Too often you realize that the swarm of biters is too strong for you to take on and you have to fall back. However, as a seasoned facorio player, you know of the power a few gun turrets have. So, instead of constructing a fall-back perimeter whenever you want to take on a base you can just put gun turrets and ammo into your hotbar. Once you start getting overwhelmed you just drop a hand full of turrets and load them with ammo. They take care of the rest. If you are fast enough you can even drop a bunch of turrets right inside the biter base where they can destroy the base completely for you. And don't forget the laser-turret-blueprint-construction robot combo, letting you construct a whole fortress right next to a biter base in almost no time!
This, at least in my book, is cheesy as hell. Turrets are clearly meant for defense purposes and it is obvious that turrets right inside a biter base are waaay too efficient at completely destroying the whole base, without the biters standing a chance.
Suggestion: Turrets should have a shooting cooldown after beeing constructed. Enough time that a swarm of biters should be able to easily destroy a turret that was placed right next to them before the turret destroys them. I would suggest 3-5 seconds should be enough (obviously needs testing). When just building your defenses this makes no difference whatsoever. I can imagine theses few seconds wind up time being used for a cool animation. Maybe the gun barrel being raised and then aligned with the plain, but honestly just a short blinking warning icon would do, too.
This should also go for all turrets, so not only gun turrets, but laser- and flamethrower turrets as well as artillery turrets and -trains.
Issue 3: Construction robots clog up all of your roboports when building lot of entities
Ah yes, a spectacle as old as factorio 0.2.0. Whenever the factory was in need of more solar power or an area that has not yet been plastered with concrete was discovered, construction robots would all swarm from every available roboport to provide aid in this dire situation. However, there was one problem. You see, the robots could all freely leave their roboports, but once they got exhausted, they had to recharge at a charging stations. Theses, however, were limited and only one robot could be charged at a charging station at a time, so after a while charging stations far and wide had gathered lines of robots waiting to be charged, clogging up any and all charging stations preventing all other honest robots from fulfilling their duty. This lead to a lot of wrinkled eyebrows, pained groans and unwanted coffee-refill breaks.
Suggestion: I am sure this issue can be approached by a lot of different ways. So here is a solution I have thought of that (I hope at least) won't impact performance a lot and is (at least in my eyes) a very small change that would work seamless with the state of the current factorio version.
Why not let construction robots carry more than one of an item? Logistic robots already have upgrades so they can carry more, so why not construction robots as well? This is useful for both construction of huge blueprints as well as deconstruction of lots of entities. Now, I do not know how construction robot tasks are handled in the game, but I followed the fff enough to know that there is a queue or list of open tasks for every roboport network and robots claim theses tasks when they have nothing else to do. Would it be that hard to have a system where construction robots can claim "ANY [3] tasks that require [concrete]", (where [3] is the construction robot inventory size)? Reserving three blueprinted tiles of concrete that are as close as possible should be doable with a simple greedy algorithm, getting the closest robot to do it should also be no problem. Now maybe a termination condition is needed if two tiles of the same blueprinted entity are too far from each other, but that should be an simple check like "distance > 2*$roboport_range" or something.
Alright, the last one might not be fully thought through, but I believe a system like this would be very beneficial for large scale blue prints, as with a few upgrades a lot less robots are needed to construct a lot of entitys.
Thanks for coming to my TED talk...
In factorio the player has the option to deconstruct buildings, rocks or other entities. Deconstruction takes a short amount of time depending on the entity deconstructed. Most factory components are deconstructed fast (transport belts, assembler, inserter, etc.) other entities take longer (walls, pumpjacks, rocks, etc.).
There is, however, a vile exploit circumventing deconstructions times. A cheap speedrunning trick, an oversight flying under the devs radar: Construction robots ignore deconstruction times. So while a player has to spend 2 whole seconds picking up a pumpjack, a construction robot (preferably coming from the players personal roboport) can do it for him in no time. And while the player has to spend minutes chopping down a flock of trees, a few construction robots can eat up a whole forest faster than you can say "locusts".
Suggestion: Construction robots should take time to deconstruct entities. It just makes sense. Having the robot hover for 0.5 seconds before picking up a tree would be no huge nerf or big deal at all. Of course the time a construction robot just hovers over an entity deconstructing it still drains his battery. This would make it slightly more important to build roboports close to large forest that you want to
Issue 2: Turrets shooting the very moment they are built
Turrets in factorio are a great defense line protecting your base very reliably while not using up an unreasonable amount of resources. However, the fact that there is no building time in factorio makes turrets a tad too good offensively. Whenever you want to take on a biter base in the early/mid game you should always build a fall-back perimeter in a safe distance to the base. Too often you realize that the swarm of biters is too strong for you to take on and you have to fall back. However, as a seasoned facorio player, you know of the power a few gun turrets have. So, instead of constructing a fall-back perimeter whenever you want to take on a base you can just put gun turrets and ammo into your hotbar. Once you start getting overwhelmed you just drop a hand full of turrets and load them with ammo. They take care of the rest. If you are fast enough you can even drop a bunch of turrets right inside the biter base where they can destroy the base completely for you. And don't forget the laser-turret-blueprint-construction robot combo, letting you construct a whole fortress right next to a biter base in almost no time!
This, at least in my book, is cheesy as hell. Turrets are clearly meant for defense purposes and it is obvious that turrets right inside a biter base are waaay too efficient at completely destroying the whole base, without the biters standing a chance.
Suggestion: Turrets should have a shooting cooldown after beeing constructed. Enough time that a swarm of biters should be able to easily destroy a turret that was placed right next to them before the turret destroys them. I would suggest 3-5 seconds should be enough (obviously needs testing). When just building your defenses this makes no difference whatsoever. I can imagine theses few seconds wind up time being used for a cool animation. Maybe the gun barrel being raised and then aligned with the plain, but honestly just a short blinking warning icon would do, too.
This should also go for all turrets, so not only gun turrets, but laser- and flamethrower turrets as well as artillery turrets and -trains.
Issue 3: Construction robots clog up all of your roboports when building lot of entities
Ah yes, a spectacle as old as factorio 0.2.0. Whenever the factory was in need of more solar power or an area that has not yet been plastered with concrete was discovered, construction robots would all swarm from every available roboport to provide aid in this dire situation. However, there was one problem. You see, the robots could all freely leave their roboports, but once they got exhausted, they had to recharge at a charging stations. Theses, however, were limited and only one robot could be charged at a charging station at a time, so after a while charging stations far and wide had gathered lines of robots waiting to be charged, clogging up any and all charging stations preventing all other honest robots from fulfilling their duty. This lead to a lot of wrinkled eyebrows, pained groans and unwanted coffee-refill breaks.
Suggestion: I am sure this issue can be approached by a lot of different ways. So here is a solution I have thought of that (I hope at least) won't impact performance a lot and is (at least in my eyes) a very small change that would work seamless with the state of the current factorio version.
Why not let construction robots carry more than one of an item? Logistic robots already have upgrades so they can carry more, so why not construction robots as well? This is useful for both construction of huge blueprints as well as deconstruction of lots of entities. Now, I do not know how construction robot tasks are handled in the game, but I followed the fff enough to know that there is a queue or list of open tasks for every roboport network and robots claim theses tasks when they have nothing else to do. Would it be that hard to have a system where construction robots can claim "ANY [3] tasks that require [concrete]", (where [3] is the construction robot inventory size)? Reserving three blueprinted tiles of concrete that are as close as possible should be doable with a simple greedy algorithm, getting the closest robot to do it should also be no problem. Now maybe a termination condition is needed if two tiles of the same blueprinted entity are too far from each other, but that should be an simple check like "distance > 2*$roboport_range" or something.
Alright, the last one might not be fully thought through, but I believe a system like this would be very beneficial for large scale blue prints, as with a few upgrades a lot less robots are needed to construct a lot of entitys.
Thanks for coming to my TED talk...