My grandfather's choice of favorite programming language was based solely on the criteria of which one would encourage writing "self-documenting" code instead of "spaghetti" code. Back then, that meant stuff like if statements and while loops instead of GOTO's. Playing this game makes me understand why that would be so important, because things can get messy fast!

In Human Resource Machine, you solve programming puzzles using a drag-and-drop, assembly-like language. It slowly introduces new concepts as the levels progress, interspersed with silly cutscenes that tell a story of tension between humans and machines in the workplace.

You watch your programs execute by watching a little person (your character) run around an office carrying little numbers from the inbox, doing something with them, and putting other little numbers in the outbox. Your only memory is what you're holding, but you can also set numbers down on the floor for later. You can speed up, slow down, and step through your code, like a debugger. A little business man sits at a desk and watches you, and you can click on him for hints.

It's all very adorable, and helps with the frustration of debugging both in how it visualizes things, and how silly the whole thing is when your little person throws some important result aside to grab the next one over and over because you forgot to add a command to put it in the outbox.

Each puzzle can be won by getting the correct values to the outbox, regardless of method or performance. However there two optional optimization challenges: one for program length, and one for average program duration. Often, they can not be solved at the same time. It was an excellent lesson for me of a computing concept I had previously known of, but now concretely understand.

Code editing with drag-and-drop can be tedious for someone used to typing, but the game has some ways to make it easier. You have three slots for programs on each level. (I like to use one for my first attempt, and one for each optimization challenge). You can copy paste between these, so you don't have to start from scratch if you're just doing a variation. Comments are available, and are hand-drawn with the mouse like little labels. Storage locations on the floor can also be labeled this way. My least favorite part of the code editor is scrolling. Drag-and-drop code takes a lot of vertical space, so it comes up a lot in the later levels. I've played this game on both desktop and tablet, and I prefer desktop for the ease of scrolling. It's not fun to try to scroll and accidentally mess up your code.

For a programming puzzle game, I think this is one of the less frustrating ones.

This is a wonderful game and I would certainly recommend it to anyone interested in getting better at reading through code, understanding low-level computing, or computer science history.

Be sure to also check out the sequel, 7 Billion Humans, which has a very different feel because the language is higher-level and you control swarms of little people in parallel, but has the same optimization and visualization strengths. I like this one better, but they're both worth your time!

Reviewed on Aug 13, 2023


Comments