What Works And Why: Opus Magnum

what-works-opus-magnum

What Works And Why is a new monthly column where Gunpoint and Heat Signature designer Tom Francis digs into the design of a game and analyses what makes it good.

Opus Magnum is a puzzle game about designing machines that arrange and combine shiny little atoms to turn lead to gold, and other fanciful alchemy. It’s by Zachtronics, whose games follow such a recognised pattern that they’ve become a genre: the Zachlike. SpaceChem, Infinifactory, Shenzhen IO, and now Opus Magnum all involve designing an automated system to process some given input, and produce some desired output. But it’s a particular quirk of this format I want to dive into, and it’s one Opus Magnum does especially well: optimisation.

An early puzzle requires you to produce ‘Stabilised water’ from water atoms. It’s olden times. All you have to do is take two water atoms, turn one of them into salt, then join them together. That is one ‘stabilised water’, and you’ve got to design a machine that will keep producing these on a loop.

The two bright green orbs are where the water atoms come in, so I grab one of each. The one on the left passes through that rune thingy to turn it to salt, then they both lie in those connector slots, which joins them, and are pushed into the outpot slot. Repeat!

And that, above, is reason 1 that optimisation is so satisfying in Opus Magnum. Everything you make can be exported to a GIF, and there was never a more perfect game for GIFs. It’s literally your job to make a short, pleasing sequence that repeats, and having it as a perfect infinite loop to show to people makes you all the more proud of your little machine baby.

As a new player, this solution looked very neat to me. Everything you make in Opus is tremendously satisfying to watch, so even if you’re only muddling through the game you get to feel smart. But there’s also enormous scope for improvement, in three different directions.

It could be cheaper. That piston arm that extends to shove the product into the output slot is 10g more expensive than a regular non-extending arm, so if I could find a way to not need that, I’d save money. This solution involves 70g worth of gear. The cheapest one I’ve designed since only costs 40g.

It could be smaller. Not by much, this is the metric I scored best on. This solution takes up 9 tiles and my best takes 7. The cool thing about optimising for space is that Opus doesn’t just count tiles you built things on, but any space your machine needs to move. So if you have a long arm swinging out from your machine, all the space it sweeps through counts against you here. It encourages you to build satisfyingly compact contraptions, whose parts move over each other instead of jutting out.

And my solution could be faster. It could be a lot faster. My first solution took 63 cycles, then my friend Alex beat me with 53, so I made that one which only takes 45. I was pretty pleased with myself. Until the leaderboards told me my friend Jeep had done it in 24. Twenty-four?! You can do this almost twice as fast as my fast solution? Opus Magnum lets you see your friends scores but doesn’t show you their solutions, and I’m actually glad. I wanted to figure this out for myself.

That’s reason 2: you get to choose what to optimise for. If optimising for space feels fiddly, try optimising for time. If that’s too hard, try cost. You can usually find success somewhere.

On this early, simple puzzle, my best solution for both cost and space happens to be the same machine:

I find it delightful. Just one moving part, surrounded by everything it needs, quietly solving the problem at its own plodding pace, not getting in anyone’s way. Small, cheap and neat. So that’s reason 3: an optimal solution is even more satisfying to watch.

By contrast, you’re about to see how monstrous they can get when you don’t give a shit about any of those things.

Optimising for Time

Discovering I’ve been hopelessly inefficient in a Zachlike is not a new experience. I blundered through a few levels of SpaceChem with solutions I knew were clumsy, but that game’s more abstract presentation made it feel like programming, and if I’m gonna be programming I’d rather work on my own game and have something to show for it.

I clicked better with Infinifactory because it lets you build physical machines, in a Minecraft-ish blocky 3D world. That made it feel more like advanced Lego than programming. But when I struggled with it, it also made it overwhelming. It’s harder to visualise new solutions in 3D, and harder to see all of your current solution at once. I handled this adversity with all the grace I could muster.

Opus Magnum has neither of these problems. Its gleaming mechanical look and satisfyingly physical interactions mean it doesn’t feel like work the way SpaceChem did for me. And you can see your whole solution and visualise new ones easily, in a way I struggled to in Infinifactory.

All of which means: when I know my solution could be more efficient, I actually try to fix it. And that process has been a revelation.

Optimisation is boring when it’s a matter of examining a complex system and finding one tiny replacement, or fiddly rearrangement, that will shave off one cycle. This has not been that. I’ve radically reinvented my solution from scratch at least six times, introducing whole new concepts and inventing new subsystems to open up different avenues.

So that’s reason 4: optimising in Opus Magnum is more than just tweaks, it’s reinvention.

My first thought: in the solution above, a lot of time is wasted moving the arms back to their starting positions. What if we used a spinning wheel that could just keep moving in the same direction?

It’s worse! It’s so much worse! This one takes 53 cycles instead of 45. Still, I’ve never been one to let disastrous results put me off an idea that sounded good in my head, can we make a better wheel?

38, now we’re getting somewhere! Still not 24. What if the wheel was… bigger?

