Apr. 10th, 2018

Factorio

Apr. 10th, 2018 09:53 am
jack: (Default)
Oh gosh, I knew this was going to be addictive for me and it was. You're crashed on an alien planet and need to build enough smelting, industry, power etc to eventually launch a rocket. But most of the game is about the layout of stuff, about getting a million conveyor belts getting the right components to the right machines without bumping into each other, and about layout out pipes between lakes, oil refineries, factories etc without getting into a giant knot.

I knew it would be but it's *really* *really* like software engineering. Like, you can *see* exactly what spaghetti code is: when you lay things out neatly and can see where everything is, it's easy to change things, but when you grow your conveyor belt layout organically, you can add *one* line fairly easily just fitting it in here and there, but if you do that often, everything ends up an unchangeable mess and you can't do anything with it without breaking half the existing stuff.

Somewhere in the middle you get useful tools like grabbers which can be programmed in unlimited ways, so you can turn things on only when you need the outputs, and even construction bots which can duplicate large sections of your factory.

Introspection and perfectionism

And you realise things. My instincts are always to build exactly the right amount of intermediates that the outputs need. But that doesn't actually work most of the time. Intermediates you always need for a specific product, and don't need LOTS of, it's often sensible to build a "manufacture the intermediates and final product" block with the assemblers all next to each other. Intermediates you need all over the place it's usually sensible to just manufacture lots of. But then you need to say -- you don't want to process ALL your iron into cogs, or you'll run out of iron for everything else. But you do need a *lot* of cogs. Is it better to just make cogs, and rely on that when you have "enough" cogs and the conveyor belt backs up, the cog machines stop taking iron? But then if you build too many further machines that need cogs, they'll never be satiated and everything that needs iron will start shutting down. Is it better to split the incoming iron 50/50 or some other proportion between iron and the basic iron intermediates like cogs and steel? But then what if that ratio's not correct. Or is it better to adjust depending on which important final products are running short?

My instinct is that there should be a perfect "right" way. But because you need to add new final products and change proportions and cope with raw fuels temporarily running dry, that's basically impossible, it's better to segregate the various stages, and turn on the earlier stages as needed (I haven't actually done that yet but I can see the benefit).

Specific parallels

And likewise, duplicating a section of your factory once you have the right construction bots, and once you manufacture enough of all the buildings etc needed, is just a push of a button and a short wait. But it takes ages to make all the edges line up right so the new conveyors get the right input etc.

Or, a thought occurred to me driving to work, you know construction sites always seem to be "nothing, nothing, nothing, suddenly a building"? Well, software development often *is* like that, and I know exactly why even though I don't like believing it: because there's an awful lot of work in getting things working together, so the actual working on things is comparatively scattered. (And you can either frontload it, and then have years of technical debt and trying to bodge things together, or build everything right but it's ages before you get things working. And wisdom is knowing the right balance :) )

It also gives insight into firefighting vs planning. You need a certain amount of "fixing up" things, at some point ore runs low and you need to lay out dozens of smelters and stuff on a new ore field, there's no way of avoiding that. And often, *something* will back up, or run out, or get mixed between two belts or something, for completely deterministic reasons that you *could* have forseen, and you need to take care of it. But if you spend *all* your time doing that you'll never make any progress. And conversely, sometimes it's easier to take a shortcut, like loading an assembler with the appropriate inputs manually, if you expect it to be a while before you run out -- but even if you do, it's useful to think through where you would put the proper conveyor belt feeds, e.g. by having an inserter that grabs from a chest, but you can replace with a belt when you need. That, "do the simple thing, but leave the connectors in place for replacing it with a polished version when you need" is often a very useful approach.

Aesthetics

It's pretty atmospheric. The background sounds vary according to what's on the screen, so you can *hear* radars blipping and furnaces roaring. I played on peaceful because I didn't want the pressure of fighting off alien wildlife at the same time, but those are pretty beautiful in a monstrous way. And when things are humming along perfectly it's really impressive. It reminds me, how much I love making complicated elegant mechanisms, and I need to do more programming where I design a thing as well as learn a new thing.
jack: (Default)
Pipes (and mining drills) you can't run through are so annoying! Everyone said "give yourself enough space for your oil/chemical processing" and I still didn't space it out enough. It needs to be spaced enough that you can use underground pipes for everything except corners. And so the pipes don't "snap to" neighbouring pipes of other types.

For a long time there was a dichotomy between "do everything with belts" and "do everything with robots". They rejigged it so robots are still awesome, but they do construction and deliver materials and equipment to you, so you can just build stuff without worrying about running out, and use them to build large areas -- but they no longer do feeding into assemblers until you're much further through the game, and don't do high throughput as well, so there's a reason to use belts to automate all the big stuff, not just forget about them once you get bots.

There's always "something to do next", tidying up stuff, or automating the next thing, or building a bigger better version, which makes it very very addictive.

The specifics aren't very realistic, but the general feel of "this is complicated" really is.

ETA: It used to be the case you needed to raid alien monster nests to find some particular resources for "alien science". They rebalanced this in one of the big updates, which overall works a lot better: there's more intermediate tiers of research which gives various different technologies, so it's more plausible to choose what to focus on, not just get stuck on the first two for 90% of the game, then get everything all at once. But I miss that there was something you used to need to go out and find (other than more resources).
jack: (Default)
Initiation, Chris Babu

YA dystopia, the protagonists live in the crappy zone of "New America", an enclave comprising New York, after everywhere fell to some pandemic and other things. And there's an "an initiation", where they can volunteer to attempt, which can promote them to one of the other zones. Which turns out to involve passing along the old subway from the crappy zone to the best zone, and at each station facing some sort of mental or physical challenge.

The fact they have this system seems contrived (as does a lot of other stuff), but the process of the protagonists getting past it is really tense! The challenges work very well, the puzzles are sometimes ones I'm familiar with, but sometimes not. The physical challenges were pretty scary, which I rarely say! Just close enough to something I could theoretically do to be terrifying, when more extreme things common in fiction are just quite abstract to me.

The friends and family stuff early on was good too.

I still think this system makes NO SENSE. They address it several times, but it still doesn't seem convincing that they *have* this test no-one's intended to pass. It's not surprising it exists (e.g. see the horrible "intelligence tests" that are impossible but look superficially plausible used to deny people rights in various places), but everyone is already segregated by zone, no-one would find it *more* unfair if they just didn't have it.

Artemis, by Andy Weir

A pretty good yarn, I loved seeing his vision for what a Moon city would look like. But I wasn't convinced all the worldbulding made sense, or that he'd done the best job he could writing a female character.

Provenance, Ann Leckie

More aliens! I'm really glad, I wanted more aliens. And a view from outside the Radsch. Everything else was very well done, although I didn't love it as much as I loved the protagonist of the previous trilogy.

Clocktaur book 2, Ursula Vernon

Only half way through, but, you know, about as good as the first one :)

Wow, I haven't had much time for reading for a while, but I've gone through quite a lot recently.

Active Recent Entries