SHENZHEN I/O

SHENZHEN I/O

View Stats:
Sytch Dec 8, 2016 @ 9:43am
Useless rant
My background: Java/C++ web and embedded developer, working "9 to 5" for 7 years (at the job, but before learned and extensively used various languages from ZX-Specturm assembler to Delphi).

And I have just the same problem with every Zachtronics game. At some point the difficulty becomes INSANE and it's not fun anymore. Before that point I have a good time designing and optimizing code or architecture of the pipeline. There's a lot of freedom to try better ways and solve the same puzzle using different approaches. After that point I can't even solve a puzzle at all let alone optimally. The space is suddenly too constrained, the amount of checks and codepaths are off the charts. It would be so much better with a simple "swap" instruction to exchange acc/dat, for instance, but instead I have to mess with additional controllers or even a RAM module which requires a lot of wiring, a lot of code and in the end you only need one more register...

In this game it happened on the "aquaponics robot" stage. I only managed to solve the "kill switch" task and I hadn't even felt rewarded or something. I was mildly happy that it's over, no tests have failed and all I wanted is to close this task and never return to it again. Optimize it further? No way. Tried other puzzles in the same tier, they're all way too hard. I can't place all required components on the board and wire them up as there's not enough space, I can't use less components as then I don't have enough space for all the code.

So I reached that point when I can't play the game anymore without feeling an extreme frustration because I'm not smart enough for this. It would be better to have difficulty levels so there could be at least some possibility to finish the game (I haven't completed a single Zach's game because of this, unfortunately) but I have no idea if that's possible. Or even needed.

Googling the solutions or watching the walkthroughs is of course pointless. I can just write "YOU HAVE WON" on a piece of paper and stick it to the display.

So, do YOU, the fellow reader, have this problem? And on what stage did it happen to you?
< >
Showing 46-52 of 52 comments
Inari Jan 19, 2017 @ 12:38am 
Originally posted by Megafont:
It's called artificial difficulty, and its usually a sign of lazy design. It's sadly not uncommon for designers to use artificial difficulty as a crutch, taking the easy road to creating something that's got some difficulty to it. The correct approach is to put in the time and effort to create something that is tricky on its own merits, not simply because it has unnecessary external restrictions.

And about everything ever has that really. Why can't you kick in that door in that RPG game despite it being just a wooden door and your characters clearly cut trees in half? Instead you have to do the silly quest to get the progression.
I don't think I've ever seen a game that doesn't have some sort of "artificial" difficulty.

If you want more "real" difficulty I suggest you turn yourself to project euler.

Originally posted by Megafont:
It's omition limits what you can do with the game, making it less powerful and thus lowering its value.

Don't think it limits anything you /can/ do. But it makes certain tasks harder to achieve. Yes, blub, artificial difficulty.

Originally posted by Megafont:
There should also be a bridge variant that can cross 2 wires instead of just one. Maybe there is one I haven't unlocked yet, but I don't know.

There are a lot of "bridges" if you want to play with reallife electronics. Which might also make things more real difficult for you. However, the challenges are different than those in this game. The game lives by imposing restrictions, a lot of people find this kind of thing fun. Say programmers which impose unnecessary restrictions on a task for fun. Or stuff like "naked runs" in games, where you play without using armor/weapons.

Being a game designer first and foremost is about considering how every aspect of your design will affect players, something many designers don't do very well... It's about building an experience for players with as few unnecessary limitations as possible. I personally dislike limitations because it decreases what players can do with the game, which is bad. You don't have to sacrifice like this by making the game less powerful for the sake of difficulty (which by the way is not required to have an awesome game anyway).

Originally posted by Megafont:
Look at the great sandbox games like Minecraft. Why has that game lasted so long?

Mods. At least for me :P

Originally posted by Megafont:
Even though Minecraft is years old, its redstone mechanics still blow Shenzhen out of the water in terms of how powerful they are.

