I'm Zach Barth, the creative director of the game studio Zachtronics. I've been making "indie games" for a while now, including Infiniminer, SpaceChem, Ironclad Tactics, Infinifactory, TIS-100, SHENZHEN I/O, Opus Magnum, and the recently released EXAPUNKS.

Today I'm here with the Zachtronics team to answer your questions! We recently launched EXAPUNKS, our 90s-inspired, maybe-cyberpunk-maybe-not, hacking/programming/open-ended puzzle game, and would love to answer any questions you have about that, or any other game we've made, or anything else that has to do with Zachtronics.

EXAPUNKS: http://www.zachtronics.com/exapunks/

PROOF: http://www.zachtronics.com/proof.txt

EDIT: If you're going to post EXAPUNKS spoilers, put them in some spoiler tags! >!Like this!<

Comments: 256 • Responses: 83  • Date: 

zellisgoatbond19 karma

Hi Zach, great to have you here.

Your games put quite a bit of focus on optimisation, in creating solutions that not only work well but also work efficiently, but the extent to which this is enforced varies – TIS-100 puts very hard limits on how many lines of code each node can have, while Opus Magnum (for the main game) gives the player as much space as they want. How do you decide how much to enforce this level of optimisation? Have you noticed any significant difference in the extent that players try and optimise puzzles based on enforcement?

On another note, let’s say someone decided to play through all the Zachtronics programming games from scratch. Is there any order you’d recommend they’d play them in?

krispykrem22 karma

The size limit in TIS-100 was never meant to force players to optimize their code. It's just how the machine works, you know? We tend to make design decisions and then, as a result, arrive at a difficulty.

With Opus Magnum it didn't make sense to restrict the player's ability to build, so we didn't. The result was a game that was more accessible than previous Zachtronics titles, yet just as optimizable. We continued exploring this trend in EXAPUNKS and it seems to have paid off; plenty of optimization opportunities, but fewer people being forced to stop playing because the difficulty ramped up too quickly.

I don't think it matters what order you play our games in, so long as you remember that the older ones are generally rougher in terms of complexity, difficulty, and usability. There's something to be said for playing the newest one first, as it gives you the best opportunity to join in the community of players as it's being played and explored in real-time.

GORDON_ENT17 karma

What's your favorite game not created by you?

krispykrem14 karma

I'm not the kind of person that has a favorite game.

The most recent game that I discovered and like is an apparently unpopular abstract board game from the 90s called Kinesis that I found at a thrift store:


The rules and presentation make it seem completely abstract (you move "sticks" and "stones" by "moving" and "sliding") but I'm convinced that it's about space marines fighting from ship to ship in an asteroid field and has the kinesthetics to match. I want to make a custom set that looks like a Star Trek prop.

poyepolomi17 karma

Hi Zach,

One of your first games that I played, and to this day still a favorite, is KOHCTPYKTOP. Is there any chance at all that you will give it the Codex > Opus treatment some day?

Disclaimer: I only solved it up to lvl 10.

krispykrem17 karma

I don't like talking about our plans, but I'd certainly like to make this game! I still think there's something magical about making "logical drawings" that do something based on how you drew them.

jherico16 karma

Is there any chance of seeing a new VR game out of Zachtronics, or a VR port of Infinifactory?

krispykrem27 karma

Probably not. It was fun working on The Lab when I was at Valve, but I find the hardware to still be too clunky and uncomfortable and not compelling enough. It also seems to be challenging to make money selling VR games now, but I guess an outsider would say the same thing about programming games...

I experimented with porting Infinifactory to the Vive at one point but the framerate requirements made it a no-go. Allowing people to build arbitrarily stupid factories with arbitrarily bad performance makes it hard to guarantee 90 FPS so you don't make your players sick.

Johnicholas13 karma

Why do you charge so little for your games?

krispykrem35 karma


SlimKnives12 karma

What media inspired the aesthetic of EXAPUNKS?

krispykrem20 karma

So many things! Cyberculture magazines (Wired, Mondo 2000), hacker zines (2600), books (Computer Lib by Ted Nelson, Virtual Light by William Gibson), movies (Hackers).

One of my favorite resources we have is a copy of the Wired style guide from 1996, which contains tips like:

infobahn: The information superhighway. Can be shortened to I-bahn.

Obviously there's no internet in EXAPUNKS (another deliberate choice), but it's a perfect example of the kind of outdated jargon and concepts this book is filled with. It's like a style guide from an alternate universe! Also, the pages are chartreuse... a bold choice for a bold book.

EDIT: I also forgot about Vurt by Jeff Noon and the comic series Transmetropolitan, which were inspirational for the "weird 90s" vibe we tried to capture in parts of the game.

animeme_master12 karma

How does the process of coming up with a coherent and balanced set of items/instructions/mechanics in each of your games work? e.g. the set of blocks in Infinifactory, the set of alchemical equipment in Opus Magnum, or the set of instructions in SHENZHEN I/O.

- a long-time fan of your games

