Thoughts: Infinifactory

infini_tree

It feels somewhat dismissive to call InfinifactorySpaceChem – but in 3D!”, but that’s exactly what it is – indeed, that’s exactly what it’s marketed as in the Steam blurb:

LIKE SPACECHEM… IN 3D! Design and run factories in a first-person, fully 3D environment.

In fairness to Zachtronics they did make SpaceChem, and so in describing their third mass-market game this way they’ve just saved me a whole lot of bother trying to sum up what Infinifactory is about. It’s SpaceChem. But in 3D.

What’s that? You didn’t play SpaceChem? Well, in that case my advice would be for you to crawl out from the rock you’ve been living under for the past five years, go to Steam, and buy it right the fuck now, since it’s the best puzzle game I’ve played in the last decade. If you want a little more information before you do that, I’ll grudgingly oblige, though: SpaceChem is a game where you take a series of inputs — in SpaceChem’s case a variety of molecules — and use a pair of manipulators on a 2D grid to weld them together into bigger and more complex molecules. The manipulators can be given simple instructions – grab, drop, rotate, pause and so on — and the key to the game is to synchronise your manipulators with careful timing to achieve the desired output.

Infinifactory is that. But in 3D.

infini_simple

Oh okay, there are some important differences that go beyond the additional dimension. Every puzzle in Infinifactory has you taking a set inputs and manipulating them to form a desired output, just like in SpaceChem. In Infinifactory the inputs take the form of (at the start of the game) a selection of one or more blocks that have to be stuck together into a certain configuration, or (later on) some big pre-built construction that has to be rebuilt into something new. To do this you have at your disposal a selection of factory blocks, starting with a basic conveyor belt and progressing through to welders, sensors, pusher blocks, rotator blocks and more. You have an unlimited number of these blocks — which are perfectly happy floating in midair as long as there’s at least one block in the construction anchored to the ground — as well as the ability to fly anywhere in the level via jetpack, so the factory you can build is limited only by the selection of blocks you’ve unlocked and the total amount of space available in the level.

And your imagination, of course.

infini_bucket

This is a fair bit more freedom than SpaceChem gave you. In SpaceChem you were slaved to that 2D grid which made transportation of the larger molecules downright hellish in places. Infinifactory is positively roomy by comparison – I’m 12 hours in and about two thirds of the way through the campaigns, and I’ve only just come across a level where I had to stretch to squeeze everything in. Infinifactory’s challenge instead lies in the design of individual mechanisms rather than the construction of an entire system; each level starts with you taking a look at the input and ouput and mapping out a series of tasks that have to be done to make one match the other, and then building a series of mechanisms that will accomplish these tasks. Like all the best puzzle games Infinifactory never holds your hand beyond a few infographics to demonstrate the functioning of new blocks, but it is quite good at ramping up the complexity of its puzzles — and its mechanisms — in such a way that you quickly and naturally establish a basic toolbox for doing tasks you encounter again and again, like counting out a specific number of a certain block before pushing it on to the next stage of the factory. The move to 3D confers a lot more flexibility in what you can build and so there’s usually a little tweaking of the design involved to make it better fit the specific circumstance you’re using it in, but probably 70-80% of each level is built using mechanisms and ideas you’ve used in previous puzzles.

The key part, of course — and the part that makes both SpaceChem and Infinifactory such good puzzlers — is that 20% you haven’t come across before. This is the part that causes you to scratch your head and experiment, because it’s rare that the solution is immediately obvious or that the first thing you try will work. Sometimes you’ll come up with a good, compact solution that becomes part of your toolbox, and sometimes you’ll build some horrifyingly inefficient agglomeration of sensors, conduits and pusher blocks that makes you feel ashamed to be playing this game, but you’ll always feel quite smart when you successfully solve a level. I think this is the crucial thing that makes these games work: they’re complicated games, but you’re never placed in a situation where you don’t have a clue where to start. Thanks to that previous experience you can always build at least part of the system, and once you’ve done that you can usually nail the rest of it through a little bit of trial and error.

infini_slackers

Now, if there are any programmers reading this the above approach to solving these particular problems might sound a little bit familiar, and that’s because both SpaceChem and Infinifactory’s basic setup bears more than a passing resemblance to basic programming functions. My experience is mostly with Python, where you make functions that take a number of inputs and return one or more outputs, and that’s exactly how Infinifactory works: it’s a series of these compact input-output functions chained together to achieve a specific goal. It’s even got some basic logic in it as the sensor blocks work kind of the same way as an IF statement, and later on you can use them with blockers for the equivalent of IF NOT.  Just like programming you’ll remember particularly good solutions when you come across the same problem later, and just like programming you’ll occasionally hare off down the wrong path for twenty minutes and end up building something awful that you push through to the end because you’re committed now, but thankfully you don’t have to live with your mistakes for longer than it takes to complete the level.

