[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)