Johnicholas16 karma

You might like a talk "Zachtronics: Ten Years of Terrible Games": https://www.youtube.com/watch?v=Df9pz_EmKhA

krispykrem15 karma

Ooof, yeah, maybe watch the video for that one.

The short answer is that it's mostly an intuitive process for me. A good set of tools should be mostly orthogonal but not so straight-forward that there's too little room for creative problem solving. Figure out what type of problems you want players to solve first, and then build a set of tools that facilitate them.

RAMzuiv11 karma

Exapunks is Zachtronics' third assembly-based game. I think it's safe to say this playstyle has been explored more thoroughly than any other mechanic by Zachtronics. What has inspired you to keep revisiting this concept?

Also, could we expect to see manuals in any non-assembly games? I really like having the manuals to read, it's fun!

krispykrem13 karma

I've designed an awful lot of games where you have to glue balls together, too. Sometimes blocks, even...

EXAPUNKS comes from me wanting to make a game about computers and the 90s, so having it be about programming... makes a certain kind of sense. I suppose it could have been any other kind of game, though, so it really comes down to only being able to make a game that you can first conceive of. It seems kind of obvious but we're limited to what we can imagine!

Regarding manuals in non-programming games, probably not. It's 2018; you should be able to pick up a game and play it without reading a manual or slogging through an overwrought tutorial! Although we have a lot of fun with them and spend a ton of resources to integrate them into the game world, the real reason we use manuals is because I can't imagine a better way to get our players onboarded into a game like EXAPUNKS.

pskia11 karma

Hi Zach, I'm halfway through EXAPUNKS and loving it !

I was wondering, what do you think about the idea of making a Synthetic Biology inspired game, based on the idea of programming bacteria and/or other living organisms ?

I think it'd be a great idea to play around with ! (though, IRL, we're still at the veeeery beginning of this awesome field of bio-programming. I believe the first "programming language" is called Cello and is still very primitive)

krispykrem7 karma

I had an idea for a game about this like 10 years ago but never explored it because I can't imagine what the puzzles would ask you to make. It's the same as trying to make a game about quantum computers. Without juicy puzzles, Zachtronics games would be even more boring!

DuckWilliam10 karma

Any plans to make another 3D game like Infinifactory in the future?

krispykrem10 karma

We usually go about it the other way: if we have an idea for a game we want to make and it'll only work in 3D, we make a 3D game. Our team composition is focused on 2D games, though, so it's definitely not our default stance.

kjearns10 karma

One of the things I really liked in SpaceChem was how the puzzles had multiple scales. There was the small scale inside the factories where you make molecules, and also the large scale where you place factories and route reactants between them. Newer Zachtronics games have moved away from this and focus instead on doing a single scale of puzzles really well.

Do you think multi-scale puzzles are something that you might bring back in the future? Maybe even with a more fleshed out course-scale than SpaceChem had?

krispykrem8 karma

If we had a design where it seemed appropriate, sure. In general we try to avoid the trap of designing games that are actually multiple games in one. There's a real risk of blowing up scope and ending up with multiple sub-games that aren't as good as if you'd just focused on doing a single thing well.

Sebi_Windrunner10 karma

Hi Zach. Loving EXAPUNKS so far. Printing the Trash World News really pushes it into new levels.

  • Who's work is the TWN and general worldbuilding? Because I want to thank them.
  • What would you cite as biggest style inspiraton besides Neuromacer?

Thanks, an excited script kiddie.

edit: spelling

krispykrem7 karma

Worldbuilding is a team effort, although Matthew (the writer) and I (the puzzle creator) are responsible for a lot of it. The visual style of the zine and the world is almost entirely the work of our artists, with some unhelpful prodding from me. (Hey. Hey guys. Look at this issue of The Duelist from 1997. Don't you love this ad? Let's make the Game.Link ad look like this. Right guys? Right?)

Contrary to the word "punks" in the title, I would not consider Neuromancer to be an inspiration for this game. It's much more inspired by the movie Hackers and the later Gibson novel Virtual Light, which is a very 90s take on "cyberpunk". Maybe Vurt too, which I accidentally ended up reading when we started working on the project.

iprefertau9 karma

how is it possible that your games consistently give me a sense of pride and accomplishment?

krispykrem19 karma

They're all the good parts of programming, without the two hour meetings and office politics.

Baloogan9 karma

Have you ever thought about making "logistics" games like factorio?

krispykrem10 karma

Yeah, but it's not really my thing. I've seen lots of people say that Factorio and Zachtronics games are similar, and maybe they are from a "player feelings" standpoint, but from a design standpoint I don't think they have very much in common.

coreyog9 karma

I'm a software developer at my day job. Your games scratch a very specific itch that I can't get anywhere else and I can't thank you enough for that. The languages you've created in-game are mostly assembler influenced which is fantastic because real assembly is a huge PITA for me. You also did a Befunge-like language for SpaceChem. What other programming language paradigms interest you? Personally I'd love to see a functional or Lisp-like language in a future game.