So Infinifactory has much of the same catnip appeal that programming does – except because it’s dressed up as a game it’s far more palatable to non-programmers (I was addicted to SpaceChem before I’d ever coded a single word of Python, after all). The idea translates remarkably well to 3D, too; I don’t think Infinifactory makes quite as much use of the third dimension as it really should, especially since you don’t unlock the lifter block that lets you move blocks vertically until about halfway through the game, but the Minecraft-style building and block placement feels easy and natural. It does have its downsides – in particular the undo and redo functions are laggy and unusable, and there doesn’t seem to be a good way to move blocks en masse, meaning that if you realise your mechanism is one block to the left of where it should be you have to tear it down and rebuild it from scratch in the new spot — but it works really well, and it’s a damn sight more attractive than SpaceChem.

infini_computer

Is Infinifactory a better game than SpaceChem, though? That’s a difficult call to make, as while they’re built around the same core concept they each have a very different focus. SpaceChem had the advantage that you were chaining together multiple factories into a larger machine that you could control, like the level with the laser that you had to fuel and shoot to explode incoming asteroids. I’m over halfway through Infinifactory, and while there are still one or two blocks left to unlock I haven’t come across anything that’ll let me control my factories while they’re running. As soon as you push the ON switch it runs completely hands-off without any intervention from you. This removes the balancing crutches you could build into some of SpaceChem’s puzzles, but I think Infinifactory does lose something important for not having that kind of interaction; it’s strictly about matching the outputs and nothing else. On the other hand it is nice to be building actual things – missiles, computer terminals, fully-furnished apartments1 — rather than byzantine collections of molecules, and it is a bit more satisfying to see the blocks make their way around your conveyor layout in glorious 3D. That goes double in the woefully-few levels where you’re compelled to make effective use of the vertical plane.

Ultimately, though, I think what Infinifactory loses in terms of interaction it makes up for in imagination. Some of the stuff you build is truly barmy, and some of it literally makes you laugh out loud when you see what you have to make. It’s got a perfectly-pitched difficulty curve, with level design that’s great at constantly changing things up and keeping you interested while providing a consistently challenging selection of puzzles. Because this is a Zachtronics game there’s the usual cryptic backstory delivered mostly through audiologs purloined from dead bodies, but it’s never worse than inoffensive and actually gets quite engaging towards the end.  Besides underusing the three-dimensionality of the new environment Infinifactory barely puts a step wrong; the design, presentation and audio are top-notch all the way through. It may or may not be better than SpaceChem depending on your personal taste, but it’s definitely something you’ll find inhabiting the same lofty heights of the genre.

  1. This is not a joke.
Tagged , , ,

5 thoughts on “Thoughts: Infinifactory

  1. Oh god. It returned. You made me play SpaceChem and now you strike again.

    SpaceChem gave me nightmares. Satisfaction from solved puzzle was always eclipsed by dozens of minutes of self-deprication and feeling dumb. And after taking a break you have to start over to learn all these tricks and standard constructions again.

    And even when you solve it the game laughs at you and says that there are hundreds if not thousands of people who thought of better solution and therefore are much more accomplished human beings. I’m freaking senior developer and this game about alchemy denounces me. Nah, I say! Nah!

    • Hentzau says:

      Infinifactory does the same thing where it shows you the histograms saying 80% of the people who solved this puzzle did it with a better solution than you. Which is why I roundly ignore them. Infinifactory is a game with fewer “cheat” solutions than SpaceChem, and so finishing a level at all is a big achievement.

      • Anonymous says:

        Another problem with SpaceChem was in fact just cause it looked like programming. If you work in software development you know what I mean: SpaceChem tools looked like a developer tools but goals were as far from dev goals as possible. Modern developers generally doesn’t care about environmental limitation. It’s hard to find a problem modern PC won’t handle. In real programming code readability and transparency is much more important than performance. Not so in SpaceChem. SpaceChem is all about being a programmer in 1980′s. Build a world with 64kb of memory, something like that.

        My attempts to write readable modifiable algorithms in SpaceChem were laughed upon. 13% of people did it faster, man, and you’re saying you’re programmer?

        Those stats make me happy wargames don’t have those kind of comparisons. Usually when I launch them I suspect devs have a very specific user input in mind. It’s best for all they jut allow us to win through ineffective solutions.

  2. Rolly says:

    Once you start having to deconstruct stuff and feed it through the *redacted* and rebuild it again it gets to be just a touch painful. My solution for the second last one was failing due to a sequence error which I couldn’t be bothered to fix so just ran it at the slowest speed.

  3. […] history with those; I started out loving the early Zachtronics puzzlers such as SpaceChem and Infinifactory, but the more of them Zach cranked out (he’s up to something like seven or eight of them now) the […]

Leave a Reply