VIDEO GAME REVIEW: Human Resources Machine

written by David Steffen

humanresourcemachine

You’re a new employee at the company, and it’s time for you to start making your way up the career ladder.  They say it’s hard to find good help, but with clear enough instructions, you’ll do exactly what you’re told.

Human Resource Machine is a computer programming logic game that requires no prior programming experience, released in 2015 by Tomorrow Corporation.

20161216231846_1As you work your way up the career ladder you are given tasks by the company dictating how you need to process the input values that come in on one conveyor belt and produce output values to send on the next conveyor belt.  When the game starts you have only a couple simple instructions, Input (which grabs a value off the input belt), and Output (which puts whatever value is in your hands onto the output belt).  But soon those instructions expand to include add/subtract operators, conditional branches, unconditional branches, storing values in memory, to retrieving values from variables by reference.  The challenges get more complex as you work your way up the career path, and there are extra difficult side-branches you can take if you’re up for a challenge.

20161216231953_1On each level you can move on if you solve the problem, but you can reach extra achievements if you try to finish optimization challenges.  If you can complete the goal under a target amount of instructions in your program, then you will get one achievement.  If you can complete the goal with a runtime under a target amount, then you’ll get another.  In many cases you will not be able to get both achievements with the same program because in many cases the goals are somewhat counter to each other–reducing the number of instructions means you reuse lines of code as much as possible, but that requires extra jump commands that add to your runtime.  The optimization programs will probably be easier if you have a programming background and have covered some material about optimizing code (even though these days most compilers will handle most speed optimizations for you it’s still not a bad idea to understand the concepts).  If you want a major hint at optimizing for speed though, search for the term “loop unrolling”–that is the single biggest concept that I used to optimize the first half of the challenges (after that it got harder and I ended up focusing more on just passing the main objective).

Visuals
Simple, but fun.

Audio
Fine, I usually played with the sound off while doing other things, so I didn’t use it too much.

Challenge
Decently escalating challenges, with some optional tracks off the main career tracks that are more challenging.  You can also take on some extra challenge by trying to optimize each solution for the number of commands, and optimize for the runtime length.

Story
The story was pretty slight, but that’s fine.  With each level you get an explanation for why the company needs you to do this particular thing–such as removing all vowels for budget cuts, etc.  As you get further and further in your career you get some glimpses of major things happening in the outside world, but I wouldn’t say they really affect the game, so they’re really only for your amusement.

Session Time
The game is easy to pick and put down.  The game boots up and shuts down quite quickly, and it retains whatever work you had put into any job, so if you leave in the middle of finishing a program you can finish where you left off.  Makes it very easy to tackle the game in short intervals.

Playability
Straightforward to pick up–click and drag commands from the dictionary, click on variables to finish populating the commands, click and drag commands around inside the program, etc.  Then when you run you can adjust between automatically running at different speeds or stepping through or backward for debug purposes.  Only thing that would be nice is if there were an option to type commands instead of clicking-and-dragging, simply because my laptop touchpad is kind of annoying and it would’ve been faster to type, but that’s a minor quibble.

Replayability
There is some replayability in that there are some optional branches of jobs to do that are meant to be harder than the main career path, so if you didn’t do those the first time through, you can go back and do them.  You can also try to get the optimization achievements on each level by optimizing for speed and optimizing for number of commands (but usually not with the same solution).

Originality
The structure of the puzzles themselves are based on general programming principles common to different languages, but I haven’t seen a lot of games based around it at least.

Playtime
I think that I spent about 8 hours playing the game.  That included finishing all the main career path levels as well as all of the optional career path levels, and also getting the optimization achievements for about the first half of those levels.

Overall
If you’re interested in programming or want to at least get a feel for what it’s about, or if you just really like problem solving logic games, then this is probably a good game for you.  If you haven’t done any programming before it’s a good way to ease your way in because the way it’s set up is more forgiving then a freeform programming environment where you’re going to spend your early days wrestling with syntax errors.  If you have done programming before you will have a major leg up figuring out how to do everything but there is still plenty of challenge there, especially in that the set of commands you have available is fairly simple, meaning that anything complicated you have to handle yourself.  Well worth some time and money to play through the game.  I thought it was good puzzly fun.  $10 on Steam