krispykrem11 karma


RandomPanda09 karma

Hey Zach! Long time fan.

I was curious to know if you've ever thought about making some of your games open source.

It's probably a terrible idea from a business point of view, but just based on you and your team's productivity these past years, whatever engine you've built to make these games has proven to be an incredibly robust system for making design-based puzzle games. It could be really cool to see.

Besides that, maybe a quick trivia question: Was Exapunks another unshelved project, or did you guys seriously pump this out in just 6-9 months?

krispykrem11 karma

We've thought about it, yes, but never decided to do it. In the end I don't think it would benefit many people; our "engine" is just taking the code from our last game, subtracting out everything specific to that game, and then adding incremental improvements as we develop the next game. One day soon I hope to do a tech talk about some of the programming paradigms we use, though, because I think we have some interesting ideas that are portable to other game programmers' development environments.

We started researching EXAPUNKS when I went to DEFCON last July, and we started working on it in earnest last December as we were wrapping up Opus Magnum. I've been thinking about making a game about computers and the 90s for at least two years, though, so that certainly helps too (and is typically the case with anything we make).

Johnicholas8 karma

Have you played any of the not-by-Zachtronics Zach-likes? Manufactoria and Silicon Zeroes by PleasingFungus, Refraction (borderline) or Nanocrafter by Center for Game Science, Runestone Wisp (borderline)?

krispykrem8 karma

Yeah, I've played all of those. Also, Prime Mover, whose developers I chatted a bunch with during development! I've never tried MHRD, though... it's a little intimidating. ;)

gtw1238 karma

What are your thoughts on people making mods for your games?

krispykrem7 karma

I'm a fan of people taking technology and doing what they want with it, especially when it's to customize their own experience, but I'm less of a fan of things that could fracture our player communities and make the game worse for other people. I guess it depends on the specifics?

Jacacent8 karma

Hi, do you have any plans on making a reverse engineering + programming game?

krispykrem9 karma

That's a very specific question.

Soupkitten8 karma

What are your thoughts on the Matthewmatosis reviews of your games? They got me to play your games despite being not particularly good at them. :)

krispykrem13 karma

Like most indie game developers, I'm a fan of anyone who covers our games.

gtw1238 karma

The block engine in Infinifactory seems to be seriously over-engineered (in a good way!) and can handle a lot more than what most players would ever need to throw at it.

Did you design the engine for some other purpose first and then decide to make a game around it? Or did you come up with the game idea first and then build the engine for it?

krispykrem6 karma

We came up with the game idea, figured out what scenarios we wanted to support, and then implemented an engine that did what we wanted. It's probably the most challenging simulation we've had to implement; not only were there way more "things" to process when going from 2D to 3D, but it was also very non-obvious how to make a set of deterministic grid-based rules that "felt" like a physics simulation despite being nothing like one.

ballthyrm8 karma

Hi Zach, playing your games , you look like someone who would have a LEGO addiction. Do you have a LEGO addiction ?

krispykrem15 karma

No, they were always too expensive. I really like putting together IKEA furniture, though.

TimoMeijer7 karma

TIS-100, SHENZHEN I/O and EXAPUNKS are all quite similar. However, due to different instruction sets, restrictions and production quality they still feel distinctly different. Do you feel like you will keep making games with this programmer premise? Are there still variations you'd like to try? How would you keep future games from feeling the same?

krispykrem14 karma

It's tough to say what we will or won't make in the future, but I'm fairly certain our next game is not going to be about assembly programming.

In my mind the instruction set is important, but not more than the premise and problem space. To make a game like EXAPUNKS we design the premise (what is the game about?) and problem space (what do you do in puzzles?) first, and then come up with a language that supports them.

That said, I'm starting to run out of novel ways to implement conditionals...

arkx7 karma

According to the latest Steam survey, 96.8% of Steam users play on Windows, with mac OS at 2.7% and Linux at 0.5%.

What does this breakdown look like for Zachtronics' games in general and EXAPUNKS in particular?

krispykrem15 karma

Oh, that's an interesting question. I don't feel like digging up the stats for all of our games, but for EXAPUNKS we've got about 11% of our players on macOS and 7% of our players on Linux. Which is more than I expected. It's like it's the year of the Linux desktop or something!

farias02 karma

How do you feel about supporting Linux? Is this 7% worth it? Would you recommend it to a novice indie dev? Can you share a little about what other devs think about this (to your knowledge, of course)?

krispykrem6 karma

I think we break even on supporting Linux, so it's worth it for us.

I wouldn't recommend anything to a novice indie developer because of how contextual everything is. Apparently only 0.5% of Steam users are playing on Linux. Why is our rate 1400% of that? I guess Linux users like our games? How do you predict that? Can you even predict that?