30! The real invention here is to use the joiner device as a way of picking up the extra atom from the helper arm at the side: it can just latch on as the arm swings by, which saves it stopping to pick it up. But we’re still only doing one product at a time, and putting everything on one big wheel makes it hard to do more at once. Would a production line be faster?

No! Not this one, anyway. To much grabbing and dropping. But what if… more wheels?

27! Hurray for wheels! But there’s still a lot of grabbing and dropping going on. I hate to say it, but would it be faster with… fewer wheels?

25! Yes! My God, I’m so close to Jeep’s 24.

It’s around this time my friend Kevin chimes in with this:

Reason 5: friendly competition.

FIFTEEN?! This is absurd. But I’m actually kind of glad – if I know I can lose 9 cycles, I know it’s a big new concept I’m looking for.

My time with the game is now divided in two: I’m continuing on with the campaign, completing each puzzle to a basic standard, and not really stopping to optimise. Then the other half of my time is just repeatedly re-solving the Stabilised Water puzzle in new and more efficient ways.

And that’s reason 6: you don’t have to optimise. If I had to do this to progress, I probably would have quit in frustration. Instead I get to dip in and out of this and the campaign, which is both more fun and often gives me new ideas.

When I reached a puzzle in the campaign that only gives you one atom source, I discovered you can use two three-armed wheels to grab from it at twice the rate. Returning to Stabilised Water, I found a way to fit this in, getting twice the output rate:

18! This is clearly mad, but it has an interesting property. Watch the output slot. It’s spending all of its time receiving completed products. That’s the absolute maximum rate you can achieve – even if you could make them faster you couldn’t fit them all through. So what could possibly be left to improve?

Well, your cycles score is how long it took your machine to make 6 products from a cold start. So it’s the time it takes to make and deliver the first one, plus 5x whatever your rate is. Our rate is optimal, so our time to make the first product must be slow. What if we went back to the production line approach, but had at least 2 arms operating on every space along the line, to keep it moving fast?

17! One cycle faster! Still need to lose two more. All that’s left is the picking up and dropping. Every time an atom changes hands, that takes a cycle. Could an atom… never change hands? I had an idea.

The six rails method! This is much, much faster to deliver its first product, so its overall score is… exactly the goddamn same.

I couldn’t quite do what I wanted here: there are four steps in the process and I wanted an arm for each. But arms can only extend 3 hexes, so adding more rails on the outside of this leaves the new arms unable to reach. So now there’s a gap in our transit system, one cycle each loop where nothing gets delivered. It just needs a liiittle nudge.

Six rails plus nudgers! 15 cycles! I’ve done it!

These nudgers can’t reach far enough to push the atoms all the way to their destination, but my realisation was they don’t need to: if we move the joiner to before the salter, we only need one arm to take the atoms forward from that point: it’ll bring the joined atom with it. It took some fiddling with the instructions these arms are running to make use of that, but I got there in the end.

I was tweeting these solutions as I came up with them, and Matthew Smith on Twitter actually spotted a much cooler tweak I could have made at this point if I’d known you could do it: looping rails!

Reason 7: even once you’ve optimised, there’s always a cooler design to be discovered.

Just to get perspective, every one of these GIFs is a solution to the same problem. Every one of them does exactly the same thing. They’re not even all the ones I tried, I have 5 more. And this problem is in the tutorial. There are 5 whole acts after that, all of which increase in complexity. If there’s that much depth and scope for ingenuity in the ultra-simple tutorial puzzle, I can only imagine how much there is in the complex ones later on. That level of depth, I assume, is not new to Zachlikes. But Opus Magnum’s beautiful presentation, excellent tutorial and inherent shareability have let me dig into it for the first time, and it’s a wonderful thing.

Tom Francis is the designer of Gunpoint and Heat Signature and a former games journalist. You can find more of his thoughts on making games on his blog.

