[HN Gopher] Show HN: terraform-provider-factorio
___________________________________________________________________
Show HN: terraform-provider-factorio
Author : efokschaner
Score : 42 points
Date : 2021-05-28 16:07 UTC (6 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| linkdd wrote:
| Is this the future of Factorio blueprints?
|
| Is this the birth of FactoriOps?
| dragontamer wrote:
| Unlikely.
|
| For people who do want to "play the game" so to speak (aka:
| make a 1kspm factory or rocket-per-minute factory), the
| methodologies for achieving that are pretty well known at this
| point in the community.
|
| The "blueprints" you need are mostly rail-blueprints (quickly
| building rail-lines and miners that connect into your greater
| design).
|
| The "logic" of Factorio factories are... unfortunately too
| simple. All resources eventually turn into science (even the
| "Rocket launch" is just a space-science generator), and then
| those science packs enter the labs, and you're done.
|
| As such: all resources form a mostly simple tree beginning
| (miners) to furnaces, to assembly machines, to science packs.
|
| The exceptions:
|
| * If you use barrels / unbarrelings, your barrels need to loop
| back to the source of fluids. You can remove this loop by
| simply using pumps and/or fluid trains instead.
|
| * Heavy Oil / Light Oil / Petroleum gas looks like it forms a
| loop at first. But it turns out its just a tree, and entirely
| solvable by simply "drawing enough Petroleum gas". If you ever
| feel like you aren't making enough Heavy Oil / Light Oil, you
| can make more science (and infinite science means you have a
| literal infinite sink), which causes any Petrol-gas backup to
| self-resolve eventually.
|
| -------------
|
| The "difficulty" of Factorio quickly becomes one of traffic
| engineering. Train intersections are one of the hardest sources
| of bottlenecks and take an extreme amount of effort to resolve
| (usually using 3-8 trains or bigger, as well as advanced
| intersection designs possibly using combinators to form
| "Traffic lights" if you need to go there). Attempts at 4-line
| rails usually fail in my experience, because a 4-line
| intersection is harder to design than a 2-line intersection.
|
| Furthermore, 2-line with 3-8 trains is sufficient for 1-rocket-
| per-minute bases. So a "proper" 4-line intersection doesn't
| seem necessary unless... you really want to go there and solve
| that problem unnecessarily. (Its a fun problem :-) So do it if
| you have fun).
|
| ------
|
| From there, you have Train -> belt and Belt-> train designs, to
| ensure you optimally unload / load the trains. Those belts that
| feed these stations need to operate at near 100% efficiency if
| you hope to achieve rocket-per-minute status.
|
| Well... maybe not "necessarily" operate at 100%. But a RPM base
| needs something like 50+ blue-belts of raw materials. So if
| you're only operating at 50% capacity, you suddenly need 100+
| blue belts (at 50%). So staying at 90% to 100% of what a blue-
| belt can handle (45 items/second) really cuts down on the size
| of your factory designs.
|
| ------------
|
| I argue that the core assembly machines are probably the
| easiest part of the design. You calculate the ideal ratio
| (though this ratio changes based off of the number of
| productivity / speed modules you use), and then build that many
| machines... careful to not run into bottlenecks (blue-belts are
| 45-items/second maximum. Stack inserters are 13-items/second
| belt->machine, or 27-items/second for machine->machine or
| machine->chest).
|
| If you're hyperoptimizing designs, its difficult to beat what
| some people in the community have made. But if you're just
| aiming to make something "decent", its not very hard to slap
| together some 8x speed beacon + PM3 based designs, even without
| any blueprints.
| deathanatos wrote:
| > _Heavy Oil / Light Oil / Petroleum gas looks like it forms
| a loop at first. But it turns out its just a tree_
|
| Don't "worry", Angel's Petrochem fixes this, and IIRC all the
| products can be reduced to syngas & produced from syngas. If
| normal oil ever gets too easy, Angels will literally melt
| your mind. No flare stacks that's cheating ;-)
|
| More seriously, this is why I enjoy some of the mod packs.
| The loops in things makes things harder, so now you have to
| really manage the by-products better. E.g., Bob's has a nasty
| challenge with sodium hydroxide, a by-product of chlorine
| production. In the early came, it can stack up, & become a
| real pain. In the late game, LDS production eats it alive, so
| much that you actually need to appropriately vent chlorine.
|
| I also appreciate playing Bobs/Angels in a sort of "try to
| waste/vent as little as possible", which means I need some
| more complex designs, normally to say "if we have waste by-
| products, use those, else, generate the product directly".
|
| I wouldn't want it in the base game, though, that's a bit
| much for new players. But the challenge exists.
|
| There's also a bit of fun w/ sulfur dioxide/sulfur in Bobs.
| You get both as products, and you need both as inputs, and
| you have to balance the production. (Or, you can just turn
| sulfur into sulfur dioxide & vent it, but that's boring.)
|
| The other bottleneck that bites me (and that has bitten me in
| my current game) is pipe throughput. We're going to have to
| re-layout some stuff, as we've hit the upper bandwidth of our
| current pipes, I think. Rocket fuel just eats hydrogen like
| crazy in ammonia/hydrazine production...
| dragontamer wrote:
| > The other bottleneck that bites me (and that has bitten
| me in my current game) is pipe throughput.
|
| Pipe throughput is a pain the first time you come across
| it. But the solution is as simple as "Belt throughput"
| issues.
|
| Run a 2nd pipe. And when that's not enough, run a 3rd, or
| 4th, or 5th, or 6th pipe. Don't overthink it, that's the
| solution.
|
| --------
|
| There's a "Trap" called pumps. Pumps can bring the
| effective throughput from 1,200 fluid/second to 12,000
| fluid/second, making you think that you've gained 10x more
| throughput per pipe. But this costs power and causes
| pollution in game, it makes it difficult to "branch" pipes
| while keep the 12,000 fluid/sec your pumps support.
|
| Furthermore, the "state" of pipes is factored into the
| equation. Momentum plays a role, and therefore the "order"
| that you place pipes, and where things flow can increase,
| or decrease throughput. So playing at the 12,000 fluid/sec
| throughput levels is only possible if you get everything
| perfectly correct (momentum and all).
|
| In contrast, you can just run 10-pipes in parallel, each
| supporting 1200/sec fluids as long as you're under
| 17-length. This is slow enough that the momentum
| calculations don't really affect you.
|
| This is only an issue on nuclear setups in vanilla (the
| only item that uses so much fluid / water). All other
| designs are petroleum / light oil / heavy oil, which is
| used at small fractions of what water-usage does.
|
| ----
|
| With the new UPS optimizations from 0.17 and 0.18,
| independent pipe networks are calculated in separate
| threads. So "parallel pipes" with no pumps are the most UPS
| friendly design you can get.
| linkdd wrote:
| That was a joke :)
|
| But for the argument's sake, imagine being able to
| collaborate with other players on Git, with a PR based
| workflow, wouldn't it be cool? Even if it's totally useless
| and inefficient?
| dragontamer wrote:
| Verilog shows that a hardware description language is
| useful, and I bet that real-world computer designs are more
| complicated than anything that happens in Factorio.
|
| Still though: it brings to mind what exactly a text-based
| language that describes Factorio factories would even look
| like? I feel like the creation of 8-beacon PM3 assembly
| machine arrays is simple enough to be automatically
| generated (ratios can be already calculated in calculators
| like https://kirkmcdonald.github.io/... the "routing" piece
| of the puzzle needs to be solved though).
|
| An "autorouter" that determines how many belts / pipes /
| trains are needed would need to be automatically
| programmed.
|
| Once such a magic program were created, the "program"
| written would almost certainly be:
|
| "Create 1000-space science per minute and feed it into a
| science array".
|
| The ratios of what make 1000-science are determined in
| stone (assuming PM3 is set in stone to make sure that
| ratios don't change).
|
| --------
|
| Its the implementation details that are all the fun in
| Factorio. How do you build the thousands of PM3 modules you
| need to make a 1000-space science per minute base? Oh, but
| to build those, you need to have 2GW of power. How do you
| build a nuclear reactor of that size?
|
| Etc. etc.
|
| All of those problems have solutions that the community
| already created. But the fun of Factorio is coming up with
| your own solution. Not relying upon some kind of shared-
| github based workflow.
|
| ----
|
| Alternatively: there are other designs (ex: "Speedrunner
| designs") that optimize on number of clicks instead of the
| optimal number of resources. Click-and-dragging red-
| inserters all over the place uses far fewer clicks than
| using yellow/blue/green inserters as appropriate, but the
| red-inserter is grossly suboptimal.
|
| Still though, by using one inserter type, you quickly
| standardize your designs and "speedrun" the game faster.
| The resource inefficiency is wiped out by the far fewer
| clicks needed to create the overall design.
|
| So I guess that's the thing about Factorio. The fun in the
| game is in making your own goals and then solving the stuff
| in your own way.
| efokschaner wrote:
| It's probably a worse solution than in-game blueprints.
|
| However it could be educational for teaching Terraform without
| needing to create real cloud infra.
| TechBro8615 wrote:
| I hope there is more exploration around a "Factorio Cloud" that
| connects multiple Factorio servers so you can visit and
| exchange resources with other factories. I think there have
| been a few projects similar to this but nothing substantial
| yet.
|
| In general I like this idea of connecting local sandbox games
| in a sort of multiverse. It would be cool if there were an
| open-world, multiplayer game where you could create portals to
| your game server(s) hosted elsewhere. So you could go to one
| portal to play a game of Civ, and another to play Factorio. And
| somehow each game could include a mod that implements a common
| interface so that your performance in that game can have some
| effect on your character in the "root" multiverse game.
|
| I get the sense this is maybe roughly what Tim Sweeney wants to
| do with Epic. And maybe Roblox has similar ideas.
| Sayrus wrote:
| Well well well do I have something a for you.
|
| > Clusterio [1] is a clustered Factorio server manager that
| provides the tooling for implementing cross server
| interactions in Factorio. It was previously best known for
| implementing cross server transfer and cloud storage of items
| via teleporter chests. But this functionality has been pulled
| out of Clusterio into its own plugin for Clusterio named
| Subspace Storage.
|
| [1] https://github.com/clusterio/factorioClusterio
| lloydatkinson wrote:
| A long time ago when Lego used to produce actual video games
| (or at least, had game companies do it) one of the games was
| Lego Loco - a game that I probably spent possibly thousands
| of hours playing as a child along with all their other games.
|
| It had the concept of being able to send postcards and trains
| that you made in game to either people on your LAN or to a
| random player on the internet. Their trains could then move
| around on your railways - and you could send it to back to
| them or anyone. The trains would go in and out of train
| tunnels.
|
| Your comment reminded me of it.
| h2odragon wrote:
| Finally got around to hacking up my own mod for factorio a month
| or so ago (bigger cargo wagons). As with the rest of their work,
| the "how to make a mod" process and documentation is exemplary.
| There's _accurate_ documentation for everything, pretty much,
| provided by the developers, and kept up to date.
|
| Contrasted with other games where "the community" and developers
| request docs and examples be taken down if someone tries to
| publish such; it's all the more wonderful.
| lights0123 wrote:
| It especially helps that the game itself is written as a mod,
| so they need good documentation internally anyways.
| efokschaner wrote:
| Anyone have other "novelty" terraform providers which are
| interesting to share?
| moondev wrote:
| https://github.com/ndmckinley/terraform-provider-dominos
| efokschaner wrote:
| I have dabbled with the pizzapi in the past, classic!
| conradludgate wrote:
| Self promo: https://github.com/conradludgate/terraform-
| provider-spotify
| conradludgate wrote:
| The terraform education team actually contacted me about this
| provider last week, I think they're going to turn it into a
| tutorial
| efokschaner wrote:
| How fun!
___________________________________________________________________
(page generated 2021-05-28 23:01 UTC)