swifton6 karma

  1. You once said that some schools tried to use SpaceChem to teach various skills. (As far as I remember, some thought they can teach chemistry with it, some tried to teach programming, and some tried to teach general problem solving skills.) Do you know how that went? Did you follow up with any of them? Did any schools try to use other games that you made, and if so, how did that go?

  2. Do you use any libraries for ui layout? Do you generally do it systematically or haphazardly? Do you have any methods of trying several options fast without changing a lot of code?

krispykrem6 karma

Most of our games have been used in some school at some point, but we get very little information back about how it goes. When we do, it's usually that it went well enough, but obviously most students would rather be playing something like Minecraft or Fortnite instead.

I think the real magic with Zachtronics games happens when someone discovers one on their own, probably at home, and makes a connection between the game and a growing, organic interest in problem solving and engineering thinking.

Almost everything in our games is driven by code, not data, but since I'm a programmer that's the way I like it! We use a homemade immediate-mode UI system that is lightweight and, when combined with our engine's ability to live-reload code without losing state, makes it very easy to rapidly implement and iterate the UI of our games. Our interfaces are very asset heavy, which ends up being the bottleneck, but we do a lot of parametric rendering to make it easy to change the layout and size of UI elements after assets have been created.

IQubic6 karma

What is your favorite flavor of donut? Your username is KrispyKrem, which is a donut store.

krispykrem10 karma

Krispy Kreme is a donut store. krispykrem is short for "thekrispykremlin", which was my wanna-be "hacker handle" from when I was in high school. Which is actually quite relevant to EXAPUNKS...

bobend5 karma

Do you use any kind of automation generating the test cases? Or they hand-crafted and edge cases manually defined?

krispykrem5 karma

They're implemented as random generators with static seeds. Occasionally I'll throw in an edge case manually, but it's usually just to get it to occur in the first test run so that a player is more likely to notice it early.

elimik315 karma

  1. How do you come up with ideas for your solitaire games? Do you think, you might ever run out of new ones?
  2. Have you been fascinated with solitaire games for long, i.e. since before you started making games commercially?

Thank you for making these great puzzle games, both the main games and the in-game solitaires. I feel like they are coming out faster than I manage to play through them, but that is fine since there are almost no other games in this niche of a similar quality.

krispykrem7 karma

I don't know what's up with the solitaire thing. I got really into Freecell a few years ago after not knowing how to play it for most of my life and ended up making the solitaire in SHENZHEN I/O as a result. It was a fun design experiment, so I decided to stick with it. At this point it's probably just a self-indulgent treat; I could never make and sell a standalone solitaire game, but in the context of an existing game it's a fun way to expand the world and give players something to mess around with without needing to exit the game.

I guess a large part of the appeal is also getting to play around with alternative decks of cards. I discovered the Codex Seriphinianus and its imaginary playing cards in college and it's really stuck with me ever since.

Inventing new solitaire games is pretty hard, both because they're unplayable if you don't get the balance just right and because I'm not interested in solitaire games with hidden information (which is how many of them work). I'd like to keep making them for all of our games going forward, but only if they don't get worse as a result of running out of design space!

rodgaldeano5 karma

Hi Zach, big fan from Argentina here.

First, I love what you guys achieved with EXAPUNKS in terms of immersion, the zines really help with that. The quality of the Limited Edition zines is also great. Do you think you'll continue to ship physical items/limited editions internationally? I sure hope so :)

Second, how did you come up with idea for the EXA? Aside from the distributed systems paradigm, is there some particular inspiration for the concept of an agent that can infiltrate any network?

krispykrem7 karma

As long as we keep shipping things we'll keep shipping them internationally. Unless we make, like, a game with a peripheral that weighs 100 pounds. We'll have bigger problems then.

The programmable agents are directly inspired by a computing platform from the 90s called Magic Cap that was created by some ex-Apple developers. The idea of them being able to infiltrate any network is a fictional conceit, although one that's grounded in the idea that computer networks are generally porous because of the unending number of security vulnerabilities in computer systems.

douglas_5 karma

Warning: Exapunks spoilers below

I noticed you touched on the simulation hypothesis near the end of Exapunks. I've always been fascinated with the concept. What do you think personally? Does the idea that we live in a simulation have merit, or is it just fantasy?

