[HN Gopher] Some flying robot behavior improvements
       ___________________________________________________________________
        
       Some flying robot behavior improvements
        
       Author : vblanco
       Score  : 111 points
       Date   : 2023-09-01 13:34 UTC (9 hours ago)
        
 (HTM) web link (factorio.com)
 (TXT) w3m dump (factorio.com)
        
       | Sverigevader wrote:
       | Every time I bring up Factorio at work (mostly for the FFF's) it
       | comes with the disclaimer: "Do _NOT_ start playing, you'll have
       | no free time left".
        
       | jcranmer wrote:
       | > When deciding which roboport to charge at, the robots crucially
       | did not consider the current robots on the way to that roboport,
       | only those already in the queue, and did not factor in how many
       | free charging spots the roboport has open. By adding these two
       | extra parameters into the equations, the distribution of the
       | robots improves quite nicely.
       | 
       | A great example of how omitting one factor can really change the
       | qualitative behavior of your heuristic. I didn't know that the
       | robot pathing to charging stations took into account queue
       | length, since I was so used to seeing the infamous circles-of-
       | depleted-robots queuing around roboports. Turns out they already
       | had some smarts, but because the smarts omitted the (perhaps only
       | in hindsight) metric of robots-heading-to-charge from the queue
       | estimate, the practical effect it was trying to avoid (brigading
       | around a single charging port) wasn't actually avoided.
       | 
       | On another side note, it's been a while since I've done the math,
       | but it turns out that each roboport can only support about 50-100
       | robots. If you've got more logistics robots on a route than that,
       | you need more roboports to keep the item flow up. If you don't
       | have enough roboports, you're doomed to see throughput collapse
       | as they're stuck in charging queues, although now I'm interested
       | to start running tests to see how throughput is affected in such
       | a degraded mode.
        
         | dragontamer wrote:
         | > On another side note, it's been a while since I've done the
         | math, but it turns out that each roboport can only support
         | about 50-100 robots. If you've got more logistics robots on a
         | route than that, you need more roboports to keep the item flow
         | up. If you don't have enough roboports, you're doomed to see
         | throughput collapse as they're stuck in charging queues,
         | although now I'm interested to start running tests to see how
         | throughput is affected in such a degraded mode.
         | 
         | That's... a poor way of thinking about roboports IMO.
         | 
         | Roboports are specified with a charging speed: 4x ports of 1MW
         | each. Robots have (3 kW static) + (5 kJ/m) power-usage. We can
         | largely ignore the 3kW as a rounding error especially as
         | infinite-research causes the distance based metric to dominate.
         | 
         | A Kilowatt is simply a kilojoule-per-second.
         | 
         | Rewriting the units: that means a Roboport's 4000kW of charging
         | is: 4000kJ/s (or perhaps 4x1000kJ/s for the 4x ports), divide
         | this out with 5kJ-per-meter for: (4x1000 kJ/s) / (5kJ/m) == 4x
         | 200 m/s. Or 200-meters-per-second across 4 robots.
         | 
         | EDIT: I seem to have doubled up on the 4x multiple times in my
         | first draft. Lets hope my revised math is correct now.
         | 
         | ------------
         | 
         | That is to say, each Roboport provides 200-meters-per-second to
         | 4x robots of charge.
         | 
         | Again: assuming the 3kW static is ignored. But you can consider
         | "infinite research" to be the asymptote where you get closer-
         | and-closer to this 800-meters-per-second aggregate limit of
         | Roboport charging speeds.
         | 
         | -----------------
         | 
         | You can assume that at "maximum speeds", the dominant factor is
         | charging speed. That is: all Robots have so much work to do
         | that they're all "just" waiting to be charged by the roboports.
         | Each Roboport provides additional charge of 200 meters-per-
         | second aggregate movement to your worst-case robot network.
         | 
         | "Best case" is when your Roboports are _NOT_ the bottleneck
         | (ie: Robots charge, then see that they have no tasks left to do
         | and then start to sleep). In this case, additional roboports do
         | nothing and instead its speed that dominates.
         | 
         | But we can see that in "busy" networks with thousands of items
         | to move (ex: 8x train of 8000 green circuits per train ==
         | 64,000 circuits to move per delivery), its roboport-charge that
         | dominates. You pretty much want to max out the density of
         | Roboports and maximize the amount of charge you deliver to your
         | robot network
         | 
         | ----------
         | 
         | So its not that "Roboports support X number of Robots". Its
         | that "Roboports support X-amount of robot travel distance per
         | second".
         | 
         | The number of robots doesn't matter. The only thing that
         | matters is how much the robots are moving.
        
       | cbm-vic-20 wrote:
       | I've spent hundreds of hours in Factorio, even lauched rockets,
       | and have never got far enough along to build robots. Maybe it's
       | time to get back in there.
        
         | Cthulhu_ wrote:
         | My issue with robots has always been that you build your base
         | in one way, then get some robots ready... then you realize you
         | didn't leave enough space in the right places to robotize your
         | base :p.
         | 
         | I think next playthrough I should use a city block template,
         | those will have placeholders for roboports. However, I think
         | they don't get placed if you haven't unlocked the technology
         | yet, so a QoL improvement would be to be able to place a
         | placeholder or spacer instead. Or just allow the placement of a
         | ghost without researching the tech.
         | 
         | I've used the city block design blueprints in an attempt to do
         | the Space Exploration mod; it worked alright, except that the
         | templates had concrete flooring. That was a lot of concrete!
         | 
         | But anyway, next playthrough I should make a robot driven base,
         | at least for anything but the high volume base materials like
         | iron, copper and steel. Maybe I should build or get some
         | blueprints for a main bus as well, especially for liquids.
        
         | joshstrange wrote:
         | Robots are fun, my first run I played Bobs (yes, it was crazy
         | to do that on my first playthrough) so I got bots before the
         | launch IIRC and had a blast with my hugely efficient setup. On
         | later runs I tried for a train-block setup with each "block"
         | having something like 4 roboports that didn't overlap with the
         | block next to it so that you wouldn't have robots traveling
         | across the whole map, they would each be localized. They add a
         | fun challenge and even with these new improvements in their
         | pathing I think there will still be advantages to breaking up
         | your logicisical networks.
        
           | fendy3002 wrote:
           | Robots are easy though, and borderline op since they can
           | surpass the flow limit of stack inserter, making the slowest
           | item movement be only when loading/unloading train.
        
             | quchen wrote:
             | They don't scale well though. In bigger bases items are
             | measured in train loads, and bots can't keep up in terms of
             | throughput or power consumption. Building a tiny bot-only
             | cell is still fun though!
        
               | jcranmer wrote:
               | It's been a while since I've done the math, but a solid
               | line of roboports moves fewer items than 4 blue belts
               | (which takes up the same amount of space), IIRC. And if
               | you've got fewer roboports than a solid line of
               | roboports, it moves even less throughput.
               | 
               | Probably the only time it's hard to beat robots is when
               | you have something like a megatrain unload station--it's
               | extremely difficult to squeeze more than two blue belts
               | per wagon (one belt per wagon per side) without robots,
               | and there's no need to balance belts with bots.
        
         | CodesInChaos wrote:
         | Researching Rockets costs more than researching the Logistic
         | Network, so I would definitely recommend going for Logo first.
         | Even a small network which produces every item/building in
         | small quantities and delivers them to the character is a big
         | quality of life win. And of course at much lower tech,
         | construction bots enable blueprints, copy&paste, etc. which are
         | also a huge win.
        
       | CodesInChaos wrote:
       | One small improvement to logobots I'd like to see is disabling
       | over-delivery to my inventory. If I request one stack of items, I
       | don't want to end up with up to one stack + 3 items. For
       | requester chests over-delivery should probably be kept, to reduce
       | flight traffic.
        
         | bayesianbot wrote:
         | You can set the logistics request maximum amount of the item to
         | same value as minimum amount - though then if you want to pick
         | up some more you have to adjust so the bots won't come take
         | them away, but for me it's much preferable to inventory being
         | filled from tiny extra stacks.
        
           | CodesInChaos wrote:
           | I set my requests to stack-size minus three for most items to
           | work around the problem, since manually grabbing some extra
           | is relatively common for me.
        
       | dragontamer wrote:
       | Hmm.
       | 
       | These are certainly welcome changes for the bot-users. But now
       | the balance of belts vs bots has been upset once more.
       | 
       | Belts were immune to these issues, and were a key advantage for
       | handling these cases. Now that bots solve these issues, bot-based
       | bases are going to gain more "strength" in the meta.
       | 
       | I recognize this is a bit of a (https://xkcd.com/1172/) joke, but
       | I'm serious! Factorio is a game and a meta-game, with belt-based
       | players in (friendly) debates vs bot-based players.
       | 
       | Since belts vs bots haven't changed in literally years, things
       | have settled down and the debates have stopped. But now this
       | changes things once more. I kinda-sorta feel like belts will need
       | a +10% or +15% speed buff or something to keep the balance,
       | because these are _huge_ improvements to bots IMO.
       | 
       | --------------
       | 
       | I guess belts are still fully deterministic and zero-power. So
       | they're still useful in this new meta. But this "loop" example
       | was commonly solved by running a belt (or train) across the
       | troublesome path. Now bots can solve the problem by themselves.
        
       | euroderf wrote:
       | Hey c'mon peepul. Hasn't anyone unleashed an A.I. on Factorio ?
        
       | sc68cal wrote:
       | I am super happy to see them fix the path finding issue for
       | robots, where they'll now fly to a nearer roboport to recharge
       | instead of flying out of range, and then turning back and getting
       | stuck in an infinite loop.
       | 
       | Great game
        
       | joshstrange wrote:
       | As happy as I am that FFF's are back I hate that this is going to
       | suck me right back into Factorio (there are much worse things for
       | sure).
       | 
       | It's probably for the best that I can only really play Factorio
       | on my computer and not on my Steam Deck (yes, I _can_ but it's
       | annoying enough to not have a mouse/keyboard that I don't). It's
       | really an amazing game that you can dump literally thousands of
       | hours into, trust me I have. I'm looking forward to new expansion
       | even if it's still ~1 year out.
        
         | birracerveza wrote:
         | Sorry to tell you brother, but there's an official Steam Deck
         | support with perfectly usable defaults.
        
           | golergka wrote:
           | I haven't yet installed it on the steam deck, but I've put in
           | around 100 hours on switch, and it was pretty good experience
           | on a gamepad.
        
         | oefrha wrote:
         | _Checks play time_ 2699.8 hours
         | 
         | I'm really glad 2.0 isn't released yet. I still have time to
         | blacklist the domain so that I don't get notified when it is
         | released.
        
           | joshstrange wrote:
           | Steam shows ~800 hours for me but that's before I went all-in
           | on various mods and just wrote my own launcher for easy
           | switching between mod packs/saves/etc so thankfully I don't
           | have the full numbers (though the vast majority of my
           | playtime happened after that change so I know I'm probably
           | around your number).
        
             | sorahn wrote:
             | The install is completely portable on its own, so my
             | solution is that I just have 10 or so copies of the game
             | installed, with a folder of renamed shortcuts based on the
             | modpack they run.
             | 
             | What does your launcher do?
        
               | joshstrange wrote:
               | Nothing special, it's an Alfred workflow to list my
               | installs which are just folders on the file system. Each
               | folder has its own saves/mods and a link to launch the
               | version of Factorio I want. It calls a script that
               | symlinks the mods/saves to the right place and launches
               | the game.
        
               | sorahn wrote:
               | Do the blueprint stay between each copy?
               | 
               | One of the issues I have is that I have blueprints in
               | every copy of the game now instead of in some central
               | location :(
        
               | joshstrange wrote:
               | They are per-install I think. I normally create new
               | blueprints per-run just cause. I have a handful of
               | blueprints I store in notes to easily paste in.
        
               | sorahn wrote:
               | Yeah, I've been getting more and more collecting for
               | stuff I'm doing with the circuit network that I don't
               | want to do again.
               | 
               | Trying to find a clean way to organize them and have it
               | available in all the games, maybe just checking them into
               | github is the way to go.
        
         | Freak_NL wrote:
         | On the other hand, rejoice that you won't have to touch
         | Factorio yet for a whole year! Just enjoy the updates and
         | prepare for the inevitable one year from now (say goodbye to
         | friends and family, plan that sabbatical, get rid of the cat,
         | and what have you).
        
         | amoss wrote:
         | I hate to tell you, but once you sort out a decent control
         | scheme it plays really well on the steam deck. There are enough
         | buttons to cover everything, it's mainly case of working out
         | what is most logical to you personally so that you don't have
         | to think about it. Gyros for the mouse, and a mode switch on
         | soft-pull LMB to increase precision help a lot.
        
           | bhdlr wrote:
           | Any chance you could post a community control scheme that's
           | pretty close? I love factorio but haven't gotten a good
           | intuitive control scheme set up on my deck
        
           | joshstrange wrote:
           | I might just try to ignore this comment... My biggest worry
           | is precision in placing things, I make my own blueprints but
           | I normally trying to start from scratch for each new game
           | (just my playstyle, not saying it's good/smart) and it being
           | fiddly on the deck. I played a few games with only mouse
           | support and quickly abandoned them since it got old fast. I
           | know Factorio has great keyboard support though and they do
           | have a Switch version so maybe I'm worrying about nothing. My
           | other worry would be performance since my older laptop has
           | some trouble when my base got large enough (with mods) but
           | maybe I'm just making excuses.
        
             | Dr4kn wrote:
             | Using the touchpads as a mouse works really well. I like to
             | set them as trackball, but there are multiple options and
             | configurations that one is going to feel good for you.
        
       ___________________________________________________________________
       (page generated 2023-09-01 23:01 UTC)