I mean, if you like having 30 chunks of pure lag to calculate 1+1 in 10 seconds and display the result. Yes.

Originally posted by Megafont:
The problem is that Shenzhen nerfs the heck out of itself with limited board space in the sandbox

I'm split there, on one hand it would be nice to have a bigger sandbox, yes. On the other, there are plenty better platforms if your goal is to develop something complex. And then again, part of the appeal are those imposed limitations. Thats why code golf exists, etc.

Originally posted by Megafont:
There is so much more you could do with this game. For example, besides supporting larger boards, you could make it possible to have multiple circuit boards and connect them together. You could also simply add scrollbars to that screen to support the larger space needed for that.

You could. But thats not the vision of the game as far as I can understand it. It's a puzzle game, not a sandbox hardware emulator.
Last edited by Inari; Jan 19, 2017 @ 12:38am
Entih Jan 19, 2017 @ 3:19pm 
I honestly don't understand the complaints some people are having. While the difficulty of the game is in fact due to its seemingly arbitrary restrictions, those restrictions are part of why the game is so good. It sets forward a series of rules and tasks you with finding a solution within those rules, which is the definition of a puzzle game.

While its true I got stuck a few times here and there solving some puzzles, I could usually solve them by taking a pen to paper and writing down ideas for finite state machines and task delegation. Only once I got to the bonus campaign, where difficulty ramps into high gear, did I start getting really stuck (currently puzzling over the algea harvest bot :D ).

My suggestion, don't be afraid to write on some physical paper. How many individual processes are involved, what values are important to track, how should they be tracked, how far can you break things down into dedicated parts.

Also don't forget that as long as no two pins on a single microcontroller touch, wires can be safely routed under microcontrollers (including under pins, just hold tab to wire under controllers). Say, if two adjacent controllers seek input or output, they can physically touch and share wire path (as long as the pin type is a match and the data origin/destination matches). Using the full depth of the wiring space is an absolute requirement once you hit the bonus campaign, as some of my solutions there so far have filled 98% of the board space.

I mean, if you think the board gets crowded early on, check this. http://steamcommunity.com/sharedfiles/filedetails/?id=845941822
Last edited by Entih; Jan 19, 2017 @ 3:22pm
buddy Jan 19, 2017 @ 3:36pm 
Megafont is correct. This game is ♥♥♥♥♥♥♥ claustrophobic. Infinifactory never limited you on the amount of space you could use, and it still had many difficult puzzles to solve, and the freedom it gave you made it a much more enjoyable game to play. The limited board size in Shenzhen I/O makes the game feel unfair and tedious (at least in the 2nd campaign). Less like fun, more like actual work.
Last edited by buddy; Jan 19, 2017 @ 3:37pm
Inari Jan 20, 2017 @ 1:10am 
Originally posted by buddy:
Megafont is correct. This game is ♥♥♥♥♥♥♥ claustrophobic. Infinifactory never limited you on the amount of space you could use, and it still had many difficult puzzles to solve, and the freedom it gave you made it a much more enjoyable game to play. The limited board size in Shenzhen I/O makes the game feel unfair and tedious (at least in the 2nd campaign). Less like fun, more like actual work.

In fact, it did limit you though o.o And in some puzzles that space limit played a role as being a nuisance. Especially if you wanted to design properly :P
It also was a 3D game, so there are a lot more thing sto consider than here where you have some 2d board and code.
Some have commented they find itmore like work, others have said it's quite distinct from actual work and that's what makes it fun. different strokes for different people I guess
grimmeld Jan 20, 2017 @ 8:50am 
Anybody who thinks this game is too restrictive and consequently has too high of a difficulty on these puzzles should really play this game's spirital prequel: TIS-100.

I swear, coming from that game, shenzen I/O is a godsent gift in terms of coding freedom, but also a breath of fresh air in terms of coding-wise gameplay.