(P.S. If there's ever a 2nd campaign in Exapunks, I think a cool story concept would be Moss hacking his way out of the simulation into the real world!)

krispykrem6 karma

Here's one possible explanation:

Rather than believing the universe literally is a simulation, maybe it's that sometimes real life feels like a simulation that's becoming increasingly glitchy. I suspect it's because I'm getting older, but I feel like I'm more... surprised... by reality than I used to be.

darkgiggs5 karma

Hey Zach
This would be spoilers for Opus Magnum I guess, so people be warned.

Is the romance between Anatheus and Concordia something you planned or a figment of some player's imagination?

krispykrem4 karma

It was planned to be a figment of your imagination. The possibility is real, but it's up to you to decide.

Johnicholas5 karma

Will you replace the histograms with a real n-dimensional Pareto frontier, or did you consider that and reject it for some reason?

krispykrem6 karma

We have considered and rejected it multiple times, usually because of concerns that it'll remove the "connectedness" of histograms and leaderboards as everyone carves out their own unique segment of the Pareto frontier and sits there by themselves.

Hudston4 karma

Having just solved the final puzzle in EXAPUNKS, my question is a simple one: More?

krispykrem5 karma

Maybe... we're still trying to figure that out ourselves.

McPhage4 karma

Have you given up on porting your games to mobile? I liked having SpaceChem on my iPad, and would love to see your other games on there as well.

krispykrem6 karma

Yeah, basically. Each one was less successful than the last despite being more successful on PC. Same thing with PS4, honestly. It seems that we just make games for the kind of people that play games on PCs!

Clayblob4 karma

Your games are all a really specific niche. Do you ever feel restricted by being "the engineering games" people? As in, you want to make something different, but so many people expect this type of game that you feel you have to make it?

krispykrem8 karma

Not really. Sometimes it's pleasant to do something you're good at!

mpete984 karma

How many references did you manage to cram in EXAPUNKS, and which ones, if any, are you most proud of? I spotted SNAXNET = Stuxnet, apparently the first KGOG is inspired by the intro to hackers, and it seems that Alliance Power and Light is named after a real company, judging by the credits? Are there any other notable ones?

Also, is there a good way to get the main screen picture as a wallpaper? I'm told that it's stored weirdly in the game files, is that related to the post-game change to it?

(Thanks for the great work, love the games, etc.)

krispykrem4 karma

There are a bunch! I usually look down on media references in media, though, so I'm not particularly proud of any. The better ones are probably the subtle ones, like how the WonderDisc hacking puzzle is inspired by how hackers unlocked the PlayStation.

I think the only way to get the wallpaper is with some extracurricular leet hacking.

JeremyG4 karma

Hey Zach! I've got a question for you, and it's very important so answer carefully.

  • Do you think a hotdog is a sandwich?

...ok, more seriously, here's a real question

  • You've made three assembly-like programming games so far. After SHIO I already thought that assembly-like puzzle elements were exhausted, but you guys coming back with EXAPUNKS disproved me. Do you think there's still more gold to mine in the assembly-like puzzle games?

krispykrem7 karma

SERIOUS ANSWER FOR A SERIOUS QUESTION: I think people get too concerned about whether or not labels apply to certain things. Who cares if a hotdog is a sandwich? It's a hotdog.

I feel like we could make at least one more assembly programming game. It's gonna be a while, though...

xTeraa3 karma

I know people have said Infiniminer helped influence the creation of Minecraft but I'm interested to know. What influenced you to create Infiniminer?

krispykrem4 karma

It was a synthesis of Infinifrag (the original "bloxel" game that I had made), Motherlode (a Flash game about mining on a grid), and TF2 (a well-known class-based FPS). Ironically, even though I liked Motherlode a bunch I never really understood its lessons about harvesting loops. Not that I see Minecraft as Infiniminer as competitors, but this is clearly something that Notch understood when making Minecraft.

mids1063 karma

The Zachtronics Podcast [1] had been wonderful, do you plan on doing new episodes?

[1] http://www.zachtronics.com/podcast/

krispykrem4 karma

If I find someone new that I want to interview!

leo30653 karma

After the recent games that are more software-like games like TIS-100, SHENZHEN I/O and EXAPUNKS, how do you think about games which is more hardware or mechanical oriented (for example KOHCTPYKTOP)?

krispykrem5 karma

Opus Magnum was pretty mechanical, right? I like them all!

leo30652 karma

I should phrase it this way - in all these games, from SpaceChem to the latest EXAPUNKS, on the abstraction level all the things being processed can be seen as information, and the solutions made by players are procedures to manipulate the data. One of the reason I like these games are that not only we can do many kinds of things in all of them, for the same (or say, similar) thing they do it in different ways because of the differences in designs and mechanics, which makes some operation easier to do but some other harder. That is the same reason I like to learns about various programming languages, computing instruments, or even real-world languages - each of them have some interesting "quirks" in them. How do you think about making games with different ways for processing, be it like kind-of-physical like in Infinifactoy, interconnecting processors like in TIS-100, or maybe digital circuits, analog computers, cellular automata, quantum computations, or something even crazier?

krispykrem5 karma

Maybe the secret is that I'm not overly concerned with the ability of these systems to process information, but instead focus on making sure that they enable a certain kind of puzzle. EXAPUNKS is obviously a game about programming, but is Infinifactory? Kind of? But kind of not?

coryrenton3 karma

which part of the game-making process is the biggest slog, and which free game have you seen that you thought was very poor from a design perspective, yet you could not stop playing?

krispykrem4 karma

Wrapping up and integrating a game's assets is the sloggiest part for me; by then we already know exactly what we're making and I'm just implementing a bunch of fiddly UI bits.

Your second question is too specific; I can't remember a situation like that.

Zv0n3 karma

Hi, Zach, loving playing Exapunks so far!

I was wondering why do you prefer creating puzzle games over other genres?

Side note: Thanks for the Linux love on all your games, really appreciate it :)

