As a genre, puzzle games have a few major problems. Namely replayability, singular solutions, and the ever-frustrating feeling of “I must be missing something”. Zachtronics is a developer that creates extremely unique puzzle games that eliminate all of these pitfalls. Zachtronics does this by basing their games in reality, such as chemistry, production lines, or in the case of Shenzhen I/O, programming and electronics. I will admit, Zachtronics games are extremely niche, but if you enjoy problem solving, they will scratch that itch. As a computer science student, Shenzhen I/O drew me in as I was curious how a game could make the obtuse language of Assembly enjoyable.
Shenzhen I/O is set in the technological hub of Shenzhen, China. The player is tasked with designing and programming electronics to control a variety of products. You can use microcontrollers, logic gates, RAM, and a few other components to achieve the task you are given. When I said that Shenzhen I/O was niche, I meant it. Instead of a standard tutorial, you are given a 45-page manual as a PDF to read through. Only a few pages are useful, the rest are jargon or in Chinese, so you have to sift through to find pertinent info. Luckily, the programming language is fairly simple and there are not too many parts to figure out how to use. The game starts fairly slow and lets the player learn the basics before moving on to complicated challenges.
While I believe that Shenzhen I/O was made for people with some prior knowledge of programming, it could be picked up by beginners. The language implemented has only a few basic commands that are not too hard to learn. The game also highlights any syntax errors for you. For the most part, Shenzhen I/O only focuses on the fun parts of programming such as logic and problem solving and skips the rote memorization that usually accompanies learning a new language.
Shenzhen I/O also is fairly forgiving as it is easy to diagnose issues. To test a solution to make sure it works, there is a verification tab that compares your output to the intended output. The program runs, you can follow it line-by-line to understand where and how something goes awry. I wish test runs worked this way in real life. On the flip side, much of the problem solving in Shenzhen I/O stems from the limited resources given. You can only have a maximum of 14 lines on any microcontroller, there are limited ports, limited space on the board, and some aspects operate in ways that require a workaround. You have to figure out methods to shave off a line or two to fit another action, or how to string controllers together in a way to complete a complex action. In this regard, Shenzhen I/O makes me appreciate the real-life tools that are available.
What I love most about Shenzhen I/O is that it avoids the most common issues with puzzle games. Every puzzle in Shenzhen I/O has a wide array of solutions because the player writes the code and places the components. If you get stuck on a problem, you can tackle it with a few different methods. This solves the issue of “getting stuck” and that nagging feeling of “I must be missing something”. Furthermore, after completing a challenge, there are leaderboards for cost, power, and lines of code used. This encourages players to replay puzzles and optimize their solutions to minimize these factors. Going back to redo a puzzle and making my solution more efficient was some of the most fun I had in the game. The fact that Shenzhen I/O utilizes programming to design puzzles is what makes the problems so interesting. It allows for dynamic problem-solving rather than searching for a singular solution.
Other than the extreme niche nature of Shenzhen I/O, it has one other major flaw. Zachtronics squeezes out every last drop of potential from Shenzhen I/O, and puzzles get increasingly difficult as you approach the end. As the problems get more complex, so do player solutions. You spend disproportionately more time on the endgame puzzles than the rest of the challenges. If one of your ideas ends up not working, you have to scrap hours of work. Problems become more restrictive rather than offering freedom like the earlier challenges. This issue of extreme difficulty appears towards the end of the game and in the bonus campaign primarily. The bonus campaign is the where the game got frustratingly difficult for me. Luckily, those additional levels are entirely optional, but I still found them far too challenging, complex, and restrictive to be enjoyable.
Furthermore, the game for the most part stops introducing new components and concepts about halfway through. With some more tools to learn and work with, these post-game puzzles could be more bearable. There are only so many things you could do with the barebones tools you are given. By the end of the game these ideas have been exhausted. These bonus puzzles are more like combinations of previous problems that you need to squeeze into extremely limited space.
While Shenzhen I/O is very obviously a niche title, I found myself to be in that niche. While the concept of a programming puzzle game may turn some people away, it is the greatest asset of the game. Programmable puzzles are what offer such creative solutions. You are not confined to a single solution. It is for these reasons I give Shenzhen I/O a 9/10. If you are at all interested by the concept of Shenzhen I/O, it is an absolute must play. Not everyone will enjoy it, but those who are in its intended audience will absolutely love it.