7 ms·
> a certain component (electronic circuits) was being produced in 4-5 places. I eventually replaced them all with one centralised production array to simplify t
by kentonv 6y ago
> a certain component (electronic circuits) was being produced in 4-5 places. I eventually replaced them all with one centralised production array to simplify the factory.
Nah, electronic (green) circuits are high-volume but low-complexity to build. They are a good example of something that should not be produced centrally, because if you do, you have to invest a lot in high-volume transport to get them where they need to go. Much better to build dedicated electronic circuit factories wherever they are specifically needed.
Silly analogy to programming: Microservices. It makes sense to have a microservice to perform, say, user authentication, which is complex and only needed occasionally. It does not make sense to have a microservice to implement printf formatting, because you'll be calling it way too often and it'll waste a ton of network bandwidth. Better to import a string formatting library into each service.
- hackcasual 6y agoBut they stack better in trains. A train load of greens is equivalent to almost 5 train loads of it's precursors
- deleted 6y ago[deleted]
- m463 6y agoThat's a good point. 300 copper (= 600 copper cables) + 200 iron => 200 green circuits in a stack.
- hackcasual 6y agoYep, it's one of the reasons smelting where you mine is popular with train based logistics, since that doubles your density
- AtomicPlayboy 6y agoDRY, also known as single source of truth, is one of the most important principles in SE. I just could not figure out what the single source of truth is in a factory pattern as is the electronic circuit factory. It implies centralizing the code which is responsible by the fabrication of the circuits, what would be their equivalent in the game? The conveyor belts? Microservices, on the other hand, are overrated and unnecessary in most cases they are applied.
- beckingz 6y agobleuprints. You design a decent submodule one time and then make a blueprint and reuse it repeatedly.
- mikeappell 6y agoGonna disagree there: green circuits (and their descendents) are needed often enough and in high enough volumes that it absolutely makes sense to bus them. I've got four full lanes being almost completely consumed, much by red circuit production. Certainly if you need a very small volume in one specific location and already have copper and iron present you can slap down an assembler making copper wire and another making the circuits, but that's generally far less space efficient than just pulling them in from the bus.
- kentonv 6y agoTo me the "main bus" design feels like Java OOP maximalism. Maybe some sound principles behind it, but feels too heavy-handed, unable to adapt to circumstances. Or at the very least, it's not any fun.
- lalaland1125 6y agoIt's actually the opposite. Having a main bus tends to make your factory more flexible and easier to adapt for improved technologies / throughput.
- kentonv 6y agoThat's what Java OOP people would say too. ;)
- munchbunny 6y agoMain bus designs work really well for building one factory to launch a rocket because the resource demands aren't so high that you run into belt scaling problems. If you're going for one of those crazy ridiculous high output post-endgame factories, the sheer complexity of running 8+ belts of one resource and branching off 2-3 belts at a time, then having to double that to go from 1k SPM to 2k SPM is way too painful. That's why most of the factories you see north of 2k SPM aren't main bus designs (aka well organized monolith), they're modular designs ("microservice" based). I put that in quotes because at those scales the sub-factory for creating a single input resource might be bigger than a whole base used for launching a rocket. The analogy actually applies really well to software engineering: for a practice that works really well for 99% of the players (main bus), at a certain level of scale the approach breaks down, and you need a different approach to deal with scaling past that point. As evidence for that, I usually use a main bus design to get to the endgame, but once I start the megabase scale climb, I break the factory out into discrete, networked (by train) modules in order to keep the resource distribution problem under control.
- cortesoft 6y agoNah, as others have pointed out, green circuits are used everywhere. Since they meet that requirement, the only thing else to ask is, "Do the materials take up more or less space than the item produced?" For green circuits, it takes less transport to move the green circuits than to move the materials to make them, so you should make them centrally and distribute the circuits. Copper wire, on the contrary, is used in many things but takes up more space than copper plate, so you should make it locally.
- kentonv 6y agoIf belt networks were only about capacity, sure. But you can't put two different kinds of things on the same belt lane without creating some serious trouble. So, the more different kinds of things you want to transport by belts, the more parallel belts you need. Plus, you need those parallel belts early on, even before any of them are running at capacity. I find it much easier to lay down just iron/copper belts and upgrade them as needed -- upgrading speed in cases where adding parallel lanes is inconvenient.
- cortesoft 6y agoSure, but this is only an issue if you need less than a full belts worth of green circuits... if you remove that belt of green circuits, you are going to have to replace is with MORE than one belt of raw materials.
- llukas 6y agoOn full scale it is about trains worth of green circuits.
- deleted 6y ago[deleted]
- fennecfoxen 6y agoIt’s not just about capacity. It’s also about: - using machines efficiently (in the sense that a central production facility means idle-capacity can be used elsewhere) - replacing production efficiently, I.e. yolo build a potato-quality factory now so that it’s actually producing, then expand it to hyper efficient maxed productivity modules in all the machines between maxed speed beacons later (so your resources go further and you don’t need to spend as much time building remote bases), but do not interrupt production forever to rebuild everything during the transition. Yolo-building with a high quality strategy to replace components is also a great strategy for startups. In either case the real limiting resource is manpower. And I typically target about 8 belts of green circuits, to feed a nonstop-rocket shop (avoiding the major transition off belts altogether.) Get a balancer design off the Internet. It’s fine. :)
- searchableguy 6y agoI wonder given the interest of people in factorio here, maybe there could be a HN factorio server.
- kentonv 6y agoEh, personalaly not into internet multiplayer -- prefer LAN parties. https://kentonshouse.com https://kentonshouse.com
- erulabs 6y agoHappy to host this - my startup already hosts a couple hundred factorio servers :)
- keithnz 6y agoan OARC style one would likely work well given how distributed everyone is around the globe
- Forge36 6y agoIt doesn't make sense to centrally build on belts. At high volumes where trains become more common it can be useful to move to buffer systems dedicated to circuits. It highlights what resources you're short on more obviously (steel or copper). Sometimes with caching it makes more sense to consolidate. Sometimes the scale can cause latency issues! It's about balancing tradeoffs
- james_s_tayler 6y ago>It does not make sense to have a microservice to implement printf formatting, because you'll be calling it way too often and it'll waste a ton of network bandwidth http://shoutcloud.io/ http://shoutcloud.io/
- deleted 6y ago[deleted]