krispykrem2 karma

It's maybe less of a preference and more of a lack of imagination. I alluded to this in a comment above, but you can't design a game that you can't conceive of.

snorkofobic2 karma

Any chance of getting Shenzen Solitaire for android? Or ПАСЬЯНС for that matter?

krispykrem2 karma

Unlikely. The iOS version hasn't done much, and an Android version would probably do even less.

pikrua2 karma

Hi Zach,
1. what games do you play on your free time?
2. do you ever watch an twitch, what's your favourite lately?

krispykrem4 karma

It's been a gradual change, but I don't play a lot of games nowadays. I certainly don't watch other people play them.

Baloogan2 karma

Ever thought about including machine learning as a new area to explore to make games about?

charrcorncob2 karma

What was your most difficult game to make so far?

krispykrem7 karma

The one I'm working on at the moment is always the hardest.

damantisshrimp2 karma

I'm a newcomer to Zachtronics games. I'm eagerly waiting for the 1.0 of Exapunks! (I don't mind waiting a few weeks)

What do you think of fantasy consoles like PICO-8? It seems there is a console to hack in Exapunks, but programming for it is much lower level than a Lua API.

Are you tempted to create a fantasy console? One that would be cycle accurate, with a solid opcode foundation since you played with the concept of fantasy computers in previous games?

Or maybe these computers are just a mean to cool puzzles :)

krispykrem6 karma

Our games are puzzle games first and sandboxes second. The latter are fun, but I can't imagine making a product that is exclusively a fantasy console / computer.

You know what else makes games and is cycle accurate? The PC I write code on every day.

Auartic2 karma

Hi Zach! I'm curious how good you would consider yourself to be at your games, let's say 1-10. I, a relatively casual player, am blown away at the things that some players are able to do. Have players ever come up with any techniques for optimization that you didn't intend or anticipate at all?

krispykrem5 karma

I'm not very good at our games. I feel like our players don't do anything but things I didn't intend or anticipate.

MoshikoKasoom2 karma

I know it's not probable after that ending, but are you planning to add more content to exapunks?

krispykrem2 karma

I answered this above, somewhere...

Johnicholas2 karma

I was particularly delighted by SpaceChem's bridging between programming and chemistry / nanotech. That is, it really explained how the random or arbitrary unstructured patterns of valence and mass could be willfully construed as an esoteric programming language, and we can write "code" assembling gadgets out of whatever mechanisms we are given that "runs on physics".

However, SpaceChem was also very grid-based, very crisp and crunchy, including things that surprised me, like a global clock that reliably synchronizes between factories (!?!). Everything since then has also been very grid-based, crisp and crunchy.

Have you previously looked into floppy, stochastic, or smooth mechanisms, and rejected them, things like http://blobvis-1238.appspot.com/screenshots or "World of Goo"?

krispykrem4 karma

Our style of gameplay requires players to be able to predict what something will do without needing to simulate every step of the way. I'd worry a system like that would become a frustrating experience very quickly.

The grid is life. The grid is good.

Toastrz2 karma

Have you seen the videos Matthewmatosis made on your games, and if so, what did you think of them?

krispykrem3 karma

Answered above.

dionvc2 karma

Make another kohctpyktop. Shenzen I/o does not scratch the same itch. Also Ruckigenur II is your best game.

What'd you start off programming in?

krispykrem3 karma

QBASIC, 20 years ago.

That sounds weirder than I thought it would.

dionvc1 karma

Gotta start somewhere. My first exposure was ti basic on a calculator, since then I've only learned Java.

When you were programming on your own all that time ago how did you get the motivation to finish a game? I start work on a game but I quickly lose focus.

krispykrem3 karma

I became obsessed with scope. The only way I could finish a game was to set the scope small enough that I'd finish before I got bored. Knowing which corners to cut is an important life skill if you want to be someone who gets shit done.

ethical_paranoiac2 karma

Have you ever thought about a programming game where the programs can modify themselves, changing opcodes, arguments, labels, etc?

krispykrem4 karma

I think about a lot of things.

Hyottoshitara2 karma

I see your games as having two levels of challenge, just like programming in the real world: The first solving problems, and the second competing for efficiency.

Even the first part, solving a problem, can be very difficult, even more so when there is a size limit.

In Opus Magnum, I felt that your removal of the size limit was a good choice from the perspective of opening up the game for people who are more challenged by the first part. Why did you go back on this for EXAPUNKS? Does it seem to make solutions too easy?

What do you think about the idea of having a size limit that is a requirement for viewing and contributing to the leaderboards, but can be exceeded to solve the puzzle?

krispykrem3 karma

The size limits in EXAPUNKS are meant to cut down on bogus cycles optimization scores without preventing players from solving the puzzles. Is there a puzzle that you're stuck on because of the limit?

It's certainly an idea, but I'd want to make sure that the current system isn't working before doing something more complex like that.

Hyottoshitara1 karma