27 Comments

  1. thischarmingman says:

    This is the best review I’ve seen of this game. Makes me really want to jump back in.

  2. trjp says:

    I’m not sure I want a game with THAT much optimisation but then playing Spacechem taught me to be happy with what I could build and not worry too-much about the weird shit others had built ;0

    Maybe the next Zachlike should take a leaf from reality and offer the option of aggressively using ‘influencers’ to make your version “magic” – the Tesla/Apple-factor – not better, just more amenable to rich idiots? :)

    • Premium User Badge

      phuzz says:

      I’d say there’s less optimisation required to proceed than Spacechem, but conversely I spent more time going back and optimising things just because I could.

    • MisterFurious says:

      “but then playing Spacechem taught me to be happy with what I could build and not worry too-much about the weird shit others had built ;0”

      When I first started with Infinifactory, I was trying to optimize as much as I could. It didn’t take long before I said “Fuck it. Just build a damn machine that works and move on.”

  3. Thirith says:

    I look at this and it fascinates me, but it also ties my brain into knots. I think I appreciate this game as art, but as a game it’s something I’d run away from as if it was the oncoming zombie apocalypse. Unless I was stuck on a desert island, perhaps.

  4. automatic says:

    I haven’t played this one yet. I liked Shenzen IO because it feels like real programming of electronic systems. I liked Infinifactory because it has a great setting with a good story. But something keeps me away from Opus Magnum. I like puzzles but I don’t feel compelled to improve solutions on something so abstract. It feels like reducing math fractions.

  5. KingFunk says:

    Another excellent article Tom – as someone who works in design and QA (but not coding!) I find the whole thing rather appealing and the way you present it really gets to (what I imagine is) the heart of the game. However, I have the feeling that if I started to play this game, I wouldn’t be able to stop thinking of solution improvements and then lack of sleep would ensue…

  6. Billtvm says:

    Looks fun and all, but like spacechem, the totally bogus chemistry is kind of undermining the concept.

    • Zanchito says:

      I find it tickles the same parts of my brain as getting better loot in ARPGs does. Improving, min-maxing, creating a lean machine of unstoppable perfection. Who’d have thought two such different genres would address the same compulsion so?

    • clockworkrat says:

      Aww, don’t let that bother you! There’s absolutely no pretence of realism in this game. You make invisible threads, gold from water, and glorious gems which are only a few times larger than water molecules.

    • Slow Dog says:

      It’s not bogus chemistry. It’s accurate alchemy.

  7. Cederic says:

    Yeah, the optimisation is a massive attraction to the game.

    I find though that I enjoy optimising for size and cost, and just can’t be bothered to optimise for speed.

    I know the principles of how to achieve it, just setting up the various runs takes too long and is less fun.

    Maybe when I’ve completed all the puzzles and got them all at minimum size/cost I’ll go back and work through speed..

    • Tyranic-Moron says:

      Conversely, speed is the only one I bother with. I think it’s great that the game supports such different and often opposing goals :)

  8. Faldrath says:

    The funny thing is that the first, less efficient solutions are much prettier than the more efficient ones.

    • KingFunk says:

      Antoine de Saint ExupĂ©ry would not agree with you – one of his more famous quotes: “It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove”.

    • User100 says:

      It’s the same problem that Infinifactory has: One-dimensional efficiency goals (e.g. *only* size or speed), which tend to product monstrosities, that are either impossibly complex, large or slow.

      To get an *elegant* engineering solution you need something that is optimized in *all* aspects, but that’s something that Zach’s never pursued in any of his games, so, unfortunately, if you’re looking for truly optimized, elegant solutions, you’ll have to forget about the game’s scoring system, and sort of invent your own.

  9. Laurentius says:

    Yeah, love this game. Actually first Zachtronics game I’v beaten even though I love Spacechem and the rest. It is really fun to optimize your solution where in Spacechem it felt too much of a busy work. My 2017 GOTY.

  10. cardigait says:

    Long time since i played Spacechem, you very pleasant article made me put this back on the list.
    Oh, and the gif, definitively the gifs.

  11. edwardoka says:

    I’ve put 25 hours into Opus Magnum and never found a use for wheels.

    This… changes everything.

  12. aircool says:

    I much prefer Inifinifactory where you could make clocks and gates to control the whole level with extremely elegant solutions.

    In Opus Magnum, you tend to build a machine for each optimisation (cost, cycles and area), whereas with Infinifactory inspired you to do all three at once.

    [edit] I’ve no doubt there’s some mathematical function that applies to the minimum amount of cycles in Opus Magnum once you’ve taken into account all the variables.

  13. Varanas says:

    Great article as usual, really captures why optimising is fun in Opus Magnum. I’m still proud of the solution I came up with for this level: link to twitter.com

  14. sub-program 32 says:

    This is by far the best article I have seen on the game’s merits. So specifically detailing exactly what makes it compelling!

  15. G-Lord says:

    Interesting read, especially as I only ever cared about cost and area. Just finished the campaign last week, and I can’t stop recommending the game to everyone I meet.

  16. Martin Carpenter says:

    This work both ways I think – if you *don’t* feel motivated to try random optimisations once you’ve made something that works then the game has real problems.

    I’m not sure whey they didn’t use the story missions to impose constraints & drive you to work round them.

    Personally I just found myself making something small/elegant and feeling no motivation at all to try and improve them. Entirely uninteresting and really quite repetitive. Shrug.

    • Stickman says:

      It’s not in the main story, but it sounds like the Appendix would be right up your alley. It’s a series of puzzles in highly constrained spaces. “The Journal” bonus puzzles also change up the rules enough to require rethinking basic approaches.

  17. Dachannien says:

    Don’t forget TIS-100 and Shenzhen I/O! They’re a little more hardcore, in that they require you to actually write programs, but you can also learn a lot more from them.

  18. Zorgulon says:

    I remember hearing Tom talk about this on the Crate & Crowbar, and vaguely following this Twitter thread. But this article has pushed me over the edge – I need to play this game now.

    There’s just something so satisfying about those GIFs. Probably the best marketing strategy they could have gone with!