Shenzhen I/O (PC) (2016)

Overview: You're an electronics engineer working for Shenzhen Longteng Electronics in Shenzhen, China. Your job is to create products using the company's circuits and programming language.

20190106 AM Hours:
I was thinking about playing some games for which I had not yet blogged, but had already tried. Instead, I decided to play a fresh new game: Shenzhen I/O.

In general, levels consist of producing the correct output from the input.

First Impressions:
The game is more difficult than most other programming games* I've played thus far, but it's still fun. Part of the difficulty was having to refer to the manual; to be fair, the game suggests printing out a hard copy. In any case, I enjoy the challenge. Like the other programming games, I derive a lot of fun and entertainment from attempting to optimize the solutions.

With respect to optimizing solutions, I have three Steam friends who have also played the game, and their best scores show up in the game. These values are much more helpful than just looking at histograms, which won't always indicate the best possible score value. I like these individual benchmarks.**

Steam Game Time: 3.0 hours (total game time) | Game idled during two trips to the restroom.

*Roughly from hardest to easiest: TIS-100 (3.1 hours), Shenzhen I/O, SpaceChem (8.7 hours), Human Resource Machine (25.8 hours). Both TIS-100 and SpaceChem share the same developer, Zachtronics, as Shenzhen I/O.
**[20190108: Today I was browsing the discussion threads and found one where various players were sharing "Add Me on Steam" for this purpose. I added some of their profiles and posted my own (Jan 8).]
[20190108 Edit]

20190106 PM Hours/20190107 AM Hours:

Setup: Before playing today, I printed out the manual. To save some paper, I printed consecutive pages in a given section double-sided (loses efficiency when a section has an odd number of pages). Then, instead of dividers, I used sticky notes to separate the stack.

Receive e-mails from other members in the company.

Setup Tip: For the ultimate experience, play one level a day and coordinate with a friend to put the appropriate Supplemental Data sheet on your desk. In this case, you'll want to print out the Supplemental Data section single-sided.

Gameplay Log:
One subtlety I learned is that if an XBUS value is written, it must be read. [The reverse is true as well.]
After several hours into the game, I finish by winning some solitaire games (10, for a total of 11 wins).

Steam Game Time: 14.4 hours (total game time) / 11.4 hours (session game time)

Today I hit a point of difficult coinciding with feeling overwhelmed and tired of the game. It's a challenging puzzler. I might be done with it for the time being.

I've read the game has about 30 puzzles in the main game. By the end of today, I had unlocked 18 puzzles and completed 13 of them.