My suggestion is brilliant and you should definitely do it :P

But seriously, in EXAPUNKS, I brushed up against the limit in Alliance Power and Light, and exceeded it in US Government. The second one was frustrating because my solution was only a few lines too long and I ended up "fixing" it with micro optimizations.

I also have a solution for the "IMPORTANT - the big one!" in SHENZHEN I/O that needs something like one more line in one microcontroller.

krispykrem6 karma

I'm going to be increasing the size limit in the USG puzzle from 150 to 200 in the next patch.

mookler1 karma

What's your favorite chocolate-based dessert?

krispykrem3 karma

Chocolate is pretty good.

lunchlady551 karma

Why do you hate more than 2 bytes of storage per CPU and for/while loops? WHO HURT YOU?!

krispykrem3 karma

They're technically not bytes...

GrandKaiser1 karma

Hiya Zach! Love your games! While playing Infinifactory, SpaceChem, and Opus Magnum, I always wondered how you build the puzzles. They always seem simple... but the closer I get to solving them, the more complicated it gets. Do you draw from any specific sources for inspiration? Also, how long does it take to build a level's puzzle?

krispykrem3 karma

I think I answer that question in this talk:


Rodentman871 karma

So I saw in another comment that you like board games, or at least the one. What is some of your favorites? Do you ever plan on making a board game?

krispykrem3 karma

Oh, I think I may have misled you. I am not a fan of board games. They manage to somehow make me both bored and hyper-competitive...

hazmat_suitor1 karma

Why always 3 histogram categories? Were there games you considered giving more or fewer categories? Or maybe special categories for specific puzzles?

krispykrem3 karma

As a designer, three is very good number.

I believe that both Infinifactory and SHENZHEN I/O launched with only two metrics... but then we added a third one to each of them.

Notester821 karma

Hello Zach! Found Spacechem through a mention in an Extra Credits video a long time ago and I'm extremely glad that it became the gateway to your other open-ended puzzle games.

