{"id":52204,"date":"2021-04-29T06:00:10","date_gmt":"2021-04-29T10:00:10","guid":{"rendered":"https:\/\/www.shamusyoung.com\/twentysidedtale\/?p=52204"},"modified":"2021-04-29T10:45:08","modified_gmt":"2021-04-29T14:45:08","slug":"factorio-part-2-optimize","status":"publish","type":"post","link":"https:\/\/www.shamusyoung.com\/twentysidedtale\/?p=52204","title":{"rendered":"Factorio Part 2: Optimize!"},"content":{"rendered":"<p>So let&#8217;s talk about some Factorio theory. I should note that I&#8217;m <b>not<\/b> an expert. This post isn&#8217;t a super-definitive analysis on how to optimize your base. I&#8217;ve logged over 2,000 hours with this game, but frankly that&#8217;s chump change compared to what <a href=\"https:\/\/www.youtube.com\/watch?v=VC0UhnGIWzA\">the seriously high-level players<\/a> can claim. And despite all my time with the game, I still need to look things up on <a href=\"https:\/\/wiki.factorio.com\/Tutorial:Nuclear_power\">the wiki<\/a> from time to time.<\/p>\n<p>But I&#8217;ve never let a lack of expertise stop me from playing the game, so I&#8217;m not going to let it stop me from talking about it.<\/p>\n<p><!--more--><\/p>\n<p>Broadly, there are three approaches to building your base.<\/p>\n<h3>The Hodgepodge<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/factorio_hodgepodge.jpg' width=100% alt='' title=''\/><\/div><div class='mouseover-alt'><\/div><\/p>\n<p>Above is a screenshot I took back in 2016. I cringe when I look at it today. There&#8217;s tons of wasted space. There are no walkways. Almost everything is sitting on the dirt rather than having a stone or concrete base. I&#8217;m severely under-utilizing the resource patches. Low-level production is positioned right next to the rocket. <\/p>\n<p>Worst of all, I only see TWO refineries??? In my current games, I always have multiple outposts harvesting oil, every outpost has an array of a dozen or so speed-boosted refineries, and it <strong>still<\/strong> feels like it runs too slowly. You can see in the screenshot that I&#8217;ve just launched the rocket. I can&#8217;t imagine how I pulled that off with just two refineries. It must have taken <strong>ages<\/strong>.<\/p>\n<p>Here is how you wind up with a hodgepodge base:<\/p>\n<p>Due to lack of experience, I&#8217;m not sure how many machines I need to build or how much room they will need. So I figure I&#8217;ll just leave some random gaps around things.\u00a0<\/p>\n<p>Later I unlock Arbitrary Gizmo #37, <span class='snote' title='1'>Not the real name. The game has coherent names for all the products, but you don&#8217;t need to worry about remembering them all for this example.<\/span> but I don&#8217;t know ahead of time where all of these gizmos would be needed later on. I don&#8217;t know how many I&#8217;ll need, or what the resource bottlenecks will be down the line.\u00a0<\/p>\n<p>So then later in the progression I realize I need some Gizmo37 on the exact opposite side of my base. As a result, I have to snake a long conveyor between the other blocks of machines, criss-crossing with all the other conveyors from all of the other misplaced product factories.\u00a0<\/p>\n<p>Later I realize I need about twice as many Gizmo37&#8217;s as I&#8217;ve been making. The original machines are fully surrounded by now, so I can&#8217;t just add more beside the earlier ones. So I have to build another block of assembly machines somewhere on the edge of my base to make more Gizmo37.\u00a0<\/p>\n<p>Later on, I realize that I&#8217;m still short on Gizmo37s. I check my machines to see what the problem is, and discover they&#8217;re not getting enough (say) copper. So what do I do? Run additional conveyors to these two groups of machines? Mooch some additional copper from nearby production blocks and hope that I don&#8217;t starve some other product?\u00a0<\/p>\n<p>In the end, I wind up with everything being produced in random places. I&#8217;ve got spaghetti conveyor belts running all over the place in ways that make it impossible to get a sense of the flow of materials. There&#8217;s a lot of dead space between groups of machines that are big enough to waste space but too small to be used to build anything useful. Some conveyors are backed up, and in other places machines are starved for resources.\u00a0<\/p>\n<p>This is how I won the first couple of games of Factorio. It was basically an unintentional comedy where I didn&#8217;t realize just how terrible I was.\u00a0<\/p>\n<p>Eventually I realized I needed a better system. So I decided to get on&#8230;<\/p>\n<h3>The Bus<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/factorio_bus.jpg' width=100% alt='Here my conveyor bus runs right-to-left. Sometimes the positioning of resources on the map will force me to go against my preference of building horizontally, left-to-right.' title='Here my conveyor bus runs right-to-left. Sometimes the positioning of resources on the map will force me to go against my preference of building horizontally, left-to-right.'\/><\/div><div class='mouseover-alt'>Here my conveyor bus runs right-to-left. Sometimes the positioning of resources on the map will force me to go against my preference of building horizontally, left-to-right.<\/div><\/p>\n<p>I came up with this system on my own, and then later discovered that everyone else came to the exact same conclusion. I didn&#8217;t know this system was called &#8220;The Bus&#8221; until a few years into my Factorio career \/ addiction. <\/p>\n<p>The Bus is where you basically apply <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cable_management\">cable management<\/a> theory to your conveyor belts. You have a central spine of parallel conveyor belts that (hopefully) run in a straight line through your base. This is the bus.\u00a0<\/p>\n<p>You might need to make the bus turn if you&#8217;ve got natural obstructions in your way, like lakes, cliffs, or nests of alien bugs. You eventually unlock ways to clear all of these things, but you don&#8217;t want to run into an obstruction before you have the tools to deal with it. I usually scout around the area during the burner phase of the game and find a nice long stretch of land where I can put my bus without running into these sorts of problems.<\/p>\n<p>You build clusters of machines on either side of the bus. You use a splitter to draw some resources from the bus. When those machines spit out their products, they get added to the bus.\u00a0<\/p>\n<p>So at the start of the bus you&#8217;ll have very basic products like copper and iron plates. As you traverse the bus, those conveyors will start to run out of resources as a result of all the machines skimming off what they need. At the start of the bus your iron plates will be packed tightly, and on the far side they&#8217;ll be a trickle. Meanwhile, the bus will accumulate new conveyor lanes with new products.<\/p>\n<p>When you&#8217;re done, the base should be very easy to follow. Just walk along the bus and you can tell where things are going by looking at the conveyors.\u00a0<\/p>\n<p>The bus is great for keeping things organized, but the problem is that\u00a0 you&#8217;ll eventually run into throughput problems. This brings you to the most ambitious form of base-building&#8230;<\/p>\n<h3>The Outpost System<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/factorio_megabase.jpg' width=100% alt='' title=''\/><\/div><div class='mouseover-alt'><\/div><\/p>\n<p>&#8220;Outpost&#8221; is my name for this approach. I think the community calls it a &#8220;megabase&#8221;. I played almost 1,000 hours of this game before I engaged with the community, so I ended up coming up with a lot of my own names for things.<\/p>\n<p>Above you can see a map of my so-called &#8220;megabase&#8221;, although I think mine barely qualifies. Sure, a lot of production has been moved away from my central base and into these various outposts, but this whole setup is absolutely puny compared to the gargantuan planet-smothering bases that the experts have <a href=\"https:\/\/www.youtube.com\/watch?v=etMx0sI4_Uo\">built<\/a>.<\/p>\n<p>If you&#8217;re really looking to scale up and build ultra-fast research and rocket-launching systems, then you have to give up your bus. At least, you have to give up on the idea of having a single bus for your entire base.\u00a0<\/p>\n<p>One of the components of the rocket is the Rocket Control Unit. You need 1,000 of these RCUs (plus other parts) to complete one rocket.<\/p>\n<p>An RCU is like a computer of some sort. So it&#8217;s made from complex circuit boards, that are made of more basic circuit boards, which come from the simple circuit boards. If you run the numbers for the entire production chain, you&#8217;ll discover that it takes 39 iron plates, 72 copper plates, and 14 plastic bars to make a single RCU. That&#8217;s a total of 125 items of raw materials to make one RCU.<\/p>\n<p>So we can think of products as a kind of compression. If you want to make 1,000 RCUs, then you need 125,000 raw items. If you try to send that much crap down your main bus, then you&#8217;re going to run into massive throughput problems. A few weeks ago I posted the following image, showing the throughput of the various belts in the game:<\/p>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/factorio_belts.gif' width=100% alt='' title=''\/><\/div><div class='mouseover-alt'><\/div><\/p>\n<p>Only the top three belts are part of the main game. The rest come from a mod. You can see that the best non-mod belt can only deliver 45 items a second. That works out to 2,700 items a minute. That means it would take 46 minutes to feed all the raw materials through a single belt. (Nobody would actually use ONE belt for this, but I&#8217;m just trying to illustrate where the throughput problems come from.)<\/p>\n<p>And remember that RCUs aren&#8217;t the only parts you need. You also need 1,000 units of Low Density Structure and 1,000 units of Rocket Fuel. Those items are also made of items that are made of items that are made of items.<\/p>\n<p>You can try the Downtown LA solution and add more lanes, but eventually you run into horrendous load-balancing problems where some lanes are saturated and others are almost empty. That&#8217;s not hard if you&#8217;ve only got one or two, but balancing a load across (say) 7 lanes is going to be a nightmare. Worse, having that many lanes of all your major resources will make your bus incredibly wide. This will make it a lot harder to tell what&#8217;s going on by glancing at your bus, because it&#8217;ll be so wide it won&#8217;t all fit on-screen at normal zoom. This also creates routing headaches in trying to move different resources around on the belt so they can reach the machines that need them.<\/p>\n<p>Again, this is fine if you&#8217;re happy to sit around for twenty or thirty minutes waiting for the next rocket, but if you want launch times under that then you need a different approach.<\/p>\n<p>Instead of using a single bus of raw materials, the idea is to have remote outposts all over the map, positioned near resource patches. These outposts construct intermediate products, which are then shipped to your main base by train. So instead of trying to shove 125,000 raw products through your main bus, maybe you only need to push through a few thousand circuit boards. This means fewer lanes and less chaos. Although now you need to worry about managing a complex train network.<\/p>\n<p>I&#8217;ve done a couple of outpost \/ megabase builds by now. It&#8217;s a better, more efficient system, but it takes <b>forever<\/b> to build.\u00a0<\/p>\n<p>Next time I&#8217;ll give you a tour of my base and you can laugh at my design. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>So let&#8217;s talk about some Factorio theory. I should note that I&#8217;m not an expert. This post isn&#8217;t a super-definitive analysis on how to optimize your base. I&#8217;ve logged over 2,000 hours with this game, but frankly that&#8217;s chump change compared to what the seriously high-level players can claim. And despite all my time with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[612],"tags":[],"class_list":["post-52204","post","type-post","status-publish","format-standard","hentry","category-retrospectives"],"_links":{"self":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/52204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=52204"}],"version-history":[{"count":13,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/52204\/revisions"}],"predecessor-version":[{"id":52217,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/52204\/revisions\/52217"}],"wp:attachment":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}