[HN Gopher] Seven Years of Factorio Friday Facts (2020)
       ___________________________________________________________________
        
       Seven Years of Factorio Friday Facts (2020)
        
       Author : destructuredObj
       Score  : 319 points
       Date   : 2021-06-09 12:01 UTC (10 hours ago)
        
 (HTM) web link (spieswl.github.io)
 (TXT) w3m dump (spieswl.github.io)
        
       | ddoubleU wrote:
       | From what I remember from this older interview with the two
       | founders (in Czech) the main inspiration for doing Factorio were
       | Tekkit-like mods for Minecraft.
        
       | and0 wrote:
       | To anyone who loves Factorio as much as I do, I strongly
       | recommend the new game Dyson Sphere Program. I never truly beat
       | Factorio the way I did DSP, so I can't compare them completely,
       | but DSP takes the concept to a 3D planetary scale and is in many
       | ways much friendlier.
       | 
       | Also no combat/bugs, at least not yet. The dev team is Chinese
       | and are releasing amazing quality-of-life updates at a rapid
       | clip, too. Truly impressive piece of software.
        
       | daolf wrote:
       | I've been a huge fan of Factorio since 2014.
       | 
       | A huge fan of the game, the team, and the entrepreneurial
       | adventure.
       | 
       | Their willingness to share insights, every weeks, for 7 years is
       | quite rare in the industry.
       | 
       | It was also awesome to read the thought process behind each
       | design decision alongside some nerdy story about C++
       | optimization.
       | 
       | Factorio team, if you're ready this, thank you!
        
         | cogman10 wrote:
         | The game is also seriously fun :D. It has such replay-ability
         | for me. You can either make new factories or you can infinitely
         | tweak old ones. So much fun tweaking lines to increase
         | efficiency and throughput.
        
         | ghostbrainalpha wrote:
         | Any tips on where I could go to read more about the
         | entrepreneurial adventure?
        
       | stevenpetryk wrote:
       | This reminds me of a cool article I read about how Kerbal Space
       | Program 2 renders orbits. I love reading things like this:
       | 
       | https://www.kerbalspaceprogram.com/dev-diaries/6509/
        
         | chairmanwow1 wrote:
         | Those disclaimers at the beginning of the article are so out of
         | touch
        
           | J5892 wrote:
           | I... what?
           | 
           | How?
        
           | Kiro wrote:
           | Why?
        
       | DarmokJalad1701 wrote:
       | I wish they had expanded on the demo/tutorial mode's "story
       | line". I liked how there were these secret half-built/half-
       | destroyed bases waiting to be found.
        
       | TOGoS wrote:
       | The Friday Facts were fantastic. I don't know of any other non-
       | open-source project (but counterexamples are of course welcome)
       | that encourages the developers to put that much technical
       | information about what they're up to out on the website. I
       | especially loved the ones about belt optimizations, multi-
       | threading, and the networking model, since those are all
       | interesting problems that any game developer is likely to think
       | about but not necessarily get around to really solving the way
       | that Factorio did. The FFF's inspired me to, on a total lark,
       | send over my resume, which turned out to be good timing.
       | 
       | I think my "holy crap I'm working on factorio, pinch me" was
       | equivalent to some people's "holy crap I'm working for
       | Microsoft." I still remember the odd smell of the office when I
       | first walked in ("sorry it smells like acid in here", I was told,
       | and was later disappointed to learn that when Europeans say
       | "smells like acid" they just mean it smells bad; there was no
       | open use of entheogens while I was there).
       | 
       | I'm glad fff-200 made the cut for this guy's list, as that's the
       | one where I announced the new 'programmable noise' terrain
       | generator. More deets in
       | https://www.factorio.com/blog/post/fff-207,
       | https://www.factorio.com/blog/post/fff-258, and
       | https://www.factorio.com/blog/post/fff-282, among others.
        
         | spieswl wrote:
         | Absolutely. I'm a sucker for good writing and I feel that you
         | all set an excellent example of how to do technical writing and
         | analysis correctly.
        
         | drewmate wrote:
         | Thanks for writing (the code and the blogs!)
         | 
         | What are you up to these days?
        
           | TOGoS wrote:
           | These days I'm at a 'regular job' that is far less
           | interesting, but pays a lot better, which I was especially
           | glad about when the furnace needed replacing. So it goes,
           | sometimes. I mostly blame the US healthcare^W extortion
           | system.
        
       | spieswl wrote:
       | Author here. Wow, uh, I definitely did not expect to be featured
       | on HN this morning, but seeing this linked put a massive smile on
       | my face.
       | 
       | There are just so many examples of captivating writing,
       | innovative problem solving, and candid discussion throughout the
       | FFFs. Taken all together, the Factorio journey is one of my
       | favorite _stories_ to read...and it contributed to becoming a
       | better designer and engineer along the way. I really encourage
       | people to read more of their blog than just what I've linked,
       | since it crosses so many areas of interest.
       | 
       | To anyone reading that's worked on Factorio, thank you and you
       | all are wonderful people.
        
       | TheMerovingian wrote:
       | Probably the best game I have ever played and the only game I
       | bought not once, but thrice (two were gifts).
       | 
       | As a developer, it allowed me to determine what kind of developer
       | I am, where my interests lie, and how I contribute to code (or a
       | base). The analogue between coding and Factorio is incredible.
        
         | agentwiggles wrote:
         | Preamble: I mean this as a compliment to the game, so I hope I
         | don't come off too negative.
         | 
         | Factorio is so analogous to coding that I just couldn't get
         | into it. I laid out a neat little factory and then requirements
         | changed and I realized that I needed to basically abandon what
         | I had and build something new. My factory was not really "open
         | to refactoring". Something about that feeling felt so similar
         | to what I have to do at work all day that I closed the game and
         | haven't gone back to it since.
         | 
         | I got really into a technical Minecraft mod back in my college
         | days (Better Than Wolves). For some reason I never really had
         | the same problem with that, in fact I really enjoyed crawling
         | around in tunnels and changing things around. Something about
         | the 3d-ness of Minecraft made it feel more like tinkering
         | maybe.
         | 
         | Idk, this post has become a ramble - but suffice it to say that
         | Factorio felt _too much_ like programming for me to truly enjoy
         | it. Maybe that says something about the kind of developer _I_
         | am ;)
        
           | Arrath wrote:
           | This, for me, certainly drove home how much I hate
           | refactoring things. If I need to reconfigure my factory for
           | some reason, beyond throwing in a little spaghetti and in-
           | filling some gaps to add another few bits of production, I'll
           | just waltz off into the distance a ways and start anew,
           | piping in resources from the old factory as needed.
           | 
           | And then I run into bottlenecks arising from the utilization
           | of the old factory and the process repeats itself.
        
             | scrollaway wrote:
             | I find your comment super interesting. I myself deeply
             | enjoy refactoring as an activity in software, and I share
             | that affinity towards it both in Factorio and Minecraft,
             | where I'll deeply enjoy tearing down massive chunks of my
             | base to reconstruct them slightly or completely
             | differently.
        
           | drewmate wrote:
           | There is an inherent tension in Factorio (and software
           | engineering!) between trying to get everything right up front
           | and just building anything that works and fixing it later.
           | I've found a balance that is fun for me in the low-stakes
           | video game world.
           | 
           | Every Factorio player I know has an enormous laundry list of
           | things they wish they'd done better after their first game.
           | That urge never completely goes away, and if that feeling is
           | more distressing than energizing to you, then perhaps
           | Factorio is not the game for you.
           | 
           | Still, the process of analyzing a system in a factory and
           | redesigning it to be more efficient is massively satisfying.
           | New challenges arise at every stage of a factory's growth,
           | and before long, your 'starter base' is just a small part of
           | your whole operation, and the shortcomings there just don't
           | matter in the whole scheme of things.
        
           | [deleted]
        
           | kortex wrote:
           | That is an oft-echoed sentiment. I've experienced it a little
           | bit myself, but the main reason I've fallen out of it (after
           | a few fiercely addicted bouts) was it felt like I was
           | exacerbating some RSI, especially with my mousing hand.
           | 
           | But yeah once you start thinking about on-demand rail
           | delivery using signals as RPC...it's pretty work-like. :D The
           | async nature of the inventory system means long-range signal
           | transmission handling ends up feeling exactly like bit-
           | banging on a microcontroller, which is sufficiently out of my
           | current work scope that it's fun and interesting. Oh no, this
           | makes me want to attempt the Ben Eater computer in
           | factorio...
        
           | clows wrote:
           | I've played a few hundred hours of factorio, so by no means a
           | _lot_ but I've launched quite a few rockets and "finished"
           | the game a few times.
           | 
           | Depending on how long you played you might have missed out on
           | the part that's the most fun (for me at least) - the
           | later/end game.
           | 
           | Once you have bots the game changes a lot and you stop
           | building stuff yourself and let bots build stuff for you.
           | Once you have a few hundred bots (and resources) you can
           | build/destroy/rebuild/scale up huge parts of the factory.
           | 
           | The starting factory is usually abandoned but a megabase can
           | be a beast of it's own with constantly tweaking bottlenecks -
           | which can be quite a lot of fun (or it is for me at least)
        
       | 01127790781 wrote:
       | hkr
        
       | nindalf wrote:
       | For those wondering why this game about factory management keeps
       | showing up on the front page of HN, it's because the gameplay
       | reminds its fans of software engineering in subtle ways. People
       | who are good at one are likely to be good at the other. More
       | about this here - https://blog.nindalf.com/posts/factorio-and-
       | software-enginee...
        
         | RangerScience wrote:
         | There are two kinds of programmers,
         | 
         | Those who look at Factorio and go: "That's my day job! Why
         | would I do it for fun?"
         | 
         | and those who look at Factorio and go: "That's my day job! You
         | mean I can do it for fun?!"
        
           | munchbunny wrote:
           | Having a PM to help me stay focused would not be a bad thing
           | when I play Factorio. However, that would probably come
           | bundled with having a PM constantly ask me to half-ass (I
           | mean MVP) three different new projects in the factory in the
           | time it would normally take me to full-ass one project.
        
             | remexre wrote:
             | Three halves > 1 full, sounds like a win to me! /s
        
           | bregma wrote:
           | You missed those who say "I do this for fun, just like my day
           | job!!!1!"
        
           | nthj wrote:
           | My day job is getting alignment and approvals on fixing
           | things. Factorio is deciding to fix something and then doing
           | it.
        
           | wernercd wrote:
           | Good lord... I'm #2... I also play FortressCraft and
           | Satisfactory and other games of the genre... after working on
           | the same crap all day.
        
         | m0ngr31 wrote:
         | I've seen this said literally hundreds of times and can only
         | imagine that these comments are hyperbole now.
         | 
         | I've given Factorio dozens of shots now, and have played for
         | hours and hours with people who are great at the game, but it
         | just isn't for me. I get bored in the monotony of the early
         | game, and I'm too stupid to keep things going in the mid game.
        
           | scrollaway wrote:
           | I don't think there's a statement in there about enjoying the
           | game, just the shared skillset and mindset. :)
        
             | m0ngr31 wrote:
             | Maybe that's why I don't enjoy it... Feels like I could be
             | getting work done on any of my side projects when I play.
             | Don't have that same feeling when I'm playing other games.
             | 
             | That being said, I do enjoy it at LAN parties because I
             | just build walls and hunt biter nests
        
               | scubbo wrote:
               | The comment that really made it click for me is that
               | there are two diametrically opposed responses for
               | engineers playing Factorio:
               | 
               | * "This game is scratching the same itches as my day job,
               | but with more dopamine and less bureaucracy - how can I
               | play this all the time?" * "This game requires me to
               | expend the same brain-effort as my work/side-projects,
               | but I don't even get anything tangible out of it? Why
               | would I ever 'play' this?"
               | 
               | Neither of them are wrong - and I suspect that the same
               | person might even have different reactions at different
               | points in their life.
        
               | imiric wrote:
               | I'm square in the second group. Factorio is fun for a
               | while, but after somewhere around mid-game you realize
               | that it's much more frustrating and less enjoyable than
               | actual programming.
               | 
               | I can't easily "refactor" parts of my factory without
               | fearing it will break some pipeline that depends on the
               | changes. I wish there was a way to "write" "tests" or do
               | mass changes safely. Blueprints and robots help automate
               | things, but it's not that flexible.
               | 
               | I wish I could use a "debugger" and step through the
               | execution and play with changes to see how it affects the
               | factory.
               | 
               | And then I finally get to the conclusion that this would
               | all be easier from a text editor using proper programming
               | tools, and more enjoyable to work on a real project that
               | could have tangible benefits (and then never finish that
               | either...).
        
               | vbezhenar wrote:
               | Most of my games ending when I realized that I have to
               | rebuild half of my base because of some thing and I don't
               | want to spend so much time with inactive base. And my
               | internal perfectionist can't live forever with quickly-
               | hacked sub-par solutions.
               | 
               | Robots at least make it somewhat bearable.
        
           | js8 wrote:
           | My recipe to monotony of early game was to design a really
           | small starter base (~20 red/green/black/blue science per
           | minute) with the explicit target to produce construction
           | bots. With bots, things become easier.
           | 
           | That being said, I understand the sentiment. I have been
           | playing lots of modded Minecraft and Factorio over the past
           | decade, and lately I felt a bit of guilt because I feel I
           | could be working on some other, more meaningful, project.
        
           | Jakobeha wrote:
           | When I first picked up Factorio I loved it for about ~12
           | hours. Then I just felt, everything is too hard and there
           | isn't a sense of purpose.
           | 
           | For me, I think it would me a fun game if there was more
           | strategy or something else to do besides build the factory.
           | It seems to me the progression system is actually really
           | linear.
           | 
           | > I get bored in the monotony of the early game, and I'm too
           | stupid to keep things going in the mid game.
           | 
           | This is my other big issue. I don't like putting in much
           | effort when playing video games. It seems like just getting
           | blue science takes hours of work, and those hours were fun
           | for the first factory, but now it's just repetitive.
        
             | kzrdude wrote:
             | The invading bugs sort of are the purpose, to defend
             | against those. But I find it tedious, so I like to turn
             | them off, and then yes, the game is even more noticeably
             | lacking purpose.
             | 
             | I think though that making train networks is my big
             | pleasure with the game. Very satisfying.
        
         | derefr wrote:
         | An interesting thing about Factorio to me (beyond what's stated
         | in the linked article), is that it contains a _nearly_ a
         | perfect 1:1 analogy to software concurrency.
         | 
         | * Belts are blocking CSP channels, as seen in e.g. Golang
         | (where N producers have to share -- or eventually "merge onto"
         | -- one channel representing the blocking-receive point of the
         | consumer; which are best only used to transport messages of a
         | single type, or if not, then the sum-typed channel must be
         | demultiplexed at the end, with this tending to lower
         | throughput; where messages of a given type "queue up" until the
         | channel is full, and then all producers block when attempting
         | to write to the channel; where if you've got producers
         | producing at different rates, then the fastest ones can hog the
         | capacity of the channel, decreasing throughput and unevenly
         | spending input resources such that some components fail long
         | before others; where the solution to this is to give each
         | producer its own bounded outbox channel that multiplexes onto
         | the consumer's channel, such that the producer will block
         | _itself_ rather than blocking its siblings; etc.)
         | 
         | * Logistics robots are message-queue topics (where N producers
         | can publish messages of a given type, without worrying about
         | how they'll get to a consumer; where consumers [demand chests]
         | subscribe to specific event message types; where the bus itself
         | can get overloaded, causing delivery failures of unrelated
         | topics as delivery-threads sit around holding a message unable
         | to deliver it; where the solution to this is to add reliable
         | MQ-internal storage [network-linked storage chests] for the
         | agents to offload produced messages to until demand comes for
         | them.)
         | 
         | (Sadly there's no exact equivalent to Erlang-style message-
         | passing, where producers target messages of arbitrary type at a
         | specific consumer, which all go to the consumer's single inbox;
         | and where, if that inbox is full, then the message just
         | "evaporates" en route, since the passed message has async
         | semantics where the producer isn't linked to its delivery. But,
         | interestingly, that type of concurrency totally _could_ be
         | added, with a not-even-very-complex mod -- just add a "outbox"
         | chest object that can be configured to "target" a specific
         | "inbox" chest somewhere else; and a second type of logistics
         | robot that _only_ moves stuff from outbox chests to inbox
         | chests, not according to "demand" but just because anything
         | currently sitting in an outbox chest is "intended to be" in the
         | corresponding targeted inbox chest; and then ensure that this
         | alternate type of logistics robots have non-reliable delivery
         | semantics, where if the "inbox" chest signals to the network
         | that it's full, then all active delivery-threads targeting that
         | inbox will literally "drop their messages on the ground".)
         | 
         | IMHO it's actually possible to learn how to be an effective
         | distributed-systems engineer, just by playing Factorio and
         | trying to scale the throughput of a resource-constrained
         | system. In the process, you'll likely re-invent many real-world
         | concurrent software design patterns. Doing this _first_ , and
         | _then_ reading a Distributed Systems textbook, will have a much
         | more visceral impact on you, because you'll have already
         | _faced_ these problems, struggled with them, and now you're
         | being handed all the techniques for solving them on a silver
         | platter.
        
           | TOGoS wrote:
           | I wanted, but never got around to, creating a mod that
           | accepts some kind of data outside the game (lines of text,
           | JSON objects, packets from the TUN driver, whatever), wraps
           | them up as Factorio objects, and plops them onto a belt, and
           | another that reads them and sends them back out.
           | 
           | The idea being that this could be (A) a cool hack (belt speed
           | factoring into ping time, lmao), but (B) a way to visualize
           | data flow in complex queue systems.
        
             | Buttons840 wrote:
             | Oh, that would be cool. You could implement sorting
             | algorithms and such.
        
             | kortex wrote:
             | Sounds a lot like clustorio.
             | 
             | https://mods.factorio.com/mods/Danielv123/clusterio
        
             | FredPret wrote:
             | Hell, why not turn Factorio into a programming language?
             | 
             | If you can translate a real-world problem to in-game
             | problems, it'd be so much fun to solve them that you'd
             | probably launch a new epoch in human history - the Factorio
             | Age
        
               | hanikesn wrote:
               | There's a verilog2factorio compiler:
               | https://github.com/Redcrafter/verilog2factorio
        
               | FredPret wrote:
               | That's amazing!
        
               | bregma wrote:
               | And then Mazer Rackham reveals the truth about every
               | Factorio game played since the official 1.0 release.
        
           | benlivengood wrote:
           | > (Sadly there's no exact equivalent to Erlang-style message-
           | passing, where producers target messages of arbitrary type at
           | a specific consumer, which all go to the consumer's single
           | inbox; and where, if that inbox is full, then the message
           | just "evaporates" en route
           | 
           | Train stations plus circuits can do this. Trains can be
           | configured to leave a station when not empty (after receiving
           | a message item of any type), and recipient stations can be
           | disabled by a circuit if the receiver is full, causing the
           | train to skip the station. The last station on the train's
           | route would empty it before it goes back to waiting for a
           | message item to deliver.
        
             | derefr wrote:
             | Not quite the same scheduling/locking semantics, though --
             | sure, it's "concurrent" and packet-oriented, but it's a
             | token ring. It's similar to the original Redis model of
             | concurrency: just have everyone make a series of tiny
             | requests, and then loop around / select(2) from your
             | clients, handling each client's latest request serially,
             | with no request queuing because all requests are
             | synchronous/blocking for the client making them.
             | 
             | N logistics bots are a much closer analogue to N scheduler
             | threads each working _in parallel_ to 1. take a message
             | from a priority heap (really, to take a schedulable process
             | from a priority heap and then run it to produce messages,
             | but same difference) and then 2. synchronously shuttle that
             | message to its destination queue.
             | 
             | I suppose you _could_ get the same semantics with N
             | parallel train tracks, one per scheduler-thread; plus an
             | actual scheduler priority-queue implemented in circuits.
             | But I feel like that 's a "non-idiomatic case", in that, no
             | matter how you designed your stations or where you put
             | them, it'd be incredibly painful to design a
             | loader/unloader for a "bus" of parallel train tracks.
             | Especially if all the trains arrive together. It'd be a
             | setup the devs would take one look at and say "that's too
             | much of a kludge, and yet the kludgeyness is necessary, and
             | that's our fault for not including a necessary abstraction.
             | We'll just put in that abstraction."
             | 
             | (The alternative would be a mod that allows trains to _pass
             | through_ one-another on a track. Then you could have one
             | train-line where each train cleanly represents a scheduler
             | thread. No idea what would happen if they tried to stop at
             | the same station at the same time, though. Ghost trains~)
        
           | nthj wrote:
           | Also I see trains as network design. You have to commit to
           | the train size upfront (network block size) and you can hit
           | throughput limits
        
       | FredPret wrote:
       | My biggest Factorio lesson was this:
       | 
       | I no longer start a new factory from scratch if I want to do
       | things differently. I use my existing - and now outdated -
       | factory to launch a new one a few minutes run away.
        
         | kortex wrote:
         | Throw the first one away. Especially when starting a run, plan
         | on throwing away the starter base.
         | 
         | I learned this trick watching AntiElitz speedruns. He'll build
         | a manual bootstrap "factory" (really just mines and smelting)
         | to get plates, then build a very-polished-through-iteration
         | bootstrap base which builds all the development essentials -
         | circuits, arms, belts, ammo, etc. That's used to build the
         | _real_ base.
        
           | zentiggr wrote:
           | That sounds a lot like the old Gentoo stage 1 / 2 / 3 build
           | system...
           | 
           | Makes me a little more interested, in general.
        
       | mikewarot wrote:
       | I find myself playing Rocket Rush, without the rush. This allows
       | access to all the tech without the grind. I've built so many
       | small nuclear plants with a bunch of steam tanks to store the
       | power until needed. I've also built a ton of solar arraignments.
       | 
       | The constant things I always buy are 4 heavy oil, and 200
       | plastic. I usually get 10 miners, electric furnaces, and level 2
       | assemblers. Once I have power, and coal gasification up and
       | running for plastic/explosives/batteries, it's just a grind.
       | 
       | I've settled on using an Island terrain, to give it an end,
       | rather than just not wanting to keep expanding forever. Once the
       | island is cleared, and has radar, it's time to start again.
        
       | alexwebb2 wrote:
       | Quick links to the five "must read" posts that William
       | highlighted:
       | 
       | > FFF #243 - New GUI tileset: Showing off their GUI design
       | document. A MUST READ, if only for a good example of a
       | comprehensive design style that fits the game theme perfectly.
       | (https://factorio.com/blog/post/fff-243)
       | 
       | > FFF #176 - Belts optimization for 0.15 : Incredible analysis of
       | transport belts and optimizing their performance. A MUST READ.
       | (https://factorio.com/blog/post/fff-176)
       | 
       | > FFF #204 - Another day, another optimisation : Solid technical
       | writeup on how a prefetching optimization patch works across a
       | number of resource-heavy factory builds. A MUST READ.
       | (https://factorio.com/blog/post/fff-204)
       | 
       | > FFF #296 - All kinds of bugs : The snippet at the bottom is a
       | perfect encapsulation of their attitude towards problem solving.
       | It's such a simple concept, just going a little farther, that can
       | take tremendous discipline and focus. A MUST READ.
       | (https://factorio.com/blog/post/fff-296)
       | 
       | > FFF #356 - Blueprint library for real : Michal "kovarex"
       | Kovarik, one of the two cofounders, talks about falling out of
       | the development process, losing his sense of purpose, and how
       | playing Factorio with his son brought him back. Reading this one,
       | even through the sometimes-broken English, is inspirational and a
       | wonderful look at how things fall apart and come back together.
       | Like I mentioned in the intro, this is one of those rare, special
       | offerings that is technical in nature but deeply personal and
       | human-centric in form. A MUST READ.
       | (https://factorio.com/blog/post/fff-356)
        
         | bombcar wrote:
         | > Earlier this week we got a bug report about the game
         | freezing, consuming all of the available RAM, and then crashing
         | when it ran out of RAM. It was again a modded save file so my
         | first instinct was to blame it on a mod. Again, I had to test
         | it. And again... it's never what you think it is.
         | 
         | > So, I still repeat the phrase: "Crashing on dereferencing
         | null? Just add a null check!" as a reminder to myself and
         | others to always look deeper into why and never stop at the
         | basic symptom of a problem.
         | 
         | I feel this is a very important rule that people often forget -
         | most anytime your "safety" code triggers, something went wrong
         | somewhere else and it can be worth tracking it down.
        
           | pdpi wrote:
           | It's a perfect example of how useful it is to think in terms
           | of what invariants should hold and why.
        
         | scrollaway wrote:
         | 356 is a really nice read. inspirational indeed.
        
           | throwawaw wrote:
           | Yeah, that one caught my eye (and then moistened it).
           | 
           | The way he breaks his slump by sharing Factorio with his son
           | -- what a wonderful, unexpected benefit of working in games.
           | How many of us will get to do something like that?
        
         | unspecified wrote:
         | > FFF #176 - Belts optimization
         | 
         | The last bit of this post mentions UDP packets not making it
         | through ISPs if their checksum is 0x0000 or 0xFFFF...what is
         | THAT all about? This would have been in February of 2017.
         | 
         | > If you remember from the previous FFF, our map downloader was
         | having some extremely rare problems with some mysterious
         | packets that would always get filtered over the Internet. We
         | already had a fix for it, but I was curious what was going on.
         | Thanks to the investigative power of the Factorio community, we
         | found out that all those mysterious packets, before NAT, had a
         | checksum of 0xFFFF. Admalledd from the forum sent some hand-
         | crafted packets through his Internet connection and surprise,
         | all packets would go through, except those with a checksum of
         | 0xFFFF or 0x0000. At this point I would just assume this
         | ISP(and some other few ISPs around the world) have some faulty
         | hardware or software that do not handle these special cases of
         | UDP checksums.
        
           | zamadatix wrote:
           | If the checksum comes out as all 0's you're supposed to make
           | it all 1's (0 in a UDP checksum means no checksum) so really
           | it's related to that singular value and, if you've ever seen
           | the quality of some of the dirt cheap hardware with ancient
           | firmware some carriers use, it's really not that surprising
           | for it to be bugged as described as they really don't care
           | about dropping the occasional UDP packet when it's probably
           | dropping more than that of general traffic due to how cheap
           | and overrun it is anyways.
        
       ___________________________________________________________________
       (page generated 2021-06-09 23:00 UTC)