Are there any games that gave you inspiration for the stuff you create nowadays? (Also, as a small follow up, are there any non-mainstream puzzlers (like Zoop) that you'd recommend trying out?)

krispykrem3 karma

Most of our games, and this goes back a long time, are inspired more by real life and other media than other games. Maybe one recent exception is the HACK*MATCH minigame in EXAPUNKS, which is a lot like a cross between Panel de Pon and Magical Drop.

One of my favorite obscure puzzle games is Extase for the Amiga. It's very... different.

LetaBot1 karma

I've seen a design you made about a zachtronics game with multiplayer way back in the days on your blog:


Do you think a multiplayer zachtronics programming game could work? and if so, would you even be interested in making one?

krispykrem5 karma

Check out the hacker battles in EXAPUNKS!

Awerar1231 karma


Firstly i want to say that i absolutley love your games. I have bought SpaceChem, Infinifactory, TIS-100 and Opus Magnum and enjoy them very much.

  1. How do you come up with your puzzles?
  2. What is your favorite game?
  3. Are you addicted to factorio?

krispykrem2 karma

  1. I think I answer that here: https://www.youtube.com/watch?v=Df9pz_EmKhA
  2. N/A
  3. No.

sorrywedisagree1 karma

Hi Zach. I am a HUGE fan of your work. I've got all the titles, though have really found Shenzhen I/O and EXAPUNKS to be my holy grail games, irrespective of genre.

Sorry for a not-very-interesting question, but I imagine it's the one most of us would honestly like to hear answered: What's next?

krispykrem3 karma


dantronlesotho1 karma

Hi Zach,

Love your games and I really admire how you run your studio.

Question about your design methodology. How do you know when a particular puzzle mechanic is worth it to work on? Like, when does the fun factor in it click for you to the point where you consider seriously investing in it?

Thanks and I look forward to getting Exapunks soon!

krispykrem2 karma

At this point we basically just come up with ideas for games and make them to figure out if they're fun or not. It's tough to build a prototype and then extrapolate whether it will be fun or not; I prefer to dream big and then try to realize that dream.

RandomPanda01 karma

Hey Zach!

Got one more question for ya:

You've made a trilogy of programming games and assembly games, is it finally time to continue that card game trilogy? ;)

krispykrem2 karma

What's this talk of a trilogy when we haven't even made the second one yet!

Hyottoshitara1 karma

I was surprised in SHENZHEN I/O how limited the ability to add comments to code was. This resulted in more "thinking in code" rather than thinking in a more conceptual manner about what the purpose of what a particular microcontroller was doing. It could be argued that this is a bad lesson for professional programmers, in that documentation is discouraged - if you add a comment, you have one less line of code. (With EXAPUNKS, the lack of NOTE limits was a welcome change.)

Was this something you considered when you lifted the limits on the amount of comments in EXAPUNKS? Do you consider "thinking in code" a good or bad thing? I could see how it might be considered as adding to the challenge in SHENZHEN I/O, in some ways.

On the other hand, all of the Zachtronics programming games tend to encourage efficient solutions to problems, including giving feedback on the simplicity of the solution and the execution time, which I think is a good lesson for professional programmers since both complexity and execution time tend to grow to the bounds of the hardware and software complexity is becoming a serious economic and social problem.

Do you think lessons from your games could be used to reduce the complexity and execution time of real-world programs? Is this something you've thought about?

krispykrem6 karma

It was never about comments, really. When possible, I prefer to fit all of the information in our games on screen at once, which cuts down on something I call the "PowerPoint effect" (inspired by Edward Tufte's rants against PowerPoint) where you look at part A, flip to part B, and then forget what you saw in part A as a result.

With EXAPUNKS there was no way that we'd be able to attach the code to the EXAs like we did in SHENZHEN I/O with the chips, so there was a need to put it off to the side. In order to make everything fit we needed to add support for scrolling, which allowed us to experiment with removing the space limit like we had in Opus Magnum. As a result, you can write more comments.

I don't think that programmers will learn much about writing robust and maintainable code from our games. I'd argue that the bigger existential threat in computing currently is security, not performance, but I say this as someone with a powerful computer and a hearty fear of how insecure everything running on computers is.

Lynod1 karma

I fell in love with your game SpaceChem when a friend introduced me to it. I thought it would be a game of puzzles and solutions, but nestled within was a meaty story to work toward. My admiration and appreciation for the game only magnified when I started following the tale.

Are you currently looking for writers? As a fan, SpaceChem holds a special place in my heart. It would be a dream realized to make something of that caliber with someone I respect.

krispykrem3 karma

We don't have any open positions at this time, but you're always welcome to email me ([email protected]) about stuff of this nature. It's kind of a personal thing, I'd imagine...

Jacacent1 karma

Hey Zach I was really interested by Project Gibson, have you thought about a "hardware design" game?

Edit: Also are you a fan of card games?

krispykrem4 karma

I think SHENZHEN I/O was our hardware design game.

In practice, no, I don't have the patience for card games. But in theory I love the idea of them, and have a soft spot for questionable CCGs from the 90s. We tried playing the Decipher Star Trek CCG at the office... I won because my opponent's Romulans spent most of the game stranded on a derelict science vessel.

swifton1 karma

Have you played Crescent Loom?

krispykrem2 karma

Not yet. I've heard good things!

darkgiggs1 karma

In this interview, you've mentioned that you'd like to release two games a year. What's the thought process behind that (arguably high) quantity-based objective?

krispykrem7 karma

The process goes something like this:

Wouldn't it be sweet if we could release two games a year? Yeah!

Madsy91 karma

Hi, Zach. Thank you for all the wonderful games you made.

In Shenzhen I/O and TIS-100, the maximum value is not a power of two, but rather 999. They also seem to use base 10 instead of base 2. And there are no arithmetic flags or anything like that. The +- branching was really weird as opposed to the more flexible branching you have in practice.

So my question is, in TIS-100 and Shenzhen I/O, why did you make the instruction sets and computer architectures so different from real ones? Was it to soften the learning curve for people with no programming experience, because of legal reasons or something different entirely?

krispykrem2 karma

I've talked about why we design our own instruction sets earlier in this thread.

The reason we don't put binary in our games is... what's the point? You can do most of the same things with base-10 as you can with base-2, including stuff that feels like bit-twiddling (like the DGT and DST instructions in SHENZHEN I/O). If we used binary it might look more like a computer, but would seriously alienate a large percentage of our playerbase.

Also, there's a historical precedent for base-10 in computers!


Maybe not quite like TIS-100 or SHENZHEN I/O or EXAPUNKS, but we don't actually know how those are implemented under the hood.

czolgosz4201 karma

Kiiinda a feature request not a real question but would it be possible to populate leaderbords from steam groups youre in instead of just friends? be cool to have some competition without adding a bunch of weirdos from the internet

krispykrem2 karma

Does Steam even support this? Have you seen it in another game?

r4m0n2 karma

From what I see in the Steamworks API a call to ISteamFriends#GetFriendFromSourceByIndex and then grabbing the Leaderboard info on the returned ID should work. Would definitely make adding larger amounts of scores to compare easier.

krispykrem3 karma

Interesting... I'll have to look into this.

PatrickAllenNL1 karma

Im still trying to beat infinifactory. Loved it! Will you make a new similar game like that? I play on PS4 and also it would be nice if it also had the custom puzzles feature.

krispykrem2 karma

If you liked Infinifactory you might like Opus Magnum, although it's not available on PS4.

steviemac20000 karma

Hi Zach,

Your games are excellent at making learning about programming concepts super-fun, but assembler is decidedly retro now - have you ever thought about making a game based around current cloud computing trends?

I work with AWS a bit but I'd much rather be working on one of your puzzles instead of sitting through online lectures!

krispykrem6 karma

We don't design our games to be educational, so we're generally not interested in using "real" programming languages. I'm also slowly turning into a luddite, which sort of rules out a game about anything new and trendy in computing...