The biggest difference I've felt is that there's no JRO command in this game. In tis-100 you could basically set up a "manager" node that sends numbers to the other nodes for which codeline they should jump to. In Shenzen I/O there's no "jump to line <number>", only a "jump to label".

This game however, makes up for it in spades, in how differently code execution works time-wise and that it gives you choices in how to deal with it. These combined facts allow for so much creativity:

- Full positional control of nodes on how which connects with which (there's ways to make room for making connections as a node connects to a wire that's under it)
- Simple I/O is non blocking
- XBus is blocking but really only nodes with code only ever block
- Setting a value on simple I/O is persistent
- Setting up a repeating value on XBus is possible through adding one of several other non-code parts, so this basically circumvents 90% of the issues if XBus blocking is really a problem
- With the "slx" command it's basically still possible in some way to create a "manager" node as described above, although less so without being able to specify line numbers
- The "secret" pulse generating command makes up for so much, specially when you realize the parameters can be set to 0 (a negative value yields the same result as 0)

I'm pretty far in and I have yet to feel the actual frustration of "limiting factors" in this game compared to what I experienced in TIS-100.

I catch myself a lot of the time that my "if then" situations can be written more optimally

start: teq acc 0
-<code>
-jmp start
<code>

can be written one line smaller with

teq acc 0
-<code>
+<code>

And there's so many more optimisations I keep discovering. Maybe I fall back to using the "jmp" command a lot because I've played TIS-100 before, but despite this I see the statistics at the end of the puzzle and there's always people doing things with less lines of code. From looking around on what other people do, there's all sorts of funky stuff possible by using the logic gates in crazy ways, completely reducing the need of entire chunks of code.

I can definitely understand the frustration, even though I've felt it less so in this game myself. Because of my personal experience, I think this game and all of it's puzzles (I've so far come across) seem pretty much well designed.

Sidenote: not having the "swp" command feels like a kick in the shins every time I feel the need to use it.
buddy Jan 20, 2017 @ 3:32pm 
I 100%d TIS-100 and never once felt like it was a chore. You won't understand how unfair and restrictive this game is until you get to the 2nd campaign. Infinifactory and TIS-100's 2nd campaigns were more difficult than their 1st, sure, but if you ran out of space in Infinifactory you could just move up on the Z axis and keep working. You never ran out of space. And yes TIS-100 had small amount of space to work with, but its command set was much more versatile, and because of JRO you didn't have to waste space in every single node with test commands, and you always had enough nodes to work with without having to worry about pin types and wire mismatches and ♥♥♥♥.
Shenzhen I/O is only fun up to a certain point, then it just becomes tedious.
Last edited by buddy; Jan 20, 2017 @ 3:37pm
Tom the Modder May 23, 2017 @ 9:12pm 
The puzzles weren't ordered in exactly the right difficulty ramp, as I cheated a bit and found later puzzles do-able with both the newfound knowledge of the cheat solutions and just being plainly easier than earlier puzzles. There should definately be a "I give up, give me all the puzzles nao" button in the options or somewhere for people who get stuck on certain puzzles and want to see if later puzzles will jog their... "memory" (cheesy laugh followed by stupid groan from the audience). Anyways, for me I found that if I had some of the later puzzles earlier I might have had a better chance finding out solutions for those "game-breakingly difficult" puzzles. Also, a few puzzles required you to be a zen-master of timing which I'm not acustomed to yet in my programming education to get the cool solutions, and knowing stuff like how you can change the transmitting information to a simple input in the same cycle as reading from the simple input and still get the data that was there originally from the reading port would have really helped if the documentation said so instead of having me find out the master level techniques from cheating lol. If not an unlock all puzzles in frustration button, at least have a "you tried" state on failed puzzles so you can still go on to other puzzles before you start cheating when a later puzzle can help you figure out an earlier puzzle.
< >
Showing 46-52 of 52 comments
Per page: 1530 50

Date Posted: Dec 8, 2016 @ 9:43am
Posts: 52