Shenzhen I/O, circuit building and programming by Zachtronics

Finally solved the color-changing vape pen! Took me forever. Felt very proud of myself for about 10 seconds, until I saw that my solution is WAY out on the rightmost tail of the curve :(

Printed the manual, tried a few of the puzzles. I really, really like it so far. It reminds me of SpaceChem more than any other Zachtronics game, while still being similar to TIS-100 in all the right ways.

I don’t get that comparison at all. I wouldn’t even put writing code, which adds a whole layer of abstraction, in the same genre as physical, movement-based puzzles.

Well, SpaceChem actually had a story with actual characters, told in the form of messages and all. SHENZHEN I/O has the same thing done in a pretty similar manner, and that’s why it reminds me so much of SpaceChem.

Also, both SpaceChem and SHENZHEN I/O (and TIS-100) are ultimately programming/puzzle games. SpaceChem uses a Chemistry abstraction to hide that fact, so I’d argue SpaceChem is actually MORE abstract than SHENZHEN I/O, not less. But I’m a programmer myself, so thinking in terms of code is less abstract to me than “physical, movement based” puzzles.

I’ve just looked into getting this. I’m quite impressed by it, and was going to play it after it was out of early access (as they reset the scoreboards then, usually), but right before buying I found out that, like other Zachatronics games (e.g. TIS100), there’s a pointless limit on the number of lines of text you can enter into the code boxes.

Not a limit on the number of instructions, but on the number of LINES. I.e. you can’t have whitespace or comments if you want to go for optimum solutions.

NO THANKS.

Ok, tried this since I loved SpaceChem (although Infinifactory fell flat for me).

I love what I tried (got some of the early puzzles done) but this is UNPLAYABLE by anybody who has no formal training as a coder. I guess somebody could teach himself the basics of how all this works by playing the game, but there is so much stuff you have to figure out if you don’t know the basics.

The fact than then you have to work around some idiosincracies of the hardware is baffling.

But, having actually worked with Chinese hardware and visited China for work, just reading the instruction manual got a few laughs out of me. Everything feels SO spot on.

For those of you playing this, I’m “tleaves” on Steam if you want to compare leaderboards.

FYI, in the most recent update they added a 0¥ “Note” component that lets you add ‘sufficient’ lines of documentation in your device. I do agree that the artificial constraints on things like labels and comments are a bad design decision.

IT’S NOT ENOUGH.

I refuse to write this:

  add r0, r0, 0

something:
  cmp r0, 0
  jnz something

as THIS ABOMINATION:

  add r0, r0, 0 
something:
  cmp r1, 0
  jnz something

I couldn’t cope with not having these newlines in TIS-whatever.

Sure, I hear you. It’s even worse, because it leads to things like this being ok:

f: jnz s

but this being impermissible:

failure: jnz sleepAndRestart

I hate it. But I just sort of accept that this is the cost of entry to the game.

I decided to take a break from TIS-100 (on the last two programs) because I was very tired of all of the gymnastics necessary to deal with the 1 freaking register per node. Fuck swp and sav and repurposing nodes for faux register use.

So far I am liking it even more than TIS-100.

I finally figured out elsquonk is @JoshL (also found out Steam has a nickname feature, yay)
Here is me destroying him with my first attempt on the Three Kingdom Token puzzle -

That however was the first puzzle I beat him, my other attempts tend to be anywhere from 1% to 30% worse. Not going back to optimize yet because I keep discovering new techniques and ideas thanks to later puzzles. Pretty sure, for this one, Mr. Elsquonk didn’t read the email that mentioned the undocumented features of the microprocessors. I actually loved this little bit, I even added notes, using a physical pen, to my three ring binder print out.

So I want more friends so I can feel bad about my solutions. @peterb - there are multiple tleaves . Here is my steam id:

Here is my latest solution in case you think the above is typical for me. I thought it would be cool to try and use the ROM part to hold the sandwich recipes.


Fun? Yes. A good solution? Apparently not.

Ha, yes, that’s me! I haven’t gone back for more than a few minutes since the game was officially released. I got a bit frustrated with how hard it was. But how can I ignore this challenge!

My biggest stumbling block was realizing the simple ports keep their state. I kept trying to create my own latch/flip-flop system and it wasn’t necessary.

I don’t know how I feel about that. Of course there are multiple good thematic reasons for why they did this.

But I spent a fair bit of time optimizing solutions that then became totally obsolete after learning about those instructions. Now the game is actively punishing me for having played it in what I feel is the right way. My first instinct is to stop playing, there’s clearly no reason to trust the game to not yank out the rug out from under me again. One option would be to just plow through the whole plot first, and find all the other fuck yous. But that doesn’t work for me since the optimization part is a lot more fun than making the initial solutions.

Has anyone here finished the whole plot? Are there more undocumented features than the one?

I think that’s it, I googled for more as well after I stumbled upon them. It was both awesome, realistic, and annoying all at the same time.

I plowed through the all the tasks in the main campaign just to see the story through. But I think somewhere around “meat-based printer” or “ocean monitoring system” the problems become complex enough that the main problem is getting a working solution at all, which (as I said before) is not the part I enjoy. And since basically nobody on my friend list has done the last 10 or so puzzles, it also doesn’t feel like there’s any point in optimizing the solutions.

It’d be awesome to get some kind of notification if somebody passes you on the leaderboards. I’d love to return back to the earlier puzzles in case I lose first place on any of them, but I don’t know that I’m going to be launching the game and checking all the leaderboards one by one all that often…

https://www.reddit.com/r/shenzhenIO/comments/5hplc3/top_score_list/ works as a proxy for “motivation to optimize”, but I really wish there was a built-in way to see minimal values on the histograms (as a hidden option at least, if there are concerns with demoralizing people).

I have a bad habit with Zach games of almost getting to the end but not quite finishing them, so of course I ended up quitting in the middle of the bonus campaign (yes, on that level)…

I’ve given in and purchased this. I’ve only done one puzzle so far, and yet I only have 2 people on the leaderboard: a friend and @Gendal! (And I beat Gendal in the lines of code metric ;))

I can’t add more people, as few people in this thread have their Steam IDs in their profiles, including those griping about lack of people to compete against :P

Zachtronics has released HACK*MATCH, the minigame from SHENZHEN I/O… on NES. Yes, really.