Gameplay Log:
I was using complicated code in this one level and I noticed I was repeatedly using a series of commands. I kept repeating these three sets of lines: `mov 100 R | slp 1 | mov 0 R` (where R is a register). Eventually, I realized I can make use of a recently introduced instruction (in-universe, it was surprisingly not in the manual: gen). With it, the aforementioned three lines becomes one line: `gen R 1 0` (which technically stands for `mov 100 R | slp 1 | mov 0 R | slp 0`.

A mini-game that unlocks after a couple of levels. A solitaire game inspired by FreeCell and Mahjong.

Steam Game Time: 18.2 hours (total game time) / 3.8 hours (session game time)

20190108 Part 1:
I'm back for a little more. Some of these levels are truly difficult and I cannot even complete some of them inefficiently.

In any case, one of the tasks is to create and upload a level. I decided to put some effort into this task and actually create a legitimate level (as opposed to just using the example level or creating a trivial level). In the end, I almost spent four hours creating one! Although I absolutely had fun making it (and I learned a little about a programming language called Lua, it was my first time being exposed to it). Here's the finished level: CHRISTMAS LIGHTS (Steam Workshop).

On a related note, I encountered a compile error while creating the level and I went to the Steam Discussions to look for answers. While there I noticed a thread where people were adding each other on Steam to compare scores. I thought it was a great idea and added a handful of people. I mostly added players that were, one, still active on Steam and, two, said they played other Zachtronics games or represented competence in programming (e.g., engineer, programmer).

Steam Game Time: 21.9 hours (total game time) / 3.7 hours (session game time)

20190108 Part 2:
Adding other players (see 20190108 Part 1) rejuvenated my desire to play some more!

Steam Game Time: 26.6 hours (total game time) / 4.7 hours (session game time)

20190109/20190110 AM Hours:

The first level.

Gameplay Log:
I tried to play around with the PGA33X6, but I didn't quite understand it.
The PGA33X6 is in the manual, but in Chinese. I ran it through Google Translate, but only partially understood it's purpose.
I tried to play around with the PGA33X6 some more, but I didn't make much more progress.
In the end, I went to a Reddit post, read a Wikipedia article about Programmable logic arrays, and watched a YouTube video (possible spoilers starting at 9:30, Simple explanation of PGA33X6).

Steam Game Time: 34.9 hours (total game time) / 8.3 hours (session game time)

20190111 PM/20190112 AM Hours:
Today I spent almost 10 hours playing the game. However, I also spent some time with two of the puzzles offline. I randomly picked two of the specifications which I hadn't done yet and theory crafted their solutions.

Steam Game Time: 44.5 hours (total game time) / 9.6 hours (session game time)

I made it my goal to reach the near end of the game. That is, to avoid optimization.

Unfortunately, even my best attempt to avoid optimization required that I make the obvious optimizations (and sometimes while looking for obvious optimizations I essentially began optimizing and thus failed to avoid it. With that being said, the amount of time I spent optimizing was small compared to the amount of time I spent determining a solution.

In hindsight, this was a complicated solution. But oftentimes, it's easier to find a single solution and optimize it than to start off finding an optimal solution.

In any case, it's getting late and given the increasing puzzle difficulty, I decided to stop playing for the night (there are four levels left in the main campaign).

Gameplay Log:
First, I was able to finally solve "Traffic Signal," the level I spent most of my time on yesterday.
"Meat-Based Printer" wasn't nearly as bad.
"Electronic Door Lock" was tricky because of reading and writing. At least initially. Once I got a solution, it was easy to simplify (over four iterations). The fourth iteration was half the cost (10 Yuan) of the second iteration (20 Yuan)!
"Deep Sea Sensor Grid" was similar in difficult to "Electronic Door Lock."

Steam Game Time: 51.7 hours (total game time) / 7.2 hours (session game time)

One thing that's interesting about this game is that each puzzle is so different and what makes a particular level difficult is also different. I think about the difficulty in solving the puzzle, but creating the puzzle must have also been difficult.

With that being said, I have to temporarily set this game aside.

Steam Game Time: 54.9 hours (total game time) / 3.2 hours (session game time)

Spoiler Blocking Headphones has been on my mind lately and so I try to give it another go. The main problem I'm having is trying to use too many components. What am I missing?

Steam Game Time: 55.6 hours (total game time) / 0.7 hours (session game time)

Someone commented on my custom level and I went into the game to try and answer their feedback. The user's comment made me realize my solution was not even close to optimal. I was eventually able to match his/her score.

Steam Game Time: 58.1 hours (total game time) / 2.5 hours (session game time)*

*Most of the time spent was idle. Now that I'm a father, this will inevitably happen more frequently.

+ Having a manual to refer to is fun. Makes the game more real. (but see also cons)
+ Compare scores globally (histograms) and with friends (leaderboard) across three separate categories; optimizing can be addicting (Tip: don't get bogged down in optimizing early on, because parts and commands available latter in the game can often make optimization easier or even trivial)
+ Challenging for the niche player (I also list "Challenging" as a con. But if you find yourself unchallenged by the average puzzle game, then check out Shenzhen I/O and feel humbled).
+ Good learning curve for someone familiar with programming

~ Includes a minigame which is like a mix of solitaire and FreeCell. It's simple, but fun. Can be addicting, but I am not. The developer eventually made it available on it's own: SHENZHEN SOLITAIRE (Steam Store).
~ Niche audience.

After completing a level, you can see how your solution compares globally (all Steam players) and locally (Steam friends)

- Slow paced
- Challenging (for the average player)
- Steep learning curve (for someone who's unfamiliar with programming and puzzle games; medium for someone who is good with logical thinking, puzzles & instructions; perfect for someone with programming skills)
- A lot of reading (I'm not a reader; I dislike having to read so much just to play a level).


Comparison of Difficulty:
I felt as if this game was difficult, but how does it compare? I chose three puzzle games to compare to Shenzhen I/O: Eets Munchies, Human Resource Machine, and Hexcells. I used SteamDb and to gather some statistics.

NameSteamDB Rating (+/- Reviews)Median Time Played (Steam)Median Time to Complete Main (# Polled) | Completionist (# Polled)%age of Players to Complete...
Shenzhen I/O91.65% (1633/57)3.2 hrs28.6 hrs (2) | 78.0 hrs (1)2.4% Solve Main / 0.5% Solved Bonus
Human Resource Machine89.26% (2131/148)2.0 hrs4.4 hrs (32) | 7.0 hrs (33)7.0% Completed All Levels
Eets Munchies75.56% (474/119)1.4 hrs1.0 hrs (24) | 3.0 hrs (41)3.0% Completed All Puzzles
Hexcells92.43% (3419/128)2.1 hrs2.0 hrs (49) | 2.5 hrs (198)46.6% Completed All Levels

Program the lights of a billboard.

So what can we say?
1) Three of the games are closely rated. Among them, Hexcells is clearly an easy game: short completion time and most players completing all the levels.
2) Human Resource Machine (HRM) has nearly three times the completion rate (of the main campaign) of Shenzhen I/O and the completion time is approximately four times faster (7 hours to complete all the levels in HRM compared to a rough 28 hour figure for Shenzhen I/O).
3) Inferring from the median hours played, the player dropoff for Shenzhen I/O is higher. At the 50th percentile, players have only put 3.2 hours into the game (which again is estimated to be 33 hours long game). Compared to HRM for which players at the 50th percentile put in 2 hours (out of an estimated 7 hour long game).
4) The Steam Achievements also reflect observation #3: 60.6% of all players have reached the third milestone in HRM (between a third to half of the game's levels).
5) Despite being a short game, Eets Munchies only has a 3.0% completion rate. This is probably due to the fact that players don't have as much playing it (lower rating).

Overall, Shenzhen I/O is objectively harder than the three other games I chose. However, that's neither good nor bad. It simply means a certain type of player will enjoy the game more. I'm almost certain that although the median time spent with Shenzhen I/O is comparable to the other games, a fanatic will find hours upon hours of fun with the game. Speaking from my own experience, I'm not actually interested in completing the game, but with getting the best scores on each level (and mostly through self-discovery).

Do you know of any fun, difficult games? Share them in the comments!

The design of this game is meant to give the player the feeling he/she is actually an electronics engineer who has been hired at a company in Shenzhen, China. There are emails, an emulated desktop, and even a reference manual (which I printed as recommended and adds to the theme of the game).

Your (simulated) desktop.

Unfortunately, work is hard, and most people don't like working. As such, the game immediately narrows its audience: players who either like working or playing games that feel like work. However, not everyone in that subset will enjoy learning the game's assembly language. However, it makes the game difficult to complete (see the above section on difficulty).

In the end, if you're drawn to the idea of the game, I would highly recommend it. But be warned, it can be a challenge, and the challenge can be addicting!


Shenzhen I/O (PC) (202016)

Relevant Links:
SHENZHEN I/O Webpage (Zachtronics Website)
Shenzhen I/O (
Shenzhen I/O (PC) (
Shenzhen I/O (Steam Store